Compare commits

..

No commits in common. "master" and "1.2.0" have entirely different histories.

8 changed files with 28 additions and 41 deletions

8
README
View File

@ -1,4 +1,4 @@
libStreamedXML http://www.lwithers.me.uk/projects/libStreamedXML/
libStreamedXML
========================================================================
(c)2006, Laurence Withers, <l@lwithers.me.uk>.
Released under the GNU GPLv2. See file COPYING or
@ -11,8 +11,4 @@ To build: ./make.sh
To install: ./make.sh install
(you might want to set PREFIX, by default it's /usr/local)
Dependencies
------------
libutf8++
http://www.lwithers.me.uk/projects/libutf8++/
@TODO@

View File

@ -64,7 +64,6 @@ OUTPUT_DIRS="obj html"
# none no special processing happens before each file
# C #line directives are inserted before each file
# and VERSION, VERMAJOR etc. are #defined
# Ch Like C, but for header files (no VERSION #defines)
#
make_monolithic() {
if [ $# -ne 2 ]
@ -83,9 +82,6 @@ make_monolithic() {
then
HASHLINE=1
VERDEFINE=1
elif [ "$2" == "Ch" ]
then
HASHLINE=1
elif [ "$2" == "none" ]
then
HASHLINE=0 # dummy command
@ -265,7 +261,7 @@ else
targets="$@"
fi
for func in ${targets}
for func in "${targets}"
do
case ${func} in
clean)

1
scripts/.gitignore vendored
View File

@ -1,6 +1,5 @@
build.c++.app
build.c++.lib
build.c++.qtapp
build.c++.tests
build.c.app
build.c.lib

View File

@ -163,26 +163,26 @@ doBuffer:
break;
case ClassOpenTag:
state = StateOpen;
if(!buffer.empty()) callback->whiteSpace(buffer);
state = StateOpen;
buffer.clear();
break;
case ClassEntity:
if(expandEntities) {
if(!elementDepth) ERROR(L"Entities cannot appear at stream level.");
state = StateEntity;
if(!buffer.empty()) callback->whiteSpace(buffer);
buffer.clear();
parsingAttr = false;
state = StateEntity;
break;
}
// fall through
default:
if(!elementDepth) ERROR(L"Content cannot appear at stream level.");
state = StateData;
if(!buffer.empty()) callback->whiteSpace(buffer);
state = StateData;
buffer = ch;
break;
}
@ -191,16 +191,16 @@ doBuffer:
case StateData:
switch(c) {
case ClassOpenTag:
state = StateOpen;
callback->content(buffer);
buffer.clear();
state = StateOpen;
break;
case ClassEntity:
state = StateEntity;
callback->content(buffer);
buffer.clear();
parsingAttr = false;
state = StateEntity;
break;
default:
@ -225,9 +225,9 @@ doBuffer:
case StateCDATA2:
if(ch == L'>') {
state = StateNone;
callback->cdata(buffer);
buffer.clear();
state = StateNone;
} else if(ch == L']') {
buffer += ch;
} else {
@ -298,9 +298,9 @@ doBuffer:
case StatePI2:
if(ch != L'>') ERROR(L"Invalid target for PI");
else {
state = StateNone;
callback->PI(buffer2, L"");
buffer.clear();
state = StateNone;
}
break;
@ -311,15 +311,12 @@ doBuffer:
case StatePI3:
if(ch == L'>') {
state = StateNone;
callback->PI(buffer2, buffer);
buffer.clear();
} else if(ch == '?') {
buffer += L'?';
state = StateNone;
} else {
buffer += L'?';
buffer += ch;
state = StatePIData;
}
break;
@ -354,15 +351,14 @@ doBuffer:
else {
buffer += L'-';
buffer += ch;
state = StateComment;
}
break;
case StateComment3:
if(ch != L'>') ERROR(L"`--' not valid in comments");
state = StateNone;
callback->comment(buffer);
buffer.clear();
state = StateNone;
break;
case StateElemName:
@ -382,10 +378,10 @@ doBuffer:
switch(ch) {
case L'>':
elemStack.push_back(buffer);
state = StateNone;
buffer.clear();
callback->element(buffer, elemAttrs);
state = StateNone;
++elementDepth;
buffer.clear();
break;
case L'/':
@ -412,9 +408,9 @@ doBuffer:
switch(ch) {
case L'>':
elemStack.push_back(elemName);
state = StateNone;
buffer.clear();
callback->element(elemName, elemAttrs);
buffer.clear();
state = StateNone;
++elementDepth;
break;
@ -474,10 +470,10 @@ doBuffer:
if(ch == L'/') {
state = StateNeedClose;
} else if(ch == L'>') {
state = StateNone;
buffer.clear();
callback->element(elemName, elemAttrs);
elemStack.push_back(elemName);
buffer.clear();
state = StateNone;
++elementDepth;
} else ERROR(L"Invalid character after attribute.");
break;
@ -486,10 +482,10 @@ doBuffer:
case StateNeedClose:
if(ch != L'>') ERROR(L"Stray `/' in open tag.");
state = StateNone;
buffer.clear();
callback->element(elemName, elemAttrs);
callback->closeTag(elemName);
buffer.clear();
state = StateNone;
break;
case StateClose:
@ -513,9 +509,9 @@ doBuffer:
if(ch != L'>') ERROR(L"Invalid character in close tag name.");
if(elemStack.back() != buffer) ERROR(L"Mismatched close tag.");
elemStack.pop_back();
state = StateNone;
buffer.clear();
callback->closeTag(buffer);
buffer.clear();
state = StateNone;
--elementDepth;
}
break;
@ -525,9 +521,9 @@ doBuffer:
if(ch != L'>') ERROR(L"Invalid data in close tag.");
if(elemStack.back() != elemName) ERROR(L"Mismatched close tag.");
elemStack.pop_back();
state = StateNone;
buffer.clear();
callback->closeTag(elemName);
buffer.clear();
state = StateNone;
--elementDepth;
break;

View File

@ -31,7 +31,7 @@ then
echo " Compiling"
SONAME="${libStreamedXML_BASE}.so.${SOMAJOR}.${SOMINOR}"
do_cmd ${CXX} ${CFLAGS} -Iobj -shared -fpic -o "${libStreamedXML}" \
do_cmd ${CXX} ${CFLAGS} -shared -fpic -o "${libStreamedXML}" \
-Wl,-soname,${SONAME} \
${SRC} ${SO_EXTRA} || return 1

View File

@ -9,7 +9,7 @@ MONOLITHIC_TESTS="src/libStreamedXML/build.lib src/libStreamedXML/build.monolith
if [ -z "${libStreamedXML_MONOLITHIC}" ]
then
MONOLITHIC_SOURCE="$(echo src/libStreamedXML/{TopHeader,ForwardDeclare,Exceptions,Callback,Parser,Decoder,BottomHeader}.h)"
make_monolithic ${HDR} Ch || return 1
make_monolithic ${HDR} C || return 1
MONOLITHIC_SOURCE="$(echo src/libStreamedXML/{TopSource,Exceptions,Parser,Decoder}.cpp)"
make_monolithic ${SRC} C || return 1

View File

@ -14,4 +14,4 @@ SOMAJOR=0
SOMINOR=1
# SOMICRO is bumped every time there is a binary-compatible release.
SOMICRO=3
SOMICRO=0

View File

@ -12,7 +12,7 @@
# suffixed with a string.
VERMAJOR=1
VERMINOR=2
VERMICRO=8
VERMICRO=0
VEREXTRA=""
# kate: replace-trailing-space-save true; space-indent true; tab-width 4;