FreeCalypso > hg > fc-magnetite
changeset 60:f4eeab478bfe
str2ind-ver helper written
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 01 Oct 2016 00:54:04 +0000 |
parents | b67077cf6b1b |
children | dba3f097489e |
files | .hgignore helpers/Makefile helpers/str2ind-ver.c |
diffstat | 3 files changed, 47 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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$
--- 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}
--- /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 <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +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); +}