From ee93773f786228f8f199cf547f7af6e456a90741 Mon Sep 17 00:00:00 2001 From: Paul Gardiner Date: Tue, 17 Jul 2012 12:57:24 +0100 Subject: Fix a couple of bugs in c-string generator --- scripts/cquote.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'scripts') diff --git a/scripts/cquote.c b/scripts/cquote.c index 0363574d..6383f80f 100644 --- a/scripts/cquote.c +++ b/scripts/cquote.c @@ -24,6 +24,7 @@ main(int argc, char **argv) char name[256]; char *realname; int i, c; + int bol = 1; if (argc < 3) { @@ -68,12 +69,17 @@ main(int argc, char **argv) fprintf(fo, "\n/* %s */\n\n", name); - fputc('\"', fo); c = fgetc(fi); while (c != EOF) { int eol = 0; + if (bol) + { + fputc('\"', fo); + bol = 0; + } + switch (c) { case '\"': @@ -96,9 +102,10 @@ main(int argc, char **argv) if (eol) { - fprintf(fo, "\\n\"\n\""); + fprintf(fo, "\\n\"\n"); while ((c = fgetc(fi)) == '\r' || c == '\n') ; + bol = 1; } else { @@ -106,11 +113,12 @@ main(int argc, char **argv) } } - fprintf(fo, "\\n\"\n"); + if (!bol) + fprintf(fi, "\\n\"\n"); - if (fclose(fo)) + if (fclose(fi)) { - fprintf(stderr, "cmapdump: could not close output file '%s'\n", argv[1]); + fprintf(stderr, "cquote: could not close input file '%s'\n", argv[i]); return 1; } @@ -118,7 +126,7 @@ main(int argc, char **argv) if (fclose(fo)) { - fprintf(stderr, "cmapdump: could not close output file '%s'\n", argv[1]); + fprintf(stderr, "cquote: could not close output file '%s'\n", argv[1]); return 1; } -- cgit v1.2.3