When I try to run with the xul processor in Firebird or Thunderbird, the processing script fails to run because of a parsing error with the list of environment defines. I did a little trial and error hacking in make-jar.pl and I think I've found the particular define that is causing problems: $defines="-DNEW_H=\<new\>"; I think these slashes are causing the script that parses the define list to terminate early, treating the next define as the processor file argument: $preprocessor $defines $preproc_file > $destPath") For reference, here is the entire define list that gets generated when I build thunderbird or firebird: -DOSTYPE="WINNT5.1" -DOSARCH="WINNT" -DX_DISPLAY_MISSING=1 -DHAVE_SNPRINTF=1 -D _WINDOWS=1 -D_WIN32=1 -DWIN32=1 -DXP_WIN=1 -DXP_WIN32=1 -DHW_THREADS=1 -DWINVER= 0x400 -DSTDC_HEADERS=1 -DNEW_H=\<new\> -DWIN32_LEAN_AND_MEAN=1 -DNO_X11=1 -D_X86 _=1 -DD_INO=d_ino -DMOZ_DEFAULT_TOOLKIT="windows" -DMOZ_THUNDERBIRD=1 -DMOZ_STAT IC_MAIL_BUILD=1 -DMOZ_XUL_APP=1 -DMOZ_ENABLE_COREXFONTS=1 -DOJI=1 -DIBMBIDI=1 -D ACCESSIBILITY=1 -DMOZ_XPINSTALL=1 -DMOZ_JSLOADER=1 -DMOZ_LOGGING=1 -DMOZ_USER_DI R=".mozilla" -DCPP_THROW_NEW=throw\(\) -DMOZ_XUL=1 -DMOZ_DLL_SUFFIX=".dll" -DJS_ THREADSAFE=1 -DNS_PRINT_PREVIEW=1 -DNS_PRINTING=1 -DMOZILLA_VERSION="1.4b"
I would guess this isn't a bug with the preprocessor itself but with the script that calls it (it sounds like someone is interpolating into a shell without escaping first, a big no-no).
preprocessor -> bryner
Created attachment 126495 [details] [diff] [review] ugly work around for thunderbird users that run into this problem bryner, any chance you can take a look at this problem with the xul pre-processor? I get at least one new person a week that runs into this issue, telling me they can't build thunderbird.
Is this bug still an issue now that NEW_H was moved into xpcom-config.h ?
unfortunately I no longer have access to the two windows machines that had this problem for me. Maybe someone on the cc list who ran into this could try again?
still seeing the problem today while working on Standalone Composer
Didn't we fix this?
I don't think so. We fixed it for -E, but not I think in other cases. I don't think this is a problem with the preprocessor itself, but probably with make-jars.pl (calling make-jars.pl unescapes the argument, and it's not being re-escaped.
Ah, ok. So not a preprocessor bug. Good good.