PR binutils/4356 binutils/591
* resrc.c (filename_need_quotes): New function. (look_for_default): If filename_need_quotes is true then quote the filename in the command line being created. (read_rc_file): Likewise.
This commit is contained in:
parent
3cc783058e
commit
4b2c5b4af6
@ -1,8 +1,16 @@
|
||||
2007-06-06 Kai Tietz <Kai.Tietz@onevision.com>
|
||||
|
||||
PR binutils/4356 binutils/591
|
||||
* resrc.c (filename_need_quotes): New function.
|
||||
(look_for_default): If filename_need_quotes is true then quote the
|
||||
filename in the command line being created.
|
||||
(read_rc_file): Likewise.
|
||||
|
||||
2007-06-06 Ben Elliston <bje@au.ibm.com>
|
||||
|
||||
* doc/binutils.texi (objdump): Fix capitalisation of "PowerPC".
|
||||
|
||||
007-06-05 Kai Tietz <Kai.Tietz@onevision.com>
|
||||
2007-06-05 Kai Tietz <Kai.Tietz@onevision.com>
|
||||
|
||||
* Makefile.am: Add LIBICONV to windres.
|
||||
* acinclude.m4: Added missing "lib-*.m4" and "lt*.m4" files.
|
||||
@ -10,7 +18,7 @@
|
||||
* config.in: Add ICONV defines.
|
||||
* aclocal: Regenerate.
|
||||
* confugure: Regenerate.
|
||||
* winduni.c: (local_iconv_map codepages, wind_language_t
|
||||
* winduni.c: (local_iconv_map codepages, wind_language_t,
|
||||
languages, unicode_is_valid_codepage, wind_find_language_by_id,
|
||||
wind_find_language_by_codepage, wind_find_codepage_info,
|
||||
unicode_from_codepage, codepage_from_unicode, iconv_onechar,
|
||||
|
@ -351,7 +351,33 @@ open_input_stream (char *cmd)
|
||||
return cpp_pipe;
|
||||
}
|
||||
|
||||
/* look for the preprocessor program */
|
||||
/* Determine if FILENAME contains special characters that
|
||||
can cause problems unless the entire filename is quoted. */
|
||||
|
||||
static int
|
||||
filename_need_quotes (const char *filename)
|
||||
{
|
||||
if (filename == NULL || (filename[0] == '-' && filename[1] == 0))
|
||||
return 0;
|
||||
|
||||
while (*filename != 0)
|
||||
{
|
||||
switch (*filename)
|
||||
{
|
||||
case '&':
|
||||
case ' ':
|
||||
case '<':
|
||||
case '>':
|
||||
case '|':
|
||||
case '%':
|
||||
return 1;
|
||||
}
|
||||
++filename;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Look for the preprocessor program. */
|
||||
|
||||
static FILE *
|
||||
look_for_default (char *cmd, const char *prefix, int end_prefix,
|
||||
@ -360,6 +386,7 @@ look_for_default (char *cmd, const char *prefix, int end_prefix,
|
||||
char *space;
|
||||
int found;
|
||||
struct stat s;
|
||||
const char *fnquotes = (filename_need_quotes (filename) ? "\"" : "");
|
||||
|
||||
strcpy (cmd, prefix);
|
||||
|
||||
@ -390,8 +417,8 @@ look_for_default (char *cmd, const char *prefix, int end_prefix,
|
||||
|
||||
strcpy (cmd, prefix);
|
||||
|
||||
sprintf (cmd + end_prefix, "%s %s %s",
|
||||
DEFAULT_PREPROCESSOR, preprocargs, filename);
|
||||
sprintf (cmd + end_prefix, "%s %s %s%s%s",
|
||||
DEFAULT_PREPROCESSOR, preprocargs, fnquotes, filename, fnquotes);
|
||||
|
||||
if (verbose)
|
||||
fprintf (stderr, _("Using `%s'\n"), cmd);
|
||||
@ -407,6 +434,7 @@ read_rc_file (const char *filename, const char *preprocessor,
|
||||
const char *preprocargs, int language, int use_temp_file)
|
||||
{
|
||||
char *cmd;
|
||||
const char *fnquotes = (filename_need_quotes (filename) ? "\"" : "");
|
||||
|
||||
istream_type = (use_temp_file) ? ISTREAM_FILE : ISTREAM_PIPE;
|
||||
|
||||
@ -420,8 +448,10 @@ read_rc_file (const char *filename, const char *preprocessor,
|
||||
cmd = xmalloc (strlen (preprocessor)
|
||||
+ strlen (preprocargs)
|
||||
+ strlen (filename)
|
||||
+ strlen (fnquotes) * 2
|
||||
+ 10);
|
||||
sprintf (cmd, "%s %s %s", preprocessor, preprocargs, filename);
|
||||
sprintf (cmd, "%s %s %s%s%s", preprocessor, preprocargs,
|
||||
fnquotes, filename, fnquotes);
|
||||
|
||||
cpp_pipe = open_input_stream (cmd);
|
||||
}
|
||||
@ -435,6 +465,7 @@ read_rc_file (const char *filename, const char *preprocessor,
|
||||
+ strlen (preprocessor)
|
||||
+ strlen (preprocargs)
|
||||
+ strlen (filename)
|
||||
+ strlen (fnquotes) * 2
|
||||
#ifdef HAVE_EXECUTABLE_SUFFIX
|
||||
+ strlen (EXECUTABLE_SUFFIX)
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user