From: Daiki Ueno Date: Wed, 12 Mar 2014 03:00:33 +0000 (+0900) Subject: xgettext: Fix infloop on loading Glade files with non-DL expat X-Git-Tag: v0.19~137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ffc1d31b36223145ec2e0dd6ea95e7001dfbe65c;p=thirdparty%2Fgettext.git xgettext: Fix infloop on loading Glade files with non-DL expat --- diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index 0537dd243..06a59bdb7 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,10 @@ +2014-03-12 Daiki Ueno + + xgettext: Fix infloop on loading Glade files with non-DL expat + * libexpat-compat.c: Keep the references to + XML_GetCurrent{Line,Column}Number symbols before including + libexpat-compat.h, since they are redefined. + 2014-03-10 Daiki Ueno php: Recognize single and double quotes around heredoc label diff --git a/gettext-tools/src/libexpat-compat.c b/gettext-tools/src/libexpat-compat.c index b9bbbddda..ad680db9e 100644 --- a/gettext-tools/src/libexpat-compat.c +++ b/gettext-tools/src/libexpat-compat.c @@ -23,6 +23,22 @@ #include #include +#if DYNLOAD_LIBEXPAT +# include +#else +# if HAVE_LIBEXPAT +# include +# endif +#endif + +/* Keep the references to XML_GetCurrent{Line,Column}Number symbols + before loading libexpat-compat.h, since they are redefined to + rpl_XML_GetCurrent{Line,Column}Number . */ +#if !DYNLOAD_LIBEXPAT && XML_MAJOR_VERSION >= 2 +static void *p_XML_GetCurrentLineNumber = (void *) &XML_GetCurrentLineNumber; +static void *p_XML_GetCurrentColumnNumber = (void *) &XML_GetCurrentColumnNumber; +#endif + #include "libexpat-compat.h" /* ======================= Different libexpat ABIs. ======================= */ @@ -66,8 +82,6 @@ is_XML_LARGE_SIZE_ABI (void) return is_large; } -static void *p_XML_GetCurrentLineNumber = (void *) &XML_GetCurrentLineNumber; - int64_t rpl_XML_GetCurrentLineNumber (XML_Parser parser) { @@ -77,8 +91,6 @@ rpl_XML_GetCurrentLineNumber (XML_Parser parser) return ((long (*) (XML_Parser)) p_XML_GetCurrentLineNumber) (parser); } -static void *p_XML_GetCurrentColumnNumber = (void *) &XML_GetCurrentColumnNumber; - int64_t rpl_XML_GetCurrentColumnNumber (XML_Parser parser) {