Don't call g_set_error() unless the GError pointer is non-NULL. This
authorTor Lillqvist <tml@novell.com>
Wed, 27 Apr 2005 09:50:09 +0000 (09:50 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Wed, 27 Apr 2005 09:50:09 +0000 (09:50 +0000)
commitdc11b4370fcf49d495c8783b037f507f2f46a03a
treea49b6a69a67a0393680421d70d6ab6d290de3980
parent810e3f160585b0083c1b08e9b09fdebdaca6a4a7
Don't call g_set_error() unless the GError pointer is non-NULL. This

2005-04-27  Tor Lillqvist  <tml@novell.com>

* glib/gconvert.c (open_converter, g_convert_with_iconv): Don't
call g_set_error() unless the GError pointer is non-NULL. This
avoids infinite recursion problems in certain rare situations on
Windows, when g_locale_from_utf8() is called from
_glib_get_locale_dir() after the change below. It's the
_glib_gettext() calls to translate error messages that are
parameters to g_set_error() that cause the recursion, not
g_set_error() itself.

* glib/gwin32.c (g_win32_locale_filename_from_utf8): New
function. Converts a filename to the system codepage, and if a
straight conversion isn't possible (because the filename contains
characters not in the system codepage), try looking up the
filename (which should refer to an existing file for this to
succeed) with short (8.3) pathname components.

* glib/gutils.c (_glib_get_locale_dir): No need to cache the
result, this function is normally called only once. Return the
path to the locale directory in system codepage, not UTF-8. The
path is passed to bindtextdomain(), which doesn't use UTF-8 file
names. Use g_win32_locale_filename_from_utf8(). (#301772)

Don't do run-time lookup of message catalog directory on
Cygwin. Cygwin is supposed to look and feel like Unix, and on Unix
we use paths fixed at configure time.
ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-8
glib/gconvert.c
glib/gutils.c
glib/gwin32.c
glib/gwin32.h