Fossil SCM
Be sure to escape any backslashes when emitting #line preprocessor directives in the translate.c tool.
Commit
c2bed5b3db2ee48bd2be9b0ae1a045606bf255d8
Parent
c738a1a6a787d71…
1 file changed
+10
-1
+10
-1
| --- src/translate.c | ||
| +++ src/translate.c | ||
| @@ -160,16 +160,25 @@ | ||
| 160 | 160 | } |
| 161 | 161 | } |
| 162 | 162 | |
| 163 | 163 | int main(int argc, char **argv){ |
| 164 | 164 | if( argc==2 ){ |
| 165 | + char *arg; | |
| 165 | 166 | FILE *in = fopen(argv[1], "r"); |
| 166 | 167 | if( in==0 ){ |
| 167 | 168 | fprintf(stderr,"can not open %s\n", argv[1]); |
| 168 | 169 | exit(1); |
| 169 | 170 | } |
| 170 | - printf("#line 1 \"%s\"\n", argv[1]); | |
| 171 | + printf("#line 1 \""); | |
| 172 | + for(arg=argv[1]; *arg; arg++){ | |
| 173 | + if( *arg!='\\' ){ | |
| 174 | + printf("%c", *arg); | |
| 175 | + }else{ | |
| 176 | + printf("\\\\"); | |
| 177 | + } | |
| 178 | + } | |
| 179 | + printf("\"\n"); | |
| 171 | 180 | trans(in, stdout); |
| 172 | 181 | fclose(in); |
| 173 | 182 | }else{ |
| 174 | 183 | trans(stdin, stdout); |
| 175 | 184 | } |
| 176 | 185 |
| --- src/translate.c | |
| +++ src/translate.c | |
| @@ -160,16 +160,25 @@ | |
| 160 | } |
| 161 | } |
| 162 | |
| 163 | int main(int argc, char **argv){ |
| 164 | if( argc==2 ){ |
| 165 | FILE *in = fopen(argv[1], "r"); |
| 166 | if( in==0 ){ |
| 167 | fprintf(stderr,"can not open %s\n", argv[1]); |
| 168 | exit(1); |
| 169 | } |
| 170 | printf("#line 1 \"%s\"\n", argv[1]); |
| 171 | trans(in, stdout); |
| 172 | fclose(in); |
| 173 | }else{ |
| 174 | trans(stdin, stdout); |
| 175 | } |
| 176 |
| --- src/translate.c | |
| +++ src/translate.c | |
| @@ -160,16 +160,25 @@ | |
| 160 | } |
| 161 | } |
| 162 | |
| 163 | int main(int argc, char **argv){ |
| 164 | if( argc==2 ){ |
| 165 | char *arg; |
| 166 | FILE *in = fopen(argv[1], "r"); |
| 167 | if( in==0 ){ |
| 168 | fprintf(stderr,"can not open %s\n", argv[1]); |
| 169 | exit(1); |
| 170 | } |
| 171 | printf("#line 1 \""); |
| 172 | for(arg=argv[1]; *arg; arg++){ |
| 173 | if( *arg!='\\' ){ |
| 174 | printf("%c", *arg); |
| 175 | }else{ |
| 176 | printf("\\\\"); |
| 177 | } |
| 178 | } |
| 179 | printf("\"\n"); |
| 180 | trans(in, stdout); |
| 181 | fclose(in); |
| 182 | }else{ |
| 183 | trans(stdin, stdout); |
| 184 | } |
| 185 |