FreeCalypso > hg > fc-magnetite
annotate helpers/str2ind-ver.c @ 221:e2dce971aec9
doc/C139-Howto: update for the current status
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 16 Oct 2016 00:01:13 +0000 |
parents | f4eeab478bfe |
children |
rev | line source |
---|---|
60
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This utility extracts the timestamp from a str2ind.tab file |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * and emits the corresponding char *str2ind_version C line. |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 */ |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <stdio.h> |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <stdlib.h> |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <string.h> |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <strings.h> |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 main(argc, argv) |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 char **argv; |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 { |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 FILE *inf; |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 char buf[32], *cp; |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 if (argc != 2) { |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 fprintf(stderr, "usage: %s str2ind.tab\n", argv[0]); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 exit(1); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 } |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 inf = fopen(argv[1], "r"); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 if (!inf) { |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 perror(argv[1]); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 exit(1); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 } |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 if (!fgets(buf, sizeof buf, inf)) { |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 inv: fprintf(stderr, |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 "Error: %s does not have the expected first line\n", |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 argv[1]); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 exit(1); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 } |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 cp = index(buf, '\n'); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 if (!cp || cp == buf) |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 goto inv; |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 *cp = '\0'; |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 if (cp[-1] == '\r') |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 *--cp = '\0'; |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 if (cp != buf + 10) |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 goto inv; |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 printf("char *str2ind_version = \"&%s\";\n", buf); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 exit(0); |
f4eeab478bfe
str2ind-ver helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 } |