You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ji...@apache.org on 2017/08/08 10:40:53 UTC
svn commit: r1804389 -
/openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
Author: jim
Date: Tue Aug 8 10:40:53 2017
New Revision: 1804389
URL: http://svn.apache.org/viewvc?rev=1804389&view=rev
Log:
revert 1804232 for 4.1.4... still no work. Use ugly but working patch from RC1
Modified:
openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
Modified: openoffice/branches/AOO414/main/expat/expat-2.2.3.patch
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO414/main/expat/expat-2.2.3.patch?rev=1804389&r1=1804388&r2=1804389&view=diff
==============================================================================
--- openoffice/branches/AOO414/main/expat/expat-2.2.3.patch (original)
+++ openoffice/branches/AOO414/main/expat/expat-2.2.3.patch Tue Aug 8 10:40:53 2017
@@ -1,6 +1,6 @@
--- misc/expat-2.2.3/lib/makefile.mk Wed Aug 20 14:33:55 2008
+++ misc/build/expat-2.2.3/lib/makefile.mk Wed Aug 20 14:26:42 2008
-@@ -1 +1,85 @@
+@@ -1 +1,83 @@
-dummy
+#**************************************************************
+#
@@ -45,23 +45,21 @@
+CDEFS+=-DHAVE_MEMMOVE -DHAVE_BCOPY
+.ENDIF # "$(OS)"=="MACOSX"
+
++SLOFILES=$(SLO)$/xmlparse.obj \
++ $(SLO)$/xmlrole.obj \
++ $(SLO)$/xmltok.obj
++
+SECOND_BUILD=UNICODE
+UNICODE_SLOFILES=$(SLO)$/xmlparse.obj
+UNICODECDEFS+=-DXML_UNICODE
+
-+.IF "$(OS)"=="WNT"
-+ LOADLIBOBJFILE=$(SLO)/loadlibrary.obj
-+.ELSE
-+ LOADLIBOBJFILE=
-+.ENDIF
-+
+LIB1ARCHIV=$(LB)$/libascii_$(TARGET)_xmlparse.a
+LIB1TARGET=$(SLB)$/ascii_$(TARGET)_xmlparse.lib
-+LIB1OBJFILES=$(SLO)$/xmlparse.obj $(LOADLIBOBJFILE)
++LIB1OBJFILES=$(SLO)$/xmlparse.obj
+
+LIB2ARCHIV=$(LB)$/lib$(TARGET)_xmlparse.a
+LIB2TARGET=$(SLB)$/$(TARGET)_xmlparse.lib
-+LIB2OBJFILES =$(REAL_UNICODE_SLOFILES) $(LOADLIBOBJFILE)
++LIB2OBJFILES =$(REAL_UNICODE_SLOFILES)
+
+LIB3ARCHIV=$(LB)$/lib$(TARGET)_xmltok.a
+LIB3TARGET=$(SLB)$/$(TARGET)_xmltok.lib
@@ -87,3 +85,329 @@
+.INCLUDE : set_wntx64.mk
+.INCLUDE : target.mk
+.INCLUDE : tg_wntx64.mk
+diff -ur misc/expat-2.2.3/lib/xmlparse.c misc/build/expat-2.2.3/lib/xmlparse.c
+--- misc/expat-2.2.3/lib/xmlparse.c 2017-08-02 09:40:48.000000000 -0400
++++ misc/build/expat-2.2.3/lib/xmlparse.c 2017-08-04 18:33:34.000000000 -0400
+@@ -1,3 +1,145 @@
++/***************************************************************************
++ * _ _ ____ _
++ * Project ___| | | | _ \| |
++ * / __| | | | |_) | |
++ * | (__| |_| | _ <| |___
++ * \___|\___/|_| \_\_____|
++ *
++ * Copyright (C) 2016 - 2017, Steve Holme, <st...@hotmail.com>.
++ *
++ * All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
++ * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
++ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
++ * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ * Except as contained in this notice, the name of a copyright holder shall
++ * not be used in advertising or otherwise to promote the sale, use or other
++ * dealings in this Software without prior written authorization of the
++ * copyright holder.
++ *
++ ***************************************************************************/
++
++#if defined(_WIN32)
++
++#include <windows.h>
++#include <tchar.h>
++
++
++HMODULE _Expat_LoadLibrary(LPCTSTR filename);
++
++
++#if !defined(LOAD_WITH_ALTERED_SEARCH_PATH)
++#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008
++#endif
++
++#if !defined(LOAD_LIBRARY_SEARCH_SYSTEM32)
++#define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800
++#endif
++
++/* We use our own typedef here since some headers might lack these */
++typedef HMODULE (APIENTRY *LOADLIBRARYEX_FN)(LPCTSTR, HANDLE, DWORD);
++
++/* See function definitions in winbase.h */
++#ifdef UNICODE
++# ifdef _WIN32_WCE
++# define LOADLIBARYEX L"LoadLibraryExW"
++# else
++# define LOADLIBARYEX "LoadLibraryExW"
++# endif
++#else
++# define LOADLIBARYEX "LoadLibraryExA"
++#endif
++
++
++/*
++ * _Expat_LoadLibrary()
++ *
++ * This is used to dynamically load DLLs using the most secure method available
++ * for the version of Windows that we are running on.
++ *
++ * Parameters:
++ *
++ * filename [in] - The filename or full path of the DLL to load. If only the
++ * filename is passed then the DLL will be loaded from the
++ * Windows system directory.
++ *
++ * Returns the handle of the module on success; otherwise NULL.
++ */
++HMODULE _Expat_LoadLibrary(LPCTSTR filename)
++{
++ HMODULE hModule = NULL;
++ LOADLIBRARYEX_FN pLoadLibraryEx = NULL;
++
++ /* Get a handle to kernel32 so we can access it's functions at runtime */
++ HMODULE hKernel32 = GetModuleHandle(TEXT("kernel32"));
++ if(!hKernel32)
++ return NULL;
++
++ /* Attempt to find LoadLibraryEx() which is only available on Windows 2000
++ and above */
++ pLoadLibraryEx = (LOADLIBRARYEX_FN) GetProcAddress(hKernel32, LOADLIBARYEX);
++
++ /* Detect if there's already a path in the filename and load the library if
++ there is. Note: Both back slashes and forward slashes have been supported
++ since the earlier days of DOS at an API level although they are not
++ supported by command prompt */
++ if(_tcspbrk(filename, TEXT("\\/"))) {
++ /** !checksrc! disable BANNEDFUNC 1 **/
++ hModule = pLoadLibraryEx ?
++ pLoadLibraryEx(filename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) :
++ LoadLibrary(filename);
++ }
++ /* Detect if KB2533623 is installed, as LOAD_LIBARY_SEARCH_SYSTEM32 is only
++ supported on Windows Vista, Windows Server 2008, Windows 7 and Windows
++ Server 2008 R2 with this patch or natively on Windows 8 and above */
++ else if(pLoadLibraryEx && GetProcAddress(hKernel32, "AddDllDirectory")) {
++ /* Load the DLL from the Windows system directory */
++ hModule = pLoadLibraryEx(filename, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
++ }
++ else {
++ /* Attempt to get the Windows system path */
++ UINT systemdirlen = GetSystemDirectory(NULL, 0);
++ if(systemdirlen) {
++ /* Allocate space for the full DLL path (Room for the null terminator
++ is included in systemdirlen) */
++ size_t filenamelen = _tcslen(filename);
++ TCHAR *path = malloc(sizeof(TCHAR) * (systemdirlen + 1 + filenamelen));
++ if(path && GetSystemDirectory(path, systemdirlen)) {
++ /* Calculate the full DLL path */
++ _tcscpy(path + _tcslen(path), TEXT("\\"));
++ _tcscpy(path + _tcslen(path), filename);
++
++ /* Load the DLL from the Windows system directory */
++ /** !checksrc! disable BANNEDFUNC 1 **/
++ hModule = pLoadLibraryEx ?
++ pLoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) :
++ LoadLibrary(path);
++
++ }
++ free(path);
++ }
++ }
++
++ return hModule;
++}
++
++#else /* defined(_WIN32) */
++
++/* ISO C requires a translation unit to contain at least one declaration
++ [-Wempty-translation-unit] */
++typedef int _TRANSLATION_UNIT_LOAD_LIBRARY_C_NOT_EMTPY;
++
++#endif /* defined(_WIN32) */
++
+ /* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+ See the file COPYING for copying permission.
+
+@@ -314,7 +456,7 @@
+ int nDefaultAtts;
+ int allocDefaultAtts;
+ DEFAULT_ATTRIBUTE *defaultAtts;
+-} ELEMENT_TYPE;
++} XMLPARSE_ELEMENT_TYPE;
+
+ typedef struct {
+ HASH_TABLE generalEntities;
+@@ -414,7 +556,7 @@
+ addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
+ const XML_Char *uri, BINDING **bindingsPtr);
+ static int
+-defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata,
++defineAttribute(XMLPARSE_ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata,
+ XML_Bool isId, const XML_Char *dfltValue, XML_Parser parser);
+ static enum XML_Error
+ storeAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata,
+@@ -426,7 +568,7 @@
+ getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start,
+ const char *end);
+ static int
+-setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *);
++setElementTypePrefix(XML_Parser parser, XMLPARSE_ELEMENT_TYPE *);
+ static enum XML_Error
+ storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *start,
+ const char *end);
+@@ -487,7 +629,7 @@
+
+ static int FASTCALL nextScaffoldPart(XML_Parser parser);
+ static XML_Content * build_model(XML_Parser parser);
+-static ELEMENT_TYPE *
++static XMLPARSE_ELEMENT_TYPE *
+ getElementType(XML_Parser parser, const ENCODING *enc,
+ const char *ptr, const char *end);
+
+@@ -585,7 +727,7 @@
+ const XML_Char *m_declAttributeType;
+ const XML_Char *m_declNotationName;
+ const XML_Char *m_declNotationPublicId;
+- ELEMENT_TYPE *m_declElementType;
++ XMLPARSE_ELEMENT_TYPE *m_declElementType;
+ ATTRIBUTE_ID *m_declAttributeId;
+ XML_Bool m_declAttributeIsCdata;
+ XML_Bool m_declAttributeIsId;
+@@ -843,7 +985,6 @@
+ #ifdef _WIN32
+
+ typedef BOOLEAN (APIENTRY *RTLGENRANDOM_FUNC)(PVOID, ULONG);
+-HMODULE _Expat_LoadLibrary(LPCTSTR filename); /* see loadlibrary.c */
+
+ /* Obtain entropy on Windows XP / Windows Server 2003 and later.
+ * Hint on RtlGenRandom and the following article from libsodium.
+@@ -1285,7 +1426,7 @@
+ XML_AttlistDeclHandler oldAttlistDeclHandler;
+ XML_EntityDeclHandler oldEntityDeclHandler;
+ XML_XmlDeclHandler oldXmlDeclHandler;
+- ELEMENT_TYPE * oldDeclElementType;
++ XMLPARSE_ELEMENT_TYPE * oldDeclElementType;
+
+ void *oldUserData;
+ void *oldHandlerArg;
+@@ -3181,7 +3322,7 @@
+ BINDING **bindingsPtr)
+ {
+ DTD * const dtd = _dtd; /* save one level of indirection */
+- ELEMENT_TYPE *elementType;
++ XMLPARSE_ELEMENT_TYPE *elementType;
+ int nDefaultAtts;
+ const XML_Char **appAtts; /* the attribute list for the application */
+ int attIndex = 0;
+@@ -3194,13 +3335,13 @@
+ const XML_Char *localPart;
+
+ /* lookup the element type name */
+- elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str,0);
++ elementType = (XMLPARSE_ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str,0);
+ if (!elementType) {
+ const XML_Char *name = poolCopyString(&dtd->pool, tagNamePtr->str);
+ if (!name)
+ return XML_ERROR_NO_MEMORY;
+- elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name,
+- sizeof(ELEMENT_TYPE));
++ elementType = (XMLPARSE_ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name,
++ sizeof(XMLPARSE_ELEMENT_TYPE));
+ if (!elementType)
+ return XML_ERROR_NO_MEMORY;
+ if (ns && !setElementTypePrefix(parser, elementType))
+@@ -5202,7 +5343,7 @@
+ quant = XML_CQUANT_PLUS;
+ elementContent:
+ if (dtd->in_eldecl) {
+- ELEMENT_TYPE *el;
++ XMLPARSE_ELEMENT_TYPE *el;
+ const XML_Char *name;
+ int nameLen;
+ const char *nxt = (quant == XML_CQUANT_NONE
+@@ -6010,7 +6151,7 @@
+
+
+ static int
+-defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata,
++defineAttribute(XMLPARSE_ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata,
+ XML_Bool isId, const XML_Char *value, XML_Parser parser)
+ {
+ DEFAULT_ATTRIBUTE *att;
+@@ -6054,7 +6195,7 @@
+ }
+
+ static int
+-setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType)
++setElementTypePrefix(XML_Parser parser, XMLPARSE_ELEMENT_TYPE *elementType)
+ {
+ DTD * const dtd = _dtd; /* save one level of indirection */
+ const XML_Char *name;
+@@ -6367,7 +6508,7 @@
+ HASH_TABLE_ITER iter;
+ hashTableIterInit(&iter, &(p->elementTypes));
+ for (;;) {
+- ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter);
++ XMLPARSE_ELEMENT_TYPE *e = (XMLPARSE_ELEMENT_TYPE *)hashTableIterNext(&iter);
+ if (!e)
+ break;
+ if (e->allocDefaultAtts != 0)
+@@ -6409,7 +6550,7 @@
+ HASH_TABLE_ITER iter;
+ hashTableIterInit(&iter, &(p->elementTypes));
+ for (;;) {
+- ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter);
++ XMLPARSE_ELEMENT_TYPE *e = (XMLPARSE_ELEMENT_TYPE *)hashTableIterNext(&iter);
+ if (!e)
+ break;
+ if (e->allocDefaultAtts != 0)
+@@ -6493,16 +6634,16 @@
+
+ for (;;) {
+ int i;
+- ELEMENT_TYPE *newE;
++ XMLPARSE_ELEMENT_TYPE *newE;
+ const XML_Char *name;
+- const ELEMENT_TYPE *oldE = (ELEMENT_TYPE *)hashTableIterNext(&iter);
++ const XMLPARSE_ELEMENT_TYPE *oldE = (XMLPARSE_ELEMENT_TYPE *)hashTableIterNext(&iter);
+ if (!oldE)
+ break;
+ name = poolCopyString(&(newDtd->pool), oldE->name);
+ if (!name)
+ return 0;
+- newE = (ELEMENT_TYPE *)lookup(oldParser, &(newDtd->elementTypes), name,
+- sizeof(ELEMENT_TYPE));
++ newE = (XMLPARSE_ELEMENT_TYPE *)lookup(oldParser, &(newDtd->elementTypes), name,
++ sizeof(XMLPARSE_ELEMENT_TYPE));
+ if (!newE)
+ return 0;
+ if (oldE->nDefaultAtts) {
+@@ -7166,7 +7307,7 @@
+ return ret;
+ }
+
+-static ELEMENT_TYPE *
++static XMLPARSE_ELEMENT_TYPE *
+ getElementType(XML_Parser parser,
+ const ENCODING *enc,
+ const char *ptr,
+@@ -7174,11 +7315,11 @@
+ {
+ DTD * const dtd = _dtd; /* save one level of indirection */
+ const XML_Char *name = poolStoreString(&dtd->pool, enc, ptr, end);
+- ELEMENT_TYPE *ret;
++ XMLPARSE_ELEMENT_TYPE *ret;
+
+ if (!name)
+ return NULL;
+- ret = (ELEMENT_TYPE *) lookup(parser, &dtd->elementTypes, name, sizeof(ELEMENT_TYPE));
++ ret = (XMLPARSE_ELEMENT_TYPE *) lookup(parser, &dtd->elementTypes, name, sizeof(XMLPARSE_ELEMENT_TYPE));
+ if (!ret)
+ return NULL;
+ if (ret->name != name)