From: Bruno Haible Date: Tue, 4 Apr 2006 11:39:04 +0000 (+0000) Subject: Interoperability with expat version 2.0.0. X-Git-Tag: v0.15~251 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48502ba79d60fa8dd7e708f981e0ddce54c06904;p=thirdparty%2Fgettext.git Interoperability with expat version 2.0.0. --- diff --git a/NEWS b/NEWS index 8b183702b..ccd5b015a 100644 --- a/NEWS +++ b/NEWS @@ -63,6 +63,8 @@ * Portability to mingw. +* Interoperability with expat version 2.0.0. + * Documentation: A complete example showing the use of GNU gettext with the wxWidgets GUI toolkit has been added. diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index d91157a5b..21985ea2d 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,12 @@ +2006-04-03 Bruno Haible + + * x-glade.c (p_XML_GetCurrentLineNumber, p_XML_GetCurrentColumnNumber): + Declare differently for expat >= 2.0.0. + (load_libexpat): Search for a differently library name for expat >= + 2.0.0. + (do_extract_glade): Update. + Reported by Mike Frysinger . + 2006-04-02 Bruno Haible * hostname.c: Include propername.h. diff --git a/gettext-tools/src/x-glade.c b/gettext-tools/src/x-glade.c index 7754ec758..b15c7056d 100644 --- a/gettext-tools/src/x-glade.c +++ b/gettext-tools/src/x-glade.c @@ -125,8 +125,13 @@ static void (*p_XML_SetCharacterDataHandler) (XML_Parser parser, XML_CharacterDa static void (*p_XML_SetCommentHandler) (XML_Parser parser, XML_CommentHandler handler); static int (*p_XML_Parse) (XML_Parser parser, const char *s, int len, int isFinal); static enum XML_Error (*p_XML_GetErrorCode) (XML_Parser parser); +#if XML_MAJOR_VERSION >= 2 +static XML_Size (*p_XML_GetCurrentLineNumber) (XML_Parser parser); +static XML_Size (*p_XML_GetCurrentColumnNumber) (XML_Parser parser); +#else static int (*p_XML_GetCurrentLineNumber) (XML_Parser parser); static int (*p_XML_GetCurrentColumnNumber) (XML_Parser parser); +#endif static void (*p_XML_ParserFree) (XML_Parser parser); static const XML_LChar * (*p_XML_ErrorString) (int code); @@ -148,7 +153,14 @@ load_libexpat () { if (libexpat_loaded == 0) { - void *handle = dlopen ("libexpat.so.0", RTLD_LAZY); + void *handle; + /* Be careful to use exactly the version of libexpat that matches the + binary interface declared in . */ +#if XML_MAJOR_VERSION >= 2 + handle = dlopen ("libexpat.so.1", RTLD_LAZY); +#else + handle = dlopen ("libexpat.so.0", RTLD_LAZY); +#endif if (handle != NULL && (p_XML_ParserCreate = dlsym (handle, "XML_ParserCreate")) != NULL && (p_XML_SetElementHandler = dlsym (handle, "XML_SetElementHandler")) != NULL @@ -413,16 +425,16 @@ error while reading \"%s\""), real_filename); } if (XML_Parse (parser, buf, count, 0) == 0) - error (EXIT_FAILURE, 0, _("%s:%d:%d: %s"), logical_filename, - XML_GetCurrentLineNumber (parser), - XML_GetCurrentColumnNumber (parser) + 1, + error (EXIT_FAILURE, 0, _("%s:%lu:%lu: %s"), logical_filename, + (unsigned long) XML_GetCurrentLineNumber (parser), + (unsigned long) XML_GetCurrentColumnNumber (parser) + 1, XML_ErrorString (XML_GetErrorCode (parser))); } if (XML_Parse (parser, NULL, 0, 1) == 0) - error (EXIT_FAILURE, 0, _("%s:%d:%d: %s"), logical_filename, - XML_GetCurrentLineNumber (parser), - XML_GetCurrentColumnNumber (parser) + 1, + error (EXIT_FAILURE, 0, _("%s:%lu:%lu: %s"), logical_filename, + (unsigned long) XML_GetCurrentLineNumber (parser), + (unsigned long) XML_GetCurrentColumnNumber (parser) + 1, XML_ErrorString (XML_GetErrorCode (parser))); XML_ParserFree (parser);