aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-05-11 08:50:24 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2010-05-11 08:50:24 +0200
commit09b201fc9b3a17202761bde6b25f84bb844d5b1a (patch)
tree8f7588d5feab29a97a6a9665a37867bf8904390c /gcc/gcc.c
parent3f592b380f98e60a084f62d9c54aa3c2094a22fa (diff)
downloadgcc-09b201fc9b3a17202761bde6b25f84bb844d5b1a.zip
gcc-09b201fc9b3a17202761bde6b25f84bb844d5b1a.tar.gz
gcc-09b201fc9b3a17202761bde6b25f84bb844d5b1a.tar.bz2
gcc.c (execute): For -### don't quote arguments that contain just alphanumerics and _/-.
* gcc.c (execute): For -### don't quote arguments that contain just alphanumerics and _/-. characters. * doc/invoke.texi: Document that change for -###. From-SVN: r159255
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r--gcc/gcc.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index e2644c4..6455437 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -3020,14 +3020,23 @@ execute (void)
for (j = commands[i].argv; *j; j++)
{
const char *p;
- fprintf (stderr, " \"");
for (p = *j; *p; ++p)
+ if (!ISALNUM ((unsigned char) *p)
+ && *p != '_' && *p != '/' && *p != '-' && *p != '.')
+ break;
+ if (*p || !*j)
{
- if (*p == '"' || *p == '\\' || *p == '$')
- fputc ('\\', stderr);
- fputc (*p, stderr);
+ fprintf (stderr, " \"");
+ for (p = *j; *p; ++p)
+ {
+ if (*p == '"' || *p == '\\' || *p == '$')
+ fputc ('\\', stderr);
+ fputc (*p, stderr);
+ }
+ fputc ('"', stderr);
}
- fputc ('"', stderr);
+ else
+ fprintf (stderr, " %s", *j);
}
}
else