Revision: 2121 http://geany.svn.sourceforge.net/geany/?rev=2121&view=rev Author: ntrel Date: 2007-12-21 08:34:07 -0800 (Fri, 21 Dec 2007)
Log Message: ----------- Make utils_get_utf8_from_locale(), utils_get_locale_from_utf8() NULL-safe.
Modified Paths: -------------- trunk/ChangeLog trunk/src/utils.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-12-21 13:09:09 UTC (rev 2120) +++ trunk/ChangeLog 2007-12-21 16:34:07 UTC (rev 2121) @@ -6,6 +6,9 @@ the GtkEntry, use a callback for input text, and have a 'persistent' option to hide the dialog instead of deleting it, using a combo box for input text history. + * src/utils.c: + Make utils_get_utf8_from_locale(), utils_get_locale_from_utf8() + NULL-safe.
2007-12-19 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/utils.c =================================================================== --- trunk/src/utils.c 2007-12-21 13:09:09 UTC (rev 2120) +++ trunk/src/utils.c 2007-12-21 16:34:07 UTC (rev 2121) @@ -1384,6 +1384,7 @@ }
+/* Null-safe with fallback encoding conversion. */ gchar *utils_get_locale_from_utf8(const gchar *utf8_text) { #ifdef G_OS_WIN32 @@ -1391,13 +1392,19 @@ // which would result in wrongly converted strings return g_strdup(utf8_text); #else - gchar *locale_text = g_locale_from_utf8(utf8_text, -1, NULL, NULL, NULL); - if (locale_text == NULL) locale_text = g_strdup(utf8_text); + gchar *locale_text; + + if (! utf8_text) + return NULL; + locale_text = g_locale_from_utf8(utf8_text, -1, NULL, NULL, NULL); + if (locale_text == NULL) + locale_text = g_strdup(utf8_text); return locale_text; #endif }
+/* Null-safe with fallback encoding conversion. */ gchar *utils_get_utf8_from_locale(const gchar *locale_text) { #ifdef G_OS_WIN32 @@ -1405,8 +1412,13 @@ // which would result in wrongly converted strings return g_strdup(locale_text); #else - gchar *utf8_text = g_locale_to_utf8(locale_text, -1, NULL, NULL, NULL); - if (utf8_text == NULL) utf8_text = g_strdup(locale_text); + gchar *utf8_text; + + if (! locale_text) + return NULL; + utf8_text = g_locale_to_utf8(locale_text, -1, NULL, NULL, NULL); + if (utf8_text == NULL) + utf8_text = g_strdup(locale_text); return utf8_text; #endif }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.