diff options
Diffstat (limited to 'konsole/tests/quote.c')
-rw-r--r-- | konsole/tests/quote.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/konsole/tests/quote.c b/konsole/tests/quote.c new file mode 100644 index 000000000..61cf2ac4f --- /dev/null +++ b/konsole/tests/quote.c @@ -0,0 +1,50 @@ +// a silly quotation utitility + +#include <stdio.h> +#include <strings.h> + +int skip = 0; +int empty = 1; + +void pchr(int c, int indent) +{ + if (skip) + { + skip = (c != '\n'); + return; + } + switch(c) + { + case '\n': + if (!empty) + printf("\\n\"\n%*s\"",indent,""); + empty = 1; + break; + case '#' : + skip = 1; + break; + case '"' : case '\\': + printf("\\"); + // fallthrough + default: + printf("%c",c); + empty = 0; + break; + } +} + +#define INDENT 2 + +int main(int argc, char* argv[]) +{ int cc; FILE *sysin; + if (argc < 2) { fprintf(stderr,"usage: %s filename\n",argv[0]); return 1; } + sysin = fopen(argv[1],"r"); + if (!sysin) { fprintf(stderr,"cannot open %s\n",argv[1]); perror("reason: "); return 1; } + printf("%*s/* generated by '%s %s' */\n\n",INDENT,"",argv[0],argv[1]); + printf("%*s\"",INDENT,""); + while( (cc = fgetc(sysin)) > 0) + { + pchr(cc,INDENT); + } + printf("\"\n"); +} |