https://sourceware.org/bugzilla/show_bug.cgi?id=27594
--- Comment #20 from Eli Zaretskii <eliz at gnu dot org> --- (In reply to Martin Storsjö from comment #19) > (In reply to Eli Zaretskii from comment #18) > > Moreover, `windres` calls `popen` only in its default mode; you could change > > that with the --use-temp-file option, in which case the preprocessor will be > > invoked via `pexecute`, and that has a different set of > > implementation-defined perculiarities wrt quoted parts of the command. > > When windres calls pexecute, windres itself splits the string (which is in a > quoted/escaped form suitable for passing to popen) in the run_cmd function, > so run_cmd is supposed to split/unescape things in the same way as the shell > would. So ideally, the distinction between those two souldn't be visible > externally. That's an incomplete description of what the code does. It actually first quotes some parts of the command, then produces a single string with the full shell command, then (only if not using `popen`) splits the full string back into individual argv[] elements to pass to `pexecute`. Would it surprise you that this process doesn't really support "double quoting" like the `popen` method does? > Up until the 2.35 version, the option was documented as "This option may be > used to specify the preprocessor to use, including any leading arguments. > The default preprocessor argument is `gcc -E -xc-header -DRC_INVOKED`." I > think that's rather clearly saying that this kind of behaviour was > explicitly intended and allowed? So the incompatible change is in the documentation, right? The code just does what the documentation says it should, right? -- You are receiving this mail because: You are on the CC list for the bug.