textproc/rxp: update to 1.5.2 and unbreak

PR:		282865
This commit is contained in:
Mikhail Teterin 2024-11-26 13:34:32 +01:00 committed by Robert Clausecker
parent 118cf20d6e
commit 46ee3a64e2
7 changed files with 177 additions and 231 deletions

View file

@ -1,8 +1,7 @@
PORTNAME= rxp
PORTVERSION= 1.4.4
PORTREVISION= 4
DISTVERSION= 1.5.2
CATEGORIES= textproc
MASTER_SITES= ftp://ftp.cogsci.ed.ac.uk/pub/richard/
MASTER_SITES= https://www.inf.ed.ac.uk/research/isddarch/admin/
MAINTAINER= ports@virtual-estates.net
COMMENT= Validating XML parser written in C
@ -10,34 +9,24 @@ WWW= https://www.cogsci.ed.ac.uk/~richard/rxp.html
LICENSE= GPLv2
BROKEN= Unfetchable
DEPRECATED= Unfetchable and outdated
EXPIRATION_DATE=2024-12-31
USES= uidfix
USES= libtool
USE_LDCONFIG= yes
PATCH_WRKSRC= ${WRKSRC}/${PORTNAME}-${PORTVERSION}
WRKSRC= ${WRKDIR}
MAKE_ARGS+= VPATH=${PATCH_WRKSRC}
OPTIONS_SINGLE= CHAR_SIZE
OPTIONS_SINGLE_CHAR_SIZE=8 16
OPTIONS_DEFAULT=8
8_DESC= 8-bit characters (required by speech_tools, festival)
16_DESC= 16-bit characters
8_DESC= 8-bit characters (required by speech_tools, festival)
16_DESC= 16-bit characters (upstream's default)
MAKE_ARGS+= CHAR_SIZE=${PORT_OPTIONS:C/[^0-9]//g}
CFLAGS+= -Wno-empty-body
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
EXTRACT_AFTER_ARGS= --exclude win32.h
MAKE_ENV+= AM_LDFLAGS="-version-info 2:0:0"
do-configure:
.for s in lib rxp
${MKDIR} ${WRKDIR}/$s
${LN} -s ${FILESDIR}/BSDmakefile.$s ${WRKDIR}/$s/Makefile
${PRINTF} "SUBDIR+=\t%s\n" $s >> ${WRKDIR}/Makefile
.endfor
${PRINTF} "\n.include <bsd.subdir.mk>\n" >> ${WRKDIR}/Makefile
post-build:
${MKDIR} ${STAGEDIR}${PREFIX}/include/rxp
post-patch:
@${REINPLACE_CMD} -E -e 's|include/win32.h *||' \
-e 's,CHAR_SIZE=[0-9]+,CHAR_SIZE=${PORT_OPTIONS:C/[^0-9]//g},g' \
${WRKSRC}/Makefile*
.include <bsd.port.mk>

View file

@ -1,2 +1,3 @@
SHA256 (rxp-1.4.4.tar.gz) = 96564e1ae1dd971415409585b697d62caac80fafaba00af8b8965128b4814208
SIZE (rxp-1.4.4.tar.gz) = 153946
TIMESTAMP = 1705901987
SHA256 (rxp-1.5.2.tar.gz) = fa641b4a5185d0a1d9610c8245b9d5aff5972c1a28a0da94f3e38d69f6c14513
SIZE (rxp-1.5.2.tar.gz) = 476952

View file

@ -1,26 +0,0 @@
LIB= rxp
SHLIB_MAJOR= 1
SHLIB_MINOR= 4
MK_PROFILE= no
CFLAGS+= -DCHAR_SIZE=${CHAR_SIZE} -DHAVE_LIBZ
CFLAGS+= -Werror
WARNS= 6
LDADD= -lz
SRCS= catalog.c catutil.c resolve.c entityopener.c xmlparser.c \
url.c charset.c ctype16.c dtd.c input.c stdio16.c string16.c \
system.c hash.c version.c namespaces.c http.c \
nf16check.c nf16data.c
INCS= charset.h ctype16.h dtd.h hash.h input.h namespaces.h \
rxputil.h stdio16.h string16.h system.h url.h version.h \
xmlparser.h
LIBDIR= ${PREFIX}/lib
INCSDIR=${PREFIX}/include/rxp
.include <bsd.lib.mk>
.if ${CHAR_SIZE} == 8
CFLAGS+= -Wno-unused-label
.endif

View file

@ -1,12 +0,0 @@
PROG= rxp
SRCS= rxp.c infoset-print.c
CFLAGS+= -DCHAR_SIZE=${CHAR_SIZE} -DHAVE_LIBZ
CFLAGS+= -Werror
WARNS= 6
BINDIR= ${PREFIX}/bin
MANDIR= ${PREFIX}/share/man/man
LDADD= -L${.CURDIR:H}/lib -lrxp
.include <bsd.prog.mk>

View file

@ -0,0 +1,21 @@
Restore the option to build with CHAR_SIZE being 8, which upstream
seems to have abandoned. We want it to be used with Festival, among
other things.
-mi (November 2024)
--- include/ctype16.h 2021-06-14 13:27:08.000000000 -0400
+++ include/ctype16.h 2024-11-19 13:24:35.494673000 -0500
@@ -28,7 +28,10 @@
#define is_xml_namechar(c,map) (map[(int)(c) & 0xff] & xml_namechar)
#define is_xml_whitespace(c) (xml_char_map[(int)(c) & 0xff] & xml_whitespace)
+#define is_xml_whitespace_16 is_xml_whitespace
+#define is_xml_namestart_16 is_xml_namestart
+#define is_xml_namechar_16 is_xml_namechar
-#define xml_char_map_11 0
-#define xml_char_map_105 0
+#define xml_char_map_11 xml_char_map
+#define xml_char_map_105 xml_char_map
#else

View file

@ -1,5 +1,5 @@
--- catalog_dtd.c 2003-06-24 09:15:55.000000000 -0400
+++ catalog_dtd.c 2021-02-25 15:07:41.462399000 -0500
--- catalog/catalog_dtd.c 2003-06-24 09:15:55.000000000 -0400
+++ catalog/catalog_dtd.c 2021-02-25 15:07:41.462399000 -0500
@@ -23,9 +23,9 @@
*/
@ -13,8 +13,8 @@
+static const char xml_catalog_dtd[] =
"<!ENTITY % pubIdChars \"CDATA\">\n"
"<!ENTITY % publicIdentifier \"%pubIdChars;\">\n"
--- catalog.c 2004-10-11 08:28:31.000000000 -0400
+++ catalog.c 2021-02-25 15:07:41.463274000 -0500
--- catalog/catalog.c 2004-10-11 08:28:31.000000000 -0400
+++ catalog/catalog.c 2021-02-25 15:07:41.463274000 -0500
@@ -20,5 +20,5 @@ static Parser OpenXMLDocument(char *uri)
static void CloseXMLDocument(Parser p);
static int SkipElement(XBit bit, Parser p);
@ -105,8 +105,8 @@
+CatalogEntryFile GetCatalogEntryFile(Catalog catalog, const char *catalog_uri)
{
int i;
--- catalog.h 2003-08-28 12:13:19.000000000 -0400
+++ catalog.h 2021-02-25 15:07:41.463639000 -0500
--- catalog/catalog.h 2003-08-28 12:13:19.000000000 -0400
+++ catalog/catalog.h 2021-02-25 15:07:41.463639000 -0500
@@ -48,13 +48,13 @@ extern void FreeCatalogEntry(CatalogEntr
extern CatalogEntryFile catalog_resource_error;
@ -124,8 +124,8 @@
+extern const char *ResolveURI(Catalog catalog, const char *uri);
extern void CatalogEnable(Parser p);
--- catutil.c 2003-06-24 11:55:27.000000000 -0400
+++ catutil.c 2021-02-25 15:07:41.464062000 -0500
--- catalog/catutil.c 2003-06-24 11:55:27.000000000 -0400
+++ catalog/catutil.c 2021-02-25 15:07:41.464062000 -0500
@@ -35,5 +35,5 @@ char *norm_pub(const char8 *public8, con
{
int len = public8 ? strlen(public8) : strlen16(public16);
@ -152,27 +152,8 @@
+ static const char *p = "urn:publicid:";
int i;
--- ctype16.h 2004-03-17 10:53:21.000000000 -0500
+++ ctype16.h 2021-02-25 15:07:41.464419000 -0500
@@ -49,13 +49,13 @@ extern STD_API unsigned char xml_char_ma
#define is_xml_namestart(c,map) \
- (c < 0x10000 ? (map[c] & xml_namestart) : (map[c >> 16] & xml_nameblock))
+ ((sizeof(c) <= 2 || c < 0x10000) ? (map[c] & xml_namestart) : (map[c >> 16] & xml_nameblock))
#define is_xml_namechar(c,map) \
- (c < 0x10000 ? (map[c] & xml_namechar) : (map[c >> 16] & xml_nameblock))
+ ((sizeof(c) <= 2 || c < 0x10000) ? (map[c] & xml_namechar) : (map[c >> 16] & xml_nameblock))
/* NB whitespace map is the same for 1.0 and 1.1 */
#define is_xml_whitespace(c) \
- (c < 0x10000 && (xml_char_map[c] & xml_whitespace))
+ ((sizeof(c) <= 2 || c < 0x10000) && (xml_char_map[c] & xml_whitespace))
#endif
--- dtd.c 2004-11-02 13:20:20.000000000 -0500
+++ dtd.c 2021-02-25 15:07:41.475773000 -0500
--- src/dtd.c 2004-11-02 13:20:20.000000000 -0500
+++ src/dtd.c 2021-02-25 15:07:41.475773000 -0500
@@ -173,12 +173,11 @@ void FreeDtd(Dtd dtd)
*/
@ -328,8 +309,8 @@
+ char8 *publicid, char8 *systemid,
Entity parent)
{
--- dtd.h 2004-11-02 12:46:07.000000000 -0500
+++ dtd.h 2021-02-25 15:07:41.465041000 -0500
--- include/dtd.h 2004-11-02 12:46:07.000000000 -0500
+++ include/dtd.h 2021-02-25 15:07:41.465041000 -0500
@@ -48,11 +48,11 @@ struct entity {
/* All entities */
@ -459,8 +440,8 @@
+ char8 *publicid, char8 *systemid,
Entity parent);
XML_API NotationDefinition FindNotationN(Dtd dtd, const Char *name, int namelen);
--- entityopener.c 2003-11-27 09:06:38.000000000 -0500
+++ entityopener.c 2021-02-25 15:07:41.465352000 -0500
--- catalog/entityopener.c 2003-11-27 09:06:38.000000000 -0500
+++ catalog/entityopener.c 2021-02-25 15:07:41.465352000 -0500
@@ -9,5 +9,5 @@
#include "dtd.h"
@ -468,8 +449,8 @@
+static InputSource catalog_entity_open(Entity ent, void *arg)
{
Catalog catalog = arg;
--- http.c 2001-05-01 10:29:34.000000000 -0400
+++ http.c 2021-02-25 15:33:16.444375000 -0500
--- src/http.c 2001-05-01 10:29:34.000000000 -0400
+++ src/http.c 2021-02-25 15:33:16.444375000 -0500
@@ -139,5 +139,5 @@ FILE16 *http_open(const char *url,
int server_port;
char buf[100];
@ -521,16 +502,16 @@
+ /* fall through */
default:
if(!VectorPush(text, c))
--- infoset-print.c 2004-11-03 12:17:06.000000000 -0500
+++ infoset-print.c 2021-02-25 15:33:58.693693000 -0500
@@ -23,5 +23,5 @@ static void children(FILE16 *f, int leve
--- src/infoset-print.c 2021-06-14 13:42:14.000000000 -0400
+++ src/infoset-print.c 2024-01-22 00:58:08.195742000 -0500
@@ -23,5 +23,5 @@
HashTable id_table);
static void notations(FILE16 *f, int level, Dtd dtd);
-static void unparsed_entities(FILE16 *f, int level, Dtd dtd, Entity docent);
+static void unparsed_entities(FILE16 *f, int level, Dtd dtd);
static void baseURI(FILE16 *f, int level, const char8 *uri);
static void standalone(FILE16 *f, int level, StandaloneDeclaration sd);
@@ -33,11 +33,11 @@ static void element(FILE16 *f, int level
@@ -33,11 +33,11 @@
HashTable id_table);
static void pi(FILE16 *f, int level, Dtd dtd, XBit bit);
-static void cdsect(FILE16 *f, int level, Dtd dtd, XBit bit);
@ -546,14 +527,14 @@
+static void character(FILE16 *f, int level, const char *ecw, int c);
static void attributes(FILE16 *f, int level, Dtd dtd, XBit bit,
HashTable id_table);
@@ -46,5 +46,5 @@ static void attribute(FILE16 *f, int lev
@@ -46,5 +46,5 @@
static void namespace_attributes(FILE16 *f, int level, Dtd dtd, XBit bit,
HashTable id_table);
-static void inscope_namespaces(FILE16 *f, int level, Dtd dtd, XBit bit);
+static void inscope_namespaces(FILE16 *f, int level, XBit bit);
#if 0
static void internal_entity(FILE16 *f, int level, Entity entity);
@@ -53,7 +53,7 @@ static void external_entity(FILE16 *f, i
@@ -53,7 +53,7 @@
static void unparsed_entity(FILE16 *f, int level, Entity entity);
-static void simple(FILE16 *f, int level, char *name, const char *value);
@ -564,49 +545,49 @@
+static void pointer(FILE16 *f, int level, const char *name, Char *id);
static Char *make_id(const char *type, const Char *name, int count);
static void indent(FILE16 *f, int level);
@@ -67,5 +67,5 @@ static void find_ids(Dtd dtd, XBit *bits
@@ -67,5 +67,5 @@
int *counter);
-struct xbit bogus_bit;
+static struct xbit bogus_bit;
static Char xmlns_ns[] = {'h','t','t','p',':','/','/','w','w','w','.','w', '3',
@@ -93,5 +93,5 @@ void infoset_print(FILE16 *f, Parser p,
@@ -93,5 +93,5 @@
notations(f, 1, dtd);
- unparsed_entities(f, 1, dtd, p->document_entity);
+ unparsed_entities(f, 1, dtd);
baseURI(f, 1, EntityBaseURL(p->document_entity));
@@ -172,5 +172,5 @@ static void notations(FILE16 *f, int lev
@@ -172,5 +172,5 @@
}
-static void unparsed_entities(FILE16 *f, int level, Dtd dtd, Entity docent)
+static void unparsed_entities(FILE16 *f, int level, Dtd dtd)
{
Entity e;
@@ -280,5 +280,5 @@ static void version(FILE16 *f, int level
@@ -280,5 +280,5 @@
}
-static void simple(FILE16 *f, int level, char *name, const char *value)
+static void simple(FILE16 *f, int level, const char *name, const char *value)
{
indent(f, level);
@@ -294,5 +294,5 @@ static void simple(FILE16 *f, int level,
@@ -294,5 +294,5 @@
}
-static void Simple(FILE16 *f, int level, char *name, const Char *value)
+static void Simple(FILE16 *f, int level, const char *name, const Char *value)
{
indent(f, level);
@@ -308,5 +308,5 @@ static void Simple(FILE16 *f, int level,
@@ -308,5 +308,5 @@
}
-static void pointer(FILE16 *f, int level, char *name, Char *id)
+static void pointer(FILE16 *f, int level, const char *name, Char *id)
{
indent(f, level);
@@ -342,11 +342,11 @@ static void item(FILE16 *f, int level, D
@@ -342,11 +342,11 @@
break;
case XBIT_cdsect:
- cdsect(f, level, dtd, bit);
@ -621,28 +602,28 @@
+ comment(f, level, bit);
break;
default:
@@ -396,5 +396,5 @@ static void element(FILE16 *f, int level
@@ -396,5 +396,5 @@
namespace_attributes(f, level+1, dtd, bit, id_table);
- inscope_namespaces(f, level+1, dtd, bit);
+ inscope_namespaces(f, level + 1, bit);
baseURI(f, 1, EntityBaseURL(bit->entity)); /* XXX xml:base */
@@ -433,5 +433,5 @@ static void pi(FILE16 *f, int level, Dtd
@@ -433,5 +433,5 @@
}
-static void cdsect(FILE16 *f, int level, Dtd dtd, XBit bit)
+static void cdsect(FILE16 *f, int level, XBit bit)
{
Char *p;
@@ -443,5 +443,5 @@ static void cdsect(FILE16 *f, int level,
@@ -443,5 +443,5 @@
for(p=bit->pcdata_chars; *p; p++)
- character(f, level, dtd, "false", *p);
+ character(f, level, "false", *p);
#if 0
@@ -451,8 +451,8 @@ static void cdsect(FILE16 *f, int level,
@@ -451,8 +451,8 @@
}
-static void pcdata(FILE16 *f, int level, Dtd dtd, XBit bit)
@ -653,39 +634,39 @@
+ const char *ecw;
ecw = !bit->parent->element_definition->declared ? 0 :
@@ -461,8 +461,8 @@ static void pcdata(FILE16 *f, int level,
@@ -461,8 +461,8 @@
for(p=bit->pcdata_chars; *p; p++)
- character(f, level, dtd, is_xml_whitespace(*p) ? ecw : "false", *p);
+ character(f, level, is_xml_whitespace(*p) ? ecw : "false", *p);
- character(f, level, dtd, is_xml_whitespace_16(*p) ? ecw : "false", *p);
+ character(f, level, is_xml_whitespace_16(*p) ? ecw : "false", *p);
}
-static void character(FILE16 *f, int level, Dtd dtd, char *ecw, int c)
+static void character(FILE16 *f, int level, const char *ecw, int c)
{
indent(f, level);
@@ -478,5 +478,5 @@ static void character(FILE16 *f, int lev
@@ -478,5 +478,5 @@
}
-static void comment(FILE16 *f, int level, Dtd dtd, XBit bit)
+static void comment(FILE16 *f, int level, XBit bit)
{
indent(f, level);
@@ -615,4 +615,5 @@ static void attribute(FILE16 *f, int lev
@@ -615,4 +615,5 @@
free(token);
free(id);
+ /* FALLTHROUGH */
default:
simple(f, level+1, "references", 0);
@@ -640,5 +641,5 @@ static void attribute(FILE16 *f, int lev
@@ -640,5 +641,5 @@
}
-static void inscope_namespaces(FILE16 *f, int level, Dtd dtd, XBit bit)
+static void inscope_namespaces(FILE16 *f, int level, XBit bit)
{
NamespaceBinding nsb, nsb2;
--- input.c 2005-01-14 11:10:00.000000000 -0500
+++ input.c 2021-02-25 15:07:41.467694000 -0500
--- src/input.c 2005-01-14 11:10:00.000000000 -0500
+++ src/input.c 2021-02-25 15:07:41.467694000 -0500
@@ -79,5 +79,5 @@ InputSource EntityOpen(Entity e)
else
{
@ -720,8 +701,8 @@
-
END_OF_LINE;
}
--- namespaces.c 2003-06-02 12:56:35.000000000 -0400
+++ namespaces.c 2021-02-25 15:07:41.468014000 -0500
--- src/namespaces.c 2003-06-02 12:56:35.000000000 -0400
+++ src/namespaces.c 2021-02-25 15:07:41.468014000 -0500
@@ -25,5 +25,5 @@ static void FreeNSElementDefinition(NSEl
static void FreeNSAttributeDefinition(NSAttributeDefinition attribute);
@ -743,8 +724,8 @@
+ Free(attribute->name);
Free(attribute);
}
--- namespaces.h 2003-06-02 12:56:35.000000000 -0400
+++ namespaces.h 2021-02-25 15:07:41.468292000 -0500
--- include/namespaces.h 2003-06-02 12:56:35.000000000 -0400
+++ include/namespaces.h 2021-02-25 15:07:41.468292000 -0500
@@ -30,5 +30,5 @@ struct RXP_NAMESPACE {
struct ns_element_definition {
@ -759,8 +740,8 @@
+ Char *name;
int attrnum;
};
--- nf16check.c 2003-09-02 10:02:45.000000000 -0400
+++ nf16check.c 2021-02-25 15:07:41.468701000 -0500
--- src/nf16check.c 2003-09-02 10:02:45.000000000 -0400
+++ src/nf16check.c 2021-02-25 15:07:41.468701000 -0500
@@ -7,4 +7,6 @@
#include <stdlib.h>
@ -801,7 +782,7 @@
/* variant of nf16check, s_length gives length of s */
@@ -226,4 +228,5 @@ nf16res nf16checkL (NF16Checker checker,
int lastclass = checker->lastclass;
char16 c;
unsigned int c; /* changed from char16 (RMT) */
+ uint32_t C;
flag f;
int class;
@ -838,8 +819,8 @@
+ else if (C < 0xE01F0) f = simp;
else f = NoNo;
goto NEWFLAG; /* start again with switch */
--- resolve.c 2003-08-28 12:13:12.000000000 -0400
+++ resolve.c 2021-02-25 15:07:41.469245000 -0500
--- catalog/resolve.c 2003-08-28 12:13:12.000000000 -0400
+++ catalog/resolve.c 2021-02-25 15:07:41.469245000 -0500
@@ -8,11 +8,11 @@
#include "string.h"
@ -1010,9 +991,9 @@
+ return strlen((*(const CatalogEntry *)b)->match) -
+ strlen((*(const CatalogEntry *)a)->match);
}
--- rxp.c 2005-01-14 11:57:49.000000000 -0500
+++ rxp.c 2021-02-25 15:07:41.469916000 -0500
@@ -32,40 +32,39 @@
--- src/rxp.c 2019-10-24 14:23:25.000000000 -0400
+++ src/rxp.c 2024-10-20 22:09:28.202835000 -0400
@@ -33,40 +33,39 @@
#include "catalog.h"
-int attr_compare(const void *a, const void *b);
@ -1021,7 +1002,7 @@
-void print_ns_attrs(NamespaceBinding ns, int count);
-void print_namespaces(NamespaceBinding ns);
-void print_attrs(ElementDefinition e, Attribute a);
-void print_text(Char *text);
-void print_text(Char *text, int is_attr);
-int printable(int c);
-void print_special(int c);
-void print_text_bit(Char *text);
@ -1035,7 +1016,7 @@
+static void print_ns_attrs(NamespaceBinding ns, int count);
+static void print_namespaces(NamespaceBinding ns);
+static void print_attrs(Attribute a);
+static void print_text(const Char *text);
+static void print_text(const Char *text, int is_attr);
+static int printable(int c);
+static void print_special(int c);
+static void print_text_bit(Char *text);
@ -1048,14 +1029,14 @@
+static int verbose = 0, expand = 1, nsgml = 0,
attr_defaults = 0, merge = 0, strict_xml = 0, tree = 0, validate = 0,
xml_space = 0, namespaces = 0, simple_error = 0, experiment = 0,
read_dtd = 0, unicode_check = 0, xml_id = 0;
-enum {o_unspec, o_none, o_bits, o_plain, o_can1, o_can2, o_can3, o_infoset, o_diff} output_format = o_unspec;
read_dtd = 0, unicode_check = 0, xml_id = 0, pre_105 = 0;
-enum {o_unspec, o_none, o_bits, o_plain, o_can1, o_can2, o_can3, o_infoset, o_diff, o_diff2} output_format = o_unspec;
-char *enc_name = 0, *base_uri = 0, *my_dtd_name, *my_dtd_sysid = 0;
-CharacterEncoding encoding = CE_unknown;
-InputSource source = 0;
-int need_canonical_dtd = 0;
-int xml_version;
+static enum {o_unspec, o_none, o_bits, o_plain, o_can1, o_can2, o_can3, o_infoset, o_diff} output_format = o_unspec;
+static enum {o_unspec, o_none, o_bits, o_plain, o_can1, o_can2, o_can3, o_infoset, o_diff, o_diff2} output_format = o_unspec;
+static char *enc_name = NULL, *base_uri = NULL, *my_dtd_name, *my_dtd_sysid = NULL;
+static CharacterEncoding encoding = CE_unknown;
+static InputSource source = NULL;
@ -1077,35 +1058,35 @@
+StaticVector(XBit, dtd_bits);
int main(int argc, char **argv)
@@ -565,5 +564,5 @@ void print_bit(Parser p, XBit bit)
@@ -581,5 +580,5 @@
{
const char *sys, *pub;
- char *ws[] = {"u", "d", "p"};
+ const char *ws[] = {"u", "d", "p"};
if(output_format == o_none && bit->type != XBIT_error)
@@ -601,5 +600,5 @@ void print_bit(Parser p, XBit bit)
@@ -617,5 +616,5 @@
if(xml_space)
Printf("(ws=%s) ", ws[bit->wsm]);
- print_attrs(0, bit->attributes);
+ print_attrs(bit->attributes);
print_namespaces(bit->ns_dict);
Printf("\n");
@@ -614,5 +613,5 @@ void print_bit(Parser p, XBit bit)
@@ -630,5 +629,5 @@
if(xml_space)
Printf("(ws=%s) ", ws[bit->wsm]);
- print_attrs(0, bit->attributes);
+ print_attrs(bit->attributes);
print_namespaces(bit->ns_dict);
Printf("\n");
@@ -685,5 +684,5 @@ void print_bit(Parser p, XBit bit)
@@ -701,5 +700,5 @@
print_canonical_dtd(p, bit->element_definition->name);
Printf("<%S", bit->element_definition->name);
- print_attrs(bit->element_definition, bit->attributes);
+ print_attrs(bit->attributes);
print_ns_attrs(bit->ns_dict, bit->nsc);
if(bit->type == XBIT_start)
@@ -732,9 +731,9 @@ void print_bit(Parser p, XBit bit)
@@ -769,9 +768,9 @@
int attr_compare(const void *a, const void *b)
{
- return Strcmp((*(Attribute *)a)->definition->name,
@ -1118,24 +1099,31 @@
+void print_attrs(Attribute a)
{
Attribute b;
@@ -789,5 +788,5 @@ void dtd_cb(XBit bit, void *arg)
@@ -826,5 +825,5 @@
}
-void dtd_cb2(XBit bit, void *arg)
+void dtd_cb2(XBit bit, void *arg __unused)
{
XBit copy;
@@ -802,7 +801,7 @@ void dtd_cb2(XBit bit, void *arg)
@@ -839,7 +838,7 @@
}
-void print_text(Char *text)
+void print_text(const Char *text)
-void print_text(Char *text, int is_attr)
+void print_text(const Char *text, int is_attr)
{
- Char *pc, *last;
+ const Char *pc, *last;
if(output_format == o_bits || !expand)
@@ -901,25 +900,4 @@ void print_special(int c)
@@ -875,5 +874,5 @@
(xml_version > XV_1_0 && type == 3))
{
- Char *end = (c > 0xffff ? pc-1 : pc); /* if it's a surrogate pair, before the first */
+ const Char *end = (c > 0xffff ? pc-1 : pc); /* if it's a surrogate pair, before the first */
if(end > last)
Printf("%.*S", end - last, last);
@@ -949,25 +948,4 @@
}
-InputSource entity_open(Entity ent, void *arg)
@ -1161,7 +1149,7 @@
-
void print_ns_attrs(NamespaceBinding ns, int count)
{
@@ -969,13 +947,13 @@ void print_namespaces(NamespaceBinding n
@@ -1017,13 +995,13 @@
}
-int notation_compare(const void *a, const void *b)
@ -1180,15 +1168,15 @@
+ return Strcmp((*(const Entity *)a)->name, (*(const Entity *)b)->name);
}
@@ -1099,5 +1077,5 @@ static const char8 *minimal_uri(const ch
@@ -1147,5 +1125,5 @@
#ifdef TIME_LIMIT
-void time_exceeded(int sig)
+void time_exceeded(int sig __unused)
{
fprintf(stderr, "CPU time limit (%d seconds) exceeded, sorry\n",
--- rxputil.h 2003-11-27 09:06:57.000000000 -0500
+++ rxputil.h 2021-02-25 15:07:41.470232000 -0500
--- include/rxputil.h 2003-11-27 09:06:57.000000000 -0500
+++ include/rxputil.h 2021-02-25 15:07:41.470232000 -0500
@@ -6,4 +6,8 @@
type *name
@ -1198,8 +1186,8 @@
+
#define VectorInit(v) \
((v##_count) = (v##_alloc) = 0, (v) = 0)
--- stdio16.c 2005-01-14 11:10:54.000000000 -0500
+++ stdio16.c 2021-02-25 15:32:25.156652000 -0500
--- src/stdio16.c 2005-01-14 11:10:54.000000000 -0500
+++ src/stdio16.c 2021-02-25 15:32:25.156652000 -0500
@@ -15,4 +15,5 @@
#include <string.h>
#include <stdarg.h>
@ -1365,8 +1353,8 @@
+static int GzipFlush(FILE16 *file __unused)
{
return 0;
--- stdio16.h 2002-10-03 10:37:44.000000000 -0400
+++ stdio16.h 2021-02-25 15:28:59.692044000 -0500
--- include/stdio16.h 2002-10-03 10:37:44.000000000 -0400
+++ include/stdio16.h 2021-02-25 15:28:59.692044000 -0500
@@ -5,5 +5,5 @@
#include <stdio.h>
#ifdef HAVE_LIBZ
@ -1396,8 +1384,8 @@
+#endif
STD_API int Fprintf(FILE16 *file, const char *format, ...);
--- string16.c 2004-10-11 12:18:29.000000000 -0400
+++ string16.c 2021-02-25 15:07:41.471817000 -0500
--- src/string16.c 2004-10-11 12:18:29.000000000 -0400
+++ src/string16.c 2021-02-25 15:07:41.471817000 -0500
@@ -171,9 +171,9 @@ size_t strlen16(const char16 *s)
}
@ -1435,8 +1423,8 @@
return 0;
}
-
--- string16.h 1999-05-28 08:08:38.000000000 -0400
+++ string16.h 2021-02-25 15:07:41.472166000 -0500
--- include/string16.h 1999-05-28 08:08:38.000000000 -0400
+++ include/string16.h 2021-02-25 15:07:41.472166000 -0500
@@ -23,5 +23,5 @@ STD_API int strncasecmp8(const char8 *,
STD_API char16 *strdup16(const char16 *s);
@ -1451,13 +1439,12 @@
+STD_API const char16 *strstr16(const char16 *, const char16 *);
STD_API void translate_latin1_utf16(const char8 *from, char16 *to);
--- system.h 2003-05-19 20:17:27.000000000 -0400
+++ system.h 2021-02-25 15:10:55.417342000 -0500
@@ -1,3 +1,6 @@
--- include/system.h 2003-05-19 20:17:27.000000000 -0400
+++ include/system.h 2021-02-25 15:10:55.417342000 -0500
@@ -1,3 +1,5 @@
+#ifndef _RXP_SYSTEM_H
+#define _RXP_SYSTEM_H
#define HAVE_LONG_LONG
+#define HAVE_LONG_DOUBLE
#define SOCKETS_IMPLEMENTED
@@ -11,2 +14,4 @@ void *Malloc(int bytes);
@ -1465,8 +1452,8 @@
void Free(void *mem);
+
+#endif
--- url.c 2004-06-11 07:39:17.000000000 -0400
+++ url.c 2021-02-25 15:07:41.472694000 -0500
--- src/url.c 2004-06-11 07:39:17.000000000 -0400
+++ src/url.c 2021-02-25 15:07:41.472694000 -0500
@@ -80,10 +80,10 @@ static int hexval(int hex);
/* Mapping of scheme names to opening functions */
@ -1536,33 +1523,33 @@
+ *r = '/';
}
}
--- version.c 2005-01-14 12:09:25.000000000 -0500
+++ version.c 2021-02-25 15:07:41.472934000 -0500
@@ -1,2 +1,4 @@
-char *rxp_version_string =
--- src/version.c 2008-05-29 06:51:54.000000000 -0400
+++ src/version.c 2024-01-22 01:11:34.603161000 -0500
@@ -1,4 +1,5 @@
#include "config.h"
+#include "version.h"
+
-char *rxp_version_string =
+const char *rxp_version_string =
"RXP 1.4.4 Copyright Richard Tobin, LTG, HCRC, University of Edinburgh";
--- version.h 1999-02-17 09:43:19.000000000 -0500
+++ version.h 2021-02-25 15:07:41.473163000 -0500
"RXP " PACKAGE_VERSION " Copyright Richard Tobin, LTG, HCRC, University of Edinburgh";
--- include/version.h 1999-02-17 09:43:19.000000000 -0500
+++ include/version.h 2021-02-25 15:07:41.473163000 -0500
@@ -1 +1 @@
-extern char *rxp_version_string;
+extern const char *rxp_version_string;
--- xmlparser.c 2004-11-03 08:47:31.000000000 -0500
+++ xmlparser.c 2021-02-25 15:22:16.748707000 -0500
@@ -4,7 +4,7 @@
--- src/xmlparser.c 2021-06-14 14:02:03.000000000 -0400
+++ src/xmlparser.c 2024-01-22 00:53:35.001099000 -0500
@@ -4,7 +4,6 @@
#define DEBUG_FSM 0
-#ifndef lint
-static char vcid[] = "$Id: xmlparser.c,v 1.131 2004/11/03 13:47:31 richard Exp $";
-static char vcid[] = "$Id: xmlparser.c,v 1.137 2021/06/14 18:02:03 richard Exp $";
-#endif /* lint */
+#include <sys/cdefs.h>
+
+__RCSID("$Id: xmlparser.c,v 1.131 2004/11/03 13:47:31 richard Exp $");
+__RCSID("$Id: xmlparser.c,v 1.137 2021/06/14 18:02:03 richard Exp $");
/*
@@ -140,6 +140,6 @@ enum literal_type {
@@ -142,6 +141,6 @@
};
static int parse_string(Parser p, const char8 *where, enum literal_type type, int *normalised);
-static int parse_pi(Parser p, Entity ent);
@ -1571,14 +1558,14 @@
+static int parse_comment(Parser p, int skip);
static int parse_pcdata(Parser p);
static int parse_starttag(Parser p);
@@ -148,5 +148,5 @@ static int process_namespace(Parser p,
@@ -150,5 +149,5 @@
AttributeDefinition d, const Char *value);
static int parse_attribute(Parser p);
-static WhiteSpaceMode process_xml_space(Parser p, const Char *value);
+static WhiteSpaceMode process_xml_space(const Char *value);
static int parse_endtag(Parser p);
static int parse_markup(Parser p);
@@ -157,5 +157,7 @@ static int validate_final(Parser p);
@@ -159,5 +158,7 @@
static HashMapRetType check_id(const HashEntryStruct *id_entry, void *p);
static int validate_attribute(Parser p, AttributeDefinition a, ElementDefinition e, const Char *value);
+#if 0
@ -1586,14 +1573,14 @@
+#endif
static int check_attribute_syntax(Parser p, AttributeDefinition a, ElementDefinition e, const Char *value, const char *message, int real_use);
static int check_attribute_token(Parser p, AttributeDefinition a, ElementDefinition e, const Char *value, int length, const char *message, int real_use);
@@ -165,5 +167,5 @@ static int magically_transform_dtd(Parse
@@ -167,5 +168,5 @@
static struct element_definition pcdata_element;
-const ElementDefinition Epsilon = 0, PCDataElement = &pcdata_element;
+static const ElementDefinition Epsilon = 0, PCDataElement = &pcdata_element;
static FSM NewFSM(void);
@@ -1203,8 +1205,8 @@ static int parse_markup(Parser p)
@@ -1207,8 +1208,8 @@
{
if(ParserGetFlag(p, ReturnComments))
- return parse_comment(p, 0, 0);
@ -1604,21 +1591,21 @@
+ require(parse_comment(p, 1));
/* XXX avoid recursion here */
return parse(p);
@@ -1224,5 +1226,5 @@ static int parse_markup(Parser p)
@@ -1228,5 +1229,5 @@
case '?':
- return parse_pi(p, 0);
+ return parse_pi(p);
case BADCHAR:
@@ -1322,5 +1324,5 @@ static int parse_endtag(Parser p)
@@ -1326,5 +1327,5 @@
static int check_qualname_syntax(Parser p, const Char *name, const char *type)
{
- Char *t;
+ const Char *t;
t = Strchr(name, ':');
@@ -1354,5 +1356,8 @@ static int check_qualname_syntax(Parser
@@ -1358,5 +1359,8 @@
static int parse_starttag(Parser p)
{
- int c, is_top_level = 0;
@ -1628,7 +1615,7 @@
+#endif
ElementDefinition e;
AttributeDefinition d;
@@ -1370,5 +1375,7 @@ static int parse_starttag(Parser p)
@@ -1374,5 +1378,7 @@
require(validate_dtd(p));
}
+#if not_yet
@ -1636,7 +1623,7 @@
+#endif
}
@@ -1541,7 +1548,4 @@ static int parse_starttag(Parser p)
@@ -1545,7 +1551,4 @@
/* check for required attributes */
- AttributeDefinition d;
@ -1644,21 +1631,21 @@
-
for(d=NextAttributeDefinition(e, 0);
d;
@@ -1658,5 +1662,5 @@ static int parse_starttag(Parser p)
@@ -1662,5 +1665,5 @@
if(a->definition == d)
{
- p->xbit.wsm = process_xml_space(p, a->value);
+ p->xbit.wsm = process_xml_space(a->value);
goto done;
}
@@ -1664,5 +1668,5 @@ static int parse_starttag(Parser p)
@@ -1668,5 +1671,5 @@
if(d->default_type == DT_none || d->default_type == DT_fixed)
{
- p->xbit.wsm = process_xml_space(p, d->default_value);
+ p->xbit.wsm = process_xml_space(d->default_value);
goto done;
}
@@ -2086,9 +2090,8 @@ static int parse_attribute(Parser p)
@@ -2090,9 +2093,8 @@
}
-static WhiteSpaceMode process_xml_space(Parser p, const Char *value)
@ -1669,71 +1656,64 @@
- Char buf[9];
const Char *v;
int i;
@@ -2102,7 +2105,5 @@ static WhiteSpaceMode process_xml_space(
if(!v[i] || is_xml_whitespace(v[i]))
@@ -2106,7 +2108,5 @@
if(!v[i] || is_xml_whitespace_16(v[i]))
break;
- buf[i] = v[i];
}
- buf[i] = '\0';
for(; v[i]; i++)
if(!is_xml_whitespace(v[i]))
@@ -2204,5 +2205,5 @@ static int parse_pcdata(Parser p)
if(!is_xml_whitespace_16(v[i]))
@@ -2208,5 +2208,5 @@
{
s->next = next + 3;
- require(parse_comment(p, 1, 0));
+ require(parse_comment(p, 1));
NF16StartCheck(p);
buflen = s->line_length;
@@ -2348,5 +2349,5 @@ static int parse_pcdata(Parser p)
@@ -2352,5 +2352,5 @@
/* Called after reading '<!--'. Won't go over an entity end. */
-static int parse_comment(Parser p, int skip, Entity ent)
+static int parse_comment(Parser p, int skip)
{
InputSource s = p->source;
@@ -2417,5 +2418,5 @@ static int parse_comment(Parser p, int s
@@ -2421,5 +2421,5 @@
}
-static int parse_pi(Parser p, Entity ent)
+static int parse_pi(Parser p)
{
InputSource s = p->source;
@@ -2998,5 +2999,5 @@ static int process_xml_decl(Parser p)
@@ -3002,5 +3002,5 @@
char8 *value;
CharacterEncoding enc = CE_unknown;
- Char c;
+ int c;
/*
@@ -3322,5 +3323,5 @@ static int parse_markupdecl(Parser p)
@@ -3344,5 +3344,5 @@
else if(looking_at(p, "?"))
{
- require(parse_pi(p, cur_ent));
+ require(parse_pi(p));
if(p->dtd_callback)
p->dtd_callback(&p->xbit, p->dtd_callback_arg);
@@ -3333,5 +3334,5 @@ static int parse_markupdecl(Parser p)
@@ -3355,5 +3355,5 @@
if(ParserGetFlag(p, ReturnComments))
{
- require(parse_comment(p, 0, cur_ent));
+ require(parse_comment(p, 0));
if(p->dtd_callback)
p->dtd_callback(&p->xbit, p->dtd_callback_arg);
@@ -3341,5 +3342,5 @@ static int parse_markupdecl(Parser p)
@@ -3363,5 +3363,5 @@
}
else
- return parse_comment(p, 1, cur_ent);
+ return parse_comment(p, 1);
}
else if(p->state == PS_error) /* looking_at may have set it */
@@ -4881,5 +4882,5 @@ static HashMapRetType check_id(const Has
Parser p = (Parser)pp;
- if(!(int)hash_get_value(id_entry))
+ if (hash_get_value(id_entry) != NULL)
validity_error(p,
"The ID %.*S was referred to but never defined",
@@ -5351,17 +5352,19 @@ static int validate_attribute(Parser p,
@@ -5387,17 +5387,19 @@
}
+#if 0
@ -1754,7 +1734,7 @@
-#if 0
const Char *t;
@@ -5404,7 +5407,7 @@ static int validate_xml_lang_attribute(P
@@ -5440,7 +5442,7 @@
/* Not a validity error since erratum 73 */
warn(p, "Dubious xml:lang attribute for element %S", e->name);
-#endif
@ -1763,17 +1743,3 @@
+#endif
/* Check an attribute matches Name[s] or Nmtoken[s].
@@ -5518,5 +5521,5 @@ static int check_attribute_token(Parser
if(!found)
{
- hash_set_value(id_entry, (void *)(a->type == AT_id));
+ hash_set_value(id_entry, (void *)(intptr_t)(a->type == AT_id));
if(ParserGetFlag(p, XMLNamespaces))
for(i=0; i<length; i++)
@@ -5528,5 +5531,5 @@ static int check_attribute_token(Parser
else if(a->type == AT_id)
{
- int idinfo = (int)hash_get_value(id_entry);
+ intptr_t idinfo = (intptr_t)hash_get_value(id_entry);
if(idinfo & 1)
{

View file

@ -1,13 +1,20 @@
bin/rxp
lib/librxp.a
lib/librxp.so
lib/librxp.so.1
lib/librxp.so.2
lib/librxp.so.2.0.0
include/rxp/catalog.h
include/rxp/catutil.h
include/rxp/charset.h
include/rxp/ctype16.h
include/rxp/dtd.h
include/rxp/hash.h
include/rxp/http.h
include/rxp/infoset-print.h
include/rxp/input.h
include/rxp/namespaces.h
include/rxp/nf16check.h
include/rxp/nf16data.h
include/rxp/rxputil.h
include/rxp/stdio16.h
include/rxp/string16.h