diff options
author | Jakub Jelinek <jakub@redhat.com> | 2010-05-11 08:50:24 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-05-11 08:50:24 +0200 |
commit | 09b201fc9b3a17202761bde6b25f84bb844d5b1a (patch) | |
tree | 8f7588d5feab29a97a6a9665a37867bf8904390c /gcc/gcc.c | |
parent | 3f592b380f98e60a084f62d9c54aa3c2094a22fa (diff) | |
download | gcc-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.c | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -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 |