Re: Exposing get_filename_charset
- From: Tor Lillqvist <tml iki fi>
- To: gtk-devel-list gnome org
- Subject: Re: Exposing get_filename_charset
- Date: Sun, 31 Oct 2004 20:19:51 +0000
Alexander Larsson writes:
> The local files part of nautilus_file_get_display_name currently goes
> like:
If I understood that code correctly, it patches the display name
together from valid UTF-8 snippets in the string and question marks? I
think instead of question marks it would be more useful to use
something like g_strescape() of the whole string. I don't think file
names that are partially in UTF-8 and partially in something else
occur very often, so using the portions of the string that happen to
be valid UTF-8 as such is probably wrong, and it would be better to
just output all of the non-ASCII bytes in octal or hex.
Would this be OK:
/**
* g_filename_get_display_name:
* filename: A filename in unknown encoding
*
* Returns a UTF-8 version of a filename in unknown encoding. If the
* filename is valid in the GLib file name encoding, i.e. if
* g_filename_to_utf8() succeeds, the result of that is
* returned. Otherwise nonprintable and non-ASCII characters in the
* filename are replaced with C-like escape sequences, see
* g_strescape(). The result is thus not intended to be used as a file
* name, but for error messages and such.
*
* Returns: A newly-allocated string that should be freed with
* g_free() after use.
**/
gchar *
g_filename_display_name (const gchar *filename)
{
gchar *result = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL);
if (result != NULL)
return result;
return g_strescape (filename, NULL);
}
--tml
[
Date Prev][Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]