After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 683871 - glib2.0 fails to handle file names with single quotes in them ("'")
glib2.0 fails to handle file names with single quotes in them ("'")
Status: RESOLVED FIXED
Product: glib
Classification: Platform
Component: general
2.33.x
Other Linux
: Normal major
: ---
Assigned To: gtkdev
gtkdev
Depends on:
Blocks:
 
 
Reported: 2012-09-12 13:08 UTC by Thierry Vignaud
Modified: 2012-09-17 05:38 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Thierry Vignaud 2012-09-12 13:08:03 UTC
This is a regression against 2.32.x:

The Breton language has the trigraph "c'h" in its alphabet.
This means that "'" appears in a lot of words, which I just found breaks a lot
of gtk+ apps (dolphin works smoothly).

I think the bug resides in glib2.0 as both thunar & nautilus are affected

How to reproduce?
Just run the following commands:

cd; mkdir "ar voualc'h"; touch "ar voualc'h."{odt,txt}; nautilus "$PWD"

Nautilus complains about:
"Unable to find the requested file. Please check the spelling and try again.
Unhandled error message: Error when getting information for file
'/home/foobar/ar voualc'h/voualc'h': No such file or directory"
Note the repeated "voualc'h" word.

Getting in ~ then in "ar voualc'h" by doble clicking on the directory icon is
OK.
But then opening files doesn't succeed:
Trying to open the text file results in starting gedit on both non existent
"ar" & "voualc'h" files.
Note that it split on the space... This bug only happened if the full path
contains a "'", it doesn't happen else.

Trying to open the LibreOffice file results in 3 successive dialogs all saying:
"/home/foobar/ar voualc'h/ar doesn't exists"
"/home/foobar/ar voualc'h/voualc'h doesn't exists"
"/home/foobar/ar voualc'h/.odt doesn't exists"

Note that it cut both on the "'" and before ".odt" (which is very odd)...

All these issues do not happen with dolphin, only with thunar & nautilus, thus
I suspect either glib or gvfs.

strace show they do:
execve("/bin/libreoffice", ["libreoffice", "--writer", "/home/foobar/ar
voualc'h/ar", "voualc'h", ".odt"], [/* 51 vars */]

I don't see why in that case they split before ".odt"...

KO with glib2-2.33.12/gvfs-1.13.8
OK with glib2-2.32.4/gvfs-1.12.3
Comment 1 Matthias Clasen 2012-09-17 03:30:45 UTC
This was fixed recently
Comment 2 Thierry Vignaud 2012-09-17 05:38:50 UTC
I guess you meant http://git.gnome.org/browse/glib/commit/?id=c99acf51d0405500592c36b739faa6bfcdb8181a ?