http://bugs.winehq.org/show_bug.cgi?id=20720
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hoehle@users.sourceforge.ne | |t
--- Comment #16 from Jörg Höhle hoehle@users.sourceforge.net 2010-10-07 12:24:52 CDT --- There are 2 issues.
A) C:... is sometimes passed to the external program, sometimes not trace:winebrowser:launch_app argv[1]: "C:\test#.pdf" trace:winebrowser:launch_app argv[1]: "C:\test#2.pdf" trace:winebrowser:launch_app argv[1]: "file:///Users/admin/.wine/dosdevices/c:/test.pdf" trace:winebrowser:launch_app argv[1]: "file:///Users/admin/.wine/dosdevices/c:/#test.pdf" The later shows that a non-escaped URL is passed to the external program.
B) Appropriate escaping is needed with /usr/bin/open - file:///Users/... -- URLs need % escapes - /Users/... wants the literal name.
$ open "/Users/admin/.wine/dosdevices/c:/%74est.pdf" The file /Users/admin/.wine/dosdevices/c:/%74est.pdf does not exist. $ open "file:///Users/admin/.wine/dosdevices/c:/%74est.pdf" works. %4 translates to t, %23 to #. $ open "file:///Users/admin/.wine/dosdevices/c:/test%23.pdf" works. $ open "file:////Users/admin/.wine/dosdevices/c:/test#.pdf" The file //Users/admin/.wine/dosdevices/c:/test does not exist. open rightfully complains about "test", not "test#.pdf". The section after # is cut-off, which is understandable, because the # separates URI from fragment identifier, see RFC2396 or 1738. Every browser implements this since 1992. /usr/bin/open "file:///path.../#..." will see a directory URL and open a file browser, no surprise.
test¿.pdf and test€.pdf work for me in MacOSX 10.5.8 with Wine-1.3.4 trace:winebrowser:launch_app argv[1]: "file:///Users/admin/.wine/dosdevices/c:/test\xc2\xbf.pdf" trace:winebrowser:launch_app argv[1]: "file:///Users/admin/.wine/dosdevices/c:/test\xe2\x82\xac.pdf"
test% .pdf and test %.pdf also work, even though the URL constructed is incorrect: trace:winebrowser:launch_app argv[1]: "file:///Users/admin/.wine/dosdevices/c:/test% .pdf" trace:winebrowser:launch_app argv[1]: "file:///Users/admin/.wine/dosdevices/c:/test %.pdf"
The component at fault is programs - winebrowser/main.c:/wmain