Fossil SCM

Be sure to escape any backslashes when emitting #line preprocessor directives in the translate.c tool.

mistachkin 2011-11-05 03:22 trunk
Commit c2bed5b3db2ee48bd2be9b0ae1a045606bf255d8
1 file changed +10 -1
+10 -1
--- src/translate.c
+++ src/translate.c
@@ -160,16 +160,25 @@
160160
}
161161
}
162162
163163
int main(int argc, char **argv){
164164
if( argc==2 ){
165
+ char *arg;
165166
FILE *in = fopen(argv[1], "r");
166167
if( in==0 ){
167168
fprintf(stderr,"can not open %s\n", argv[1]);
168169
exit(1);
169170
}
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");
171180
trans(in, stdout);
172181
fclose(in);
173182
}else{
174183
trans(stdin, stdout);
175184
}
176185
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button