diff options
author | Jay Berkenbilt <ejb@ql.org> | 2019-11-09 21:01:15 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2019-11-10 00:50:42 +0100 |
commit | 07da0039d3f496871d746305fbbf76ee9bde9862 (patch) | |
tree | 2bd79ba09951f77ba2d2866c339b2f73313a25c2 /TODO | |
parent | a58918bb8756c7c8efb12a6a283cc7f879565141 (diff) | |
download | qpdf-07da0039d3f496871d746305fbbf76ee9bde9862.tar.zst |
Link with setargv or wsetargv with MSVC (fixes #224)
For wildcard expansion to work properly with the msvc binary, it is
necessary to link with setargv.obj or wsetargv.obj, depending on
whether wmain is in use.
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -132,6 +132,33 @@ Page splitting/merging * Form fields: should be similar to outlines. +MSVC Wildcard Expansion +======================= + +(This section is referenced in azure_pipelines.yml.) + +The qpdf executable built with msvc is linked with setargv.obj or +wsetargv.obj so that wildcard expansion works. It doesn't work exactly +the way a UNIX system would work in that the program itself does the +expansion (rather than the shell), which means that invoking qpdf.exe +as built by msvc will expand "*.pdf" just as it will expand *.pdf. In +some earlier versions, wildcard expansion didn't work with the msvc +executable. The way to make this work appears to be different in some +versions of MSVC than in others. As such, if upgrading MSVC or +changing the build environment, the wildcard expansion behavior of the +qpdf executable in Windows should be retested manually. + +Unfortunately, there is no automated test for wildcard expansion with +MSVC because I can't figure out how to prevent qtest from expanding +the wildcards before passing them in, and explicitly running "cmd /c +..." from qtest doesn't seem to work in Azure Pipelines, though I can +make it work locally. + +Ideally, we should figure out a way to test this in CI by having a +test that fails if wildcard expansion is broken. In the absence of +this, it will be necessary to test the behavior manually in both mingw +and msvc when run from cmd and from msys bash. + General ======= |