[Bug 20720] winebrowser fails when # is in the file name

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Oct 7 12:24:53 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=20720

Jörg Höhle <hoehle at users.sourceforge.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hoehle at users.sourceforge.ne
                   |                            |t

--- Comment #16 from Jörg Höhle <hoehle at 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

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the wine-bugs mailing list