xdg-utils 1.0.1-2 on Ubuntu Gutsy 7.10 xdg-open tries to detect the desktop environment and falls back to a generic method using run-mailcap. There is a bug in this function open_generic() that means if the path contains a space, the method fails. e.g. johncc@liberator:~$ xdg-open Fire\ stockists.txt local: 438: stockists.txt: bad variable name Warning: unknown mime-type for "Fire" -- using "application/*" Error: no such file "Fire" To provoke this bug you need to not be running GNOME, KDE or XFCE. In GNOME you can fake this by doing:- unset GNOME_DESKTOP_SESSION_ID touch file\ with\ spaces.txt xdg-open file\ with\ spaces.txt The problem is just missing quotes. A simple patch fixes it for me. 373c373 < local file="$(echo "$1" | sed 's%^file://%%')" --- > local file=$(echo "$1" | sed 's%^file://%%')
Confirmed this behavior in Hardy (xdg-utils 1.0.2-2) with the following: greg@alexandria:~$echo $GNOME_DESKTOP_SESSION_ID Default greg@alexandria:~$unset GNOME_DESKTOP_SESSION_ID greg@alexandria:~$echo $GNOME_DESKTOP_SESSION_ID greg@alexandria:~$touch file\ with\ spaces.txt greg@alexandria:~$xdg-open file\ with\ spaces.txt local: 438: spaces.txt: bad variable name Warning: unknown mime-type for "file" -- using "application/*" Error: no such file "file" greg@alexandria:~$touch file%20with%20a\ space.txt greg@alexandria:~$ls | grep file file%20with%20a space.txt file with spaces.txt greg@alexandria:~$xdg-open file%20with%20a\ space.txt local: 438: space.txt: bad variable name Warning: unknown mime-type for "file%20with%20a" -- using "application/*" Error: no such file "file%20with%20a" After an "export GNOME_DESKTOP_SESSION_ID=Default" the above xdg-open commands work as expected.
Hi, I have tested this and it is fixed in 1.0.2 Thanks, James
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.