[libxml2] Porting libxml2 on zOS encoding of code
- From: Daniel Veillard <veillard src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libxml2] Porting libxml2 on zOS encoding of code
- Date: Mon, 28 Aug 2017 12:34:16 +0000 (UTC)
commit 454e397eb7dd0fe219fa681eeadfaf2a64a3aeec
Author: Stéphane Michaut <smichaut axway com>
Date: Mon Aug 28 14:30:43 2017 +0200
Porting libxml2 on zOS encoding of code
First set of patches for zOS
- entities.c parser.c tree.c xmlschemas.c xmlschemastypes.c xpath.c xpointer.c:
ask conversion of code to ISO Latin 1 to avoid having the compiler assume
EBCDIC codepoint for characters.
- xmlmodule.c: make sure we have support for modules
- xmlIO.c: zOS path names are special avoid dsome of the expectstions from
Unix/Windows
entities.c | 5 +++++
parser.c | 5 +++++
tree.c | 5 +++++
xmlIO.c | 9 +++++++--
xmlmodule.c | 5 +++++
xmlschemas.c | 6 ++++++
xmlschemastypes.c | 5 +++++
xpath.c | 5 +++++
xpointer.c | 5 +++++
9 files changed, 48 insertions(+), 2 deletions(-)
---
diff --git a/entities.c b/entities.c
index 64808ff..c819337 100644
--- a/entities.c
+++ b/entities.c
@@ -6,6 +6,11 @@
* daniel veillard com
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
diff --git a/parser.c b/parser.c
index 51452a2..9a7135f 100644
--- a/parser.c
+++ b/parser.c
@@ -30,6 +30,11 @@
* daniel veillard com
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
diff --git a/tree.c b/tree.c
index 572185e..cf81cc6 100644
--- a/tree.c
+++ b/tree.c
@@ -10,6 +10,11 @@
*
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
diff --git a/xmlIO.c b/xmlIO.c
index c699d52..6891ff9 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -926,8 +926,11 @@ xmlFileOpen_real (const char *filename) {
#endif
}
+ /* Do not check DDNAME on zOS ! */
+#if !defined(__MVS__)
if (!xmlCheckFilename(path))
return(NULL);
+#endif
#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
fd = xmlWrapOpen(path, 0);
@@ -1004,11 +1007,13 @@ xmlFileOpenW (const char *filename) {
#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
fd = xmlWrapOpen(path, 1);
+#elif(__MVS__)
+ fd = fopen(path, "w");
#else
- fd = fopen(path, "wb");
+ fd = fopen(path, "wb");
#endif /* WIN32 */
- if (fd == NULL) xmlIOErr(0, path);
+ if (fd == NULL) xmlIOErr(0, path);
return((void *) fd);
}
#endif /* LIBXML_OUTPUT_ENABLED */
diff --git a/xmlmodule.c b/xmlmodule.c
index 50ed666..7f70f9c 100644
--- a/xmlmodule.c
+++ b/xmlmodule.c
@@ -8,6 +8,11 @@
* http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html
*/
+/* In order RTLD_GLOBAL and RTLD_NOW to be defined on zOS */
+#if defined(__MVS__)
+#define _UNIX03_SOURCE
+#endif
+
#define IN_LIBXML
#include "libxml.h"
diff --git a/xmlschemas.c b/xmlschemas.c
index 46bddd3..1938d7e 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -44,6 +44,12 @@
* but is done here due to performance. Move it to an other layer
* is schema construction via an API is implemented.
*/
+
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index 5f38599..c9674ba 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -7,6 +7,11 @@
* Daniel Veillard <veillard redhat com>
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
diff --git a/xpath.c b/xpath.c
index 318b5b4..1a0bbc9 100644
--- a/xpath.c
+++ b/xpath.c
@@ -14,6 +14,11 @@
*
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
diff --git a/xpointer.c b/xpointer.c
index 1413868..c8ebff3 100644
--- a/xpointer.c
+++ b/xpointer.c
@@ -14,6 +14,11 @@
* daniel veillard com
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]