# HG changeset patch # User Mychaela Falconia # Date 1475283244 0 # Node ID f4eeab478bfe0efb3e927f03c56f0d5c8dfb0077 # Parent b67077cf6b1bc2590adccfe53645c49c40ae4596 str2ind-ver helper written diff -r b67077cf6b1b -r f4eeab478bfe .hgignore --- a/.hgignore Sat Oct 01 00:24:12 2016 +0000 +++ b/.hgignore Sat Oct 01 00:54:04 2016 +0000 @@ -2,3 +2,4 @@ ^build- ^helpers/makeline$ +^helpers/str2ind-ver$ diff -r b67077cf6b1b -r f4eeab478bfe helpers/Makefile --- a/helpers/Makefile Sat Oct 01 00:24:12 2016 +0000 +++ b/helpers/Makefile Sat Oct 01 00:54:04 2016 +0000 @@ -1,11 +1,14 @@ CC= gcc CFLAGS= -O2 -PROGS= makeline +PROGS= makeline str2ind-ver all: ${PROGS} makeline: makeline.c ${CC} ${CFLAGS} -o $@ $@.c +str2ind-ver: str2ind-ver.c + ${CC} ${CFLAGS} -o $@ $@.c + clean: rm -f ${PROGS} diff -r b67077cf6b1b -r f4eeab478bfe helpers/str2ind-ver.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/helpers/str2ind-ver.c Sat Oct 01 00:54:04 2016 +0000 @@ -0,0 +1,42 @@ +/* + * This utility extracts the timestamp from a str2ind.tab file + * and emits the corresponding char *str2ind_version C line. + */ + +#include +#include +#include +#include + +main(argc, argv) + char **argv; +{ + FILE *inf; + char buf[32], *cp; + + if (argc != 2) { + fprintf(stderr, "usage: %s str2ind.tab\n", argv[0]); + exit(1); + } + inf = fopen(argv[1], "r"); + if (!inf) { + perror(argv[1]); + exit(1); + } + if (!fgets(buf, sizeof buf, inf)) { +inv: fprintf(stderr, + "Error: %s does not have the expected first line\n", + argv[1]); + exit(1); + } + cp = index(buf, '\n'); + if (!cp || cp == buf) + goto inv; + *cp = '\0'; + if (cp[-1] == '\r') + *--cp = '\0'; + if (cp != buf + 10) + goto inv; + printf("char *str2ind_version = \"&%s\";\n", buf); + exit(0); +}