mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-29 19:48:19 +00:00
Fix quoting of file names in 'ctags'
* lib-src/etags.c (main) [WINDOWSNT || MSDOS]: Quote file names according to the rules of the system shells.
This commit is contained in:
parent
474f5b21b4
commit
8a098f6517
@ -1431,6 +1431,16 @@ main (int argc, char **argv)
|
||||
setenv ("LC_COLLATE", "C", 1);
|
||||
setenv ("LC_ALL", "C", 1); */
|
||||
char *cmd = xmalloc (8 * strlen (tagfile) + sizeof "sort -u -o '' ''");
|
||||
#if defined WINDOWSNT || defined MSDOS
|
||||
/* Quote "like this". No need to escape the quotes in the file name,
|
||||
since it is not allowed in file names on these systems. */
|
||||
char *z = stpcpy (cmd, "sort -u -o \"");
|
||||
z = stpcpy (z, tagfile);
|
||||
z = stpcpy (z, "\" \"");
|
||||
z = stpcpy (z, tagfile);
|
||||
stpcpy (z, "\"");
|
||||
#else
|
||||
/* Quote 'like this', and escape the apostrophe in the file name. */
|
||||
char *z = stpcpy (cmd, "sort -u -o '");
|
||||
char *escaped_tagfile = z;
|
||||
for (; *tagfile; *z++ = *tagfile++)
|
||||
@ -1440,6 +1450,7 @@ main (int argc, char **argv)
|
||||
z = stpcpy (z, "' '");
|
||||
z = mempcpy (z, escaped_tagfile, escaped_tagfile_len);
|
||||
strcpy (z, "'");
|
||||
#endif
|
||||
return system (cmd);
|
||||
}
|
||||
return EXIT_SUCCESS;
|
||||
|
Loading…
Reference in New Issue
Block a user