mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
mjit.c: chomp suffix first
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b30b1c13ad
commit
9da6b8dfdd
1 changed files with 11 additions and 6 deletions
17
mjit.c
17
mjit.c
|
@ -786,16 +786,21 @@ convert_unit_to_func(struct rb_mjit_unit *unit)
|
||||||
/* -include-pch is used for Clang */
|
/* -include-pch is used for Clang */
|
||||||
if (mjit_opts.cc == MJIT_CC_GCC) {
|
if (mjit_opts.cc == MJIT_CC_GCC) {
|
||||||
const char *s = pch_file;
|
const char *s = pch_file;
|
||||||
|
const char *e = s + strlen(s);
|
||||||
|
static const char suffix[] = ".gch";
|
||||||
|
|
||||||
fprintf(f, "#include \"");
|
fprintf(f, "#include \"");
|
||||||
|
/* chomp .gch suffix */
|
||||||
|
if (e > s+sizeof(suffix)-1 && strcmp(e-sizeof(suffix)+1, suffix) == 0) {
|
||||||
|
e -= sizeof(suffix)-1;
|
||||||
|
}
|
||||||
/* print pch_file except .gch */
|
/* print pch_file except .gch */
|
||||||
for (; strcmp(s, ".gch") != 0; s++) {
|
for (; s < e; s++) {
|
||||||
switch(*s) {
|
switch(*s) {
|
||||||
case '\\':
|
case '\\': case '"':
|
||||||
fprintf(f, "\\%c", *s);
|
fputc('\\', f);
|
||||||
break;
|
|
||||||
default:
|
|
||||||
fprintf(f, "%c", *s);
|
|
||||||
}
|
}
|
||||||
|
fputc(*s, f);
|
||||||
}
|
}
|
||||||
fprintf(f, "\"\n");
|
fprintf(f, "\"\n");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue