Skip to content

Commit 687911c

Browse files
committed
1.3: fix dzagalskii#4: magic word
1 parent 8c78906 commit 687911c

File tree

4 files changed

+33
-2
lines changed

4 files changed

+33
-2
lines changed

CHANGELOG

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
1.3: zvezdochiot <mykaralw@yandex.ru>
2+
3+
* magic word
4+
5+
1.2: zvezdochiot <mykaralw@yandex.ru>
6+
7+
* added warnings
8+
* optimize io, time gain 50-70%
9+
10+
1.1: zvezdochiot <mykaralw@yandex.ru>
11+
12+
* simplify invert
13+
* simplify hammingdec
14+
* strip code
15+
* bit operations, remove math, time gain 50-70%
16+
17+
1.0: Dmitrii Zagalskij
18+
19+
* init version

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
CC = gcc
22
CFLAGS = -Wall -std=c99
33
LDFLAGS = -s
4+
SRCP = src
45
PROGS = hammingenc hammingdec
56

67
all: $(PROGS)
78

8-
hammingenc: hammingenc.c
9+
hammingenc: $(SRCP)/hammingenc.c
910
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
1011

11-
hammingdec: hammingdec.c
12+
hammingdec: $(SRCP)/hammingdec.c
1213
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
1314

1415
clean: $(PROGS)

hammingdec.c renamed to src/hammingdec.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ int main(int argc, char *argv[])
7575
printf("coded: %s\n", argv[1]);
7676
printf("file: %s\n", argv[2]);
7777
int c = 8;
78+
char mc[7] = {"\0"};
79+
fread(mc, 6, 1, f);
80+
if (strcmp(mc, "HECC8") && strcmp(mc, "HECC12") &&
81+
strcmp(mc, "HECC16") && strcmp(mc, "HECC32") &&
82+
strcmp(mc, "HECC64"))
83+
fprintf(stderr, "WARNIND: Bad MAGIC number: %s\n\n", mc);
84+
sscanf(mc, "HECC%d", &c);
7885
if (argc > 3) c = atoi(argv[3]);
7986
printf("decoding length: %d\n\n", c);
8087
if(c == 8)

hammingenc.c renamed to src/hammingenc.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ int main(int argc, char *argv[])
7373
int c = 8;
7474
if (argc > 3) c = atoi(argv[3]);
7575
printf("coding length: %d\n\n", c);
76+
char mc[2];
77+
fwrite("HECC", 4, 1, t);
78+
sprintf(mc, "%d", c);
79+
fwrite(mc, 2, 1, t);
7680
if(c == 8)
7781
{
7882
int x, kod[12];

0 commit comments

Comments
 (0)