From aba9e78ec4f0d2dd96e91e1f5c5ac2ef4bfc3b4b Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 15 Dec 2004 16:34:49 +0000 Subject: [PATCH] Add g_filename_display_basename. 2004-12-15 Alexander Larsson * glib/gconvert.[ch]: Add g_filename_display_basename. --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-12 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ docs/reference/ChangeLog | 5 +++++ docs/reference/glib/glib-sections.txt | 1 + glib/gconvert.c | 36 +++++++++++++++++++++++++++++++++++ glib/gconvert.h | 2 ++ 9 files changed, 69 insertions(+) diff --git a/ChangeLog b/ChangeLog index dbbd8d5..b043585 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-12-15 Alexander Larsson + + * glib/gconvert.[ch]: + Add g_filename_display_basename. + 2004-12-14 Matthias Clasen * README.in: Updates diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index dbbd8d5..b043585 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2004-12-15 Alexander Larsson + + * glib/gconvert.[ch]: + Add g_filename_display_basename. + 2004-12-14 Matthias Clasen * README.in: Updates diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index dbbd8d5..b043585 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,8 @@ +2004-12-15 Alexander Larsson + + * glib/gconvert.[ch]: + Add g_filename_display_basename. + 2004-12-14 Matthias Clasen * README.in: Updates diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index dbbd8d5..b043585 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +2004-12-15 Alexander Larsson + + * glib/gconvert.[ch]: + Add g_filename_display_basename. + 2004-12-14 Matthias Clasen * README.in: Updates diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index dbbd8d5..b043585 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +2004-12-15 Alexander Larsson + + * glib/gconvert.[ch]: + Add g_filename_display_basename. + 2004-12-14 Matthias Clasen * README.in: Updates diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 179a820..ab3e6e4 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,8 @@ +2004-12-15 Alexander Larsson + + * glib/glib-sections.txt: + Add g_filename_display_basename + 2004-12-15 Matthias Clasen * gobject/tmpl/generic_values.sgml: Document some return diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index 5cfd100..ca86daf 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -2082,6 +2082,7 @@ g_filename_from_uri g_filename_to_uri g_get_filename_charsets g_filename_display_name +g_filename_display_basename g_uri_list_extract_uris g_locale_from_utf8 GConvertError diff --git a/glib/gconvert.c b/glib/gconvert.c index 5509bd6..ef4b1bb 100644 --- a/glib/gconvert.c +++ b/glib/gconvert.c @@ -1907,6 +1907,38 @@ make_valid_utf8 (const gchar *name) } /** + * g_filename_display_basename: + * @filename: an absolute pathname in the GLib file name encoding + * + * Returns the display basename for the particular filename, guaranteed + * to be valid UTF-8. The display name might not be identical to the filename, + * for instance there might be problems converting it to UTF-8, and some files + * can be translated in the display + * + * You must pass the whole absolute pathname to this functions so that + * translation of well known locations can be done. + * + * This function is prefered over g_filename_display_name() if you know the + * whole path, as it allows translation. + * + * Return value: a newly allocated string containing + * a rendition of the basename of the filename in valid UTF-8 + * + * Since: 2.6 + **/ +gchar * +g_filename_display_basename (const gchar *filename) +{ + char *basename; + char *display_name; + + basename = g_path_get_basename (filename); + display_name = g_filename_display_name (basename); + g_free (basename); + return display_name; +} + +/** * g_filename_display_name: * @filename: a pathname hopefully in the GLib file name encoding * @@ -1918,6 +1950,10 @@ make_valid_utf8 (const gchar *name) * to be non-NULL even if the filename actually isn't in the GLib * file name encoding. * + * If you know the whole pathname of the file you should use + * g_filename_display_basename(), since that allows location-based + * translation of filenames. + * * Return value: a newly allocated string containing * a rendition of the filename in valid UTF-8 * diff --git a/glib/gconvert.h b/glib/gconvert.h index 4629a1b1..90dc212 100644 --- a/glib/gconvert.h +++ b/glib/gconvert.h @@ -126,6 +126,8 @@ gchar *g_filename_to_uri (const gchar *filename, gchar *g_filename_display_name (const gchar *filename) G_GNUC_MALLOC; gboolean g_get_filename_charsets (G_CONST_RETURN gchar ***charsets); +gchar *g_filename_display_basename (const gchar *filename) G_GNUC_MALLOC; + gchar **g_uri_list_extract_uris (const gchar *uri_list) G_GNUC_MALLOC; G_END_DECLS -- 2.7.4