]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Interoperability with expat version 2.0.0.
authorBruno Haible <bruno@clisp.org>
Tue, 4 Apr 2006 11:39:04 +0000 (11:39 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:13:07 +0000 (12:13 +0200)
NEWS
gettext-tools/src/ChangeLog
gettext-tools/src/x-glade.c

diff --git a/NEWS b/NEWS
index 8b183702bd0e8e192bf212a78b4f981862f7700f..ccd5b015a3e08d0568027593d11e76a501b659a5 100644 (file)
--- 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.
index d91157a5b4f25befd1f5268041961f862b44937b..21985ea2dc541e31d313f7e9136d983fe55f298a 100644 (file)
@@ -1,3 +1,12 @@
+2006-04-03  Bruno Haible  <bruno@clisp.org>
+
+       * 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 <vapier@gentoo.org>.
+
 2006-04-02  Bruno Haible  <bruno@clisp.org>
 
        * hostname.c: Include propername.h.
index 7754ec758db449fbe940af1e3912a2b9934fb917..b15c7056dcc5b6fe0da99fba567d06f3c4b8b432 100644 (file)
@@ -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 <expat.h>.  */
+#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);