You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ja...@apache.org on 2006/10/13 23:32:47 UTC
svn commit: r463844 [3/6] - in /xerces/c/trunk/swig/perl: ./ DOM/ Handler/
Transcoder/ samples/
Modified: xerces/c/trunk/swig/perl/Handler/Makefile.PL
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/Makefile.PL?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/Makefile.PL (original)
+++ xerces/c/trunk/swig/perl/Handler/Makefile.PL Fri Oct 13 14:32:45 2006
@@ -19,7 +19,8 @@
'NAME' => 'Handler',
'INC' => $INCLUDES,
'OBJECT' => '$(O_FILES)',
-# 'CCFLAGS' => $CFLAGS,
+ 'LIBS' => [$LIBS],
+ 'CCFLAGS' => $CFLAGS,
'CC' => $CXX,
'SKIP' => [qw( dynamic test makeaperl xs_o)],
@OPTIMIZE,
Modified: xerces/c/trunk/swig/perl/Handler/PerlCallbackHandler.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/PerlCallbackHandler.cpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/PerlCallbackHandler.cpp (original)
+++ xerces/c/trunk/swig/perl/Handler/PerlCallbackHandler.cpp Fri Oct 13 14:32:45 2006
@@ -17,6 +17,8 @@
#include <stdlib.h>
#include "PerlCallbackHandler.hpp"
+XERCES_CPP_NAMESPACE_USE
+
PerlCallbackHandler::PerlCallbackHandler() {
// fprintf(stderr,"PerlCallback: constructor\n");
UTF8_TRANSCODER = Transcoder::getInstance();
Modified: xerces/c/trunk/swig/perl/Handler/PerlCallbackHandler.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/PerlCallbackHandler.hpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/PerlCallbackHandler.hpp (original)
+++ xerces/c/trunk/swig/perl/Handler/PerlCallbackHandler.hpp Fri Oct 13 14:32:45 2006
@@ -52,13 +52,13 @@
#define PERLCALLBACKHANDLER_ERROR_TYPE 0
#define PERLCALLBACKHANDLER_ENTITY_TYPE 1
#define PERLCALLBACKHANDLER_NODE_TYPE 2
-#define PERLCALLBACKHANDLER_CONTENT_TYPE 3
-#define PERLCALLBACKHANDLER_DOCUMENT_TYPE 4
+#define PERLCALLBACKHANDLER_SAX_TYPE 3
+#define PERLCALLBACKHANDLER_DOMERROR_TYPE 4
#include "xercesc/util/PlatformUtils.hpp"
#include "Transcoder.hpp"
-XERCES_CPP_NAMESPACE_USE
+XERCES_CPP_NAMESPACE_BEGIN
class PerlCallbackHandler {
@@ -80,5 +80,7 @@
SV* set_callback_obj(SV*);
};
+
+XERCES_CPP_NAMESPACE_END
#endif /* __PERLCALLBACKHANDLER */
Modified: xerces/c/trunk/swig/perl/Handler/PerlEntityResolverHandler.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/PerlEntityResolverHandler.cpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/PerlEntityResolverHandler.cpp (original)
+++ xerces/c/trunk/swig/perl/Handler/PerlEntityResolverHandler.cpp Fri Oct 13 14:32:45 2006
@@ -18,6 +18,8 @@
#include "PerlEntityResolverHandler.hpp"
#include "xerces-swig-perl.hpp"
+XERCES_CPP_NAMESPACE_USE
+
PerlEntityResolverHandler::PerlEntityResolverHandler()
{
callbackObj = NULL;
@@ -58,11 +60,11 @@
XPUSHs(callbackObj);
// the next argument is the publicId
- SV *string1 = UTF8_TRANSCODER->XMLString2Perl(publicId);
+ SV *string1 = UTF8_TRANSCODER->XMLString2Local(publicId);
XPUSHs(string1);
// the next argument is the systemId
- SV *string2 = UTF8_TRANSCODER->XMLString2Perl(systemId);
+ SV *string2 = UTF8_TRANSCODER->XMLString2Local(systemId);
XPUSHs(string2);
PUTBACK;
@@ -98,3 +100,65 @@
LEAVE;
return source;
}
+
+InputSource *
+PerlEntityResolverHandler::resolveEntity (XMLResourceIdentifier* id)
+{
+ if (!callbackObj) {
+ croak("\nresolveEntity: no EntityResolver set\n");
+ return NULL;
+ }
+
+ dSP;
+ InputSource *source;
+ char *isName = "XML::Xerces::InputSource";
+ char *resIdName = "XML::Xerces::XMLResourceIdentifier";
+
+ ENTER;
+ SAVETMPS;
+
+ PUSHMARK(SP);
+ // first put the callback object on the stack
+ XPUSHs(callbackObj);
+
+ // the only argument is the ResourceIdentifier
+ // god bless John Lenz's new type system in SWIG 1.3.25!!!
+ swig_type_info *ty = SWIG_TypeQuery(resIdName);
+ SV* resId_sv = sv_newmortal();
+ SWIG_MakePtr(resId_sv, (void *) id, ty,0);
+ XPUSHs(resId_sv);
+
+ PUTBACK;
+
+ int count = perl_call_method("resolve_entity", G_SCALAR);
+
+ SPAGAIN ;
+
+ SV* source_sv;
+ if (count != 1)
+ {
+ warn("EntityResolver did not retury any object\n");
+ source_sv = &PL_sv_undef;
+ }
+ else
+ {
+ source_sv = POPs;
+ }
+
+ if (count == 1
+ && SvOK(source_sv)
+ && !sv_derived_from(source_sv, isName)) {
+ croak("EntityResolver did not return an InputSource\n") ;
+ }
+
+ // god bless John Lenz's new type system in SWIG 1.3.25!!!
+ swig_type_info *isType = SWIG_TypeQuery(isName);
+ if (SWIG_ConvertPtr(source_sv,(void **) &source, isType, 0) < 0) {
+ croak("EntityResolver did not return an InputSource. Expected %s", isName);
+ }
+ PUTBACK ;
+ FREETMPS;
+ LEAVE;
+ return source;
+}
+
Modified: xerces/c/trunk/swig/perl/Handler/PerlEntityResolverHandler.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/PerlEntityResolverHandler.hpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/PerlEntityResolverHandler.hpp (original)
+++ xerces/c/trunk/swig/perl/Handler/PerlEntityResolverHandler.hpp Fri Oct 13 14:32:45 2006
@@ -21,10 +21,14 @@
#include "xercesc/sax/EntityResolver.hpp"
#include "xercesc/sax/InputSource.hpp"
#include "xercesc/util/XMLString.hpp"
+#include "xercesc/util/XMLEntityResolver.hpp"
-XERCES_CPP_NAMESPACE_USE
+class XMLResourceIdentifier;
+
+XERCES_CPP_NAMESPACE_BEGIN
class PerlEntityResolverHandler: public EntityResolver
+ , public XMLEntityResolver
, public PerlCallbackHandler
{
@@ -42,6 +46,11 @@
InputSource* resolveEntity (const XMLCh* const publicId,
const XMLCh* const systemId);
+ // The XMLEntityResolver interface
+ InputSource* resolveEntity(XMLResourceIdentifier*);
+
};
+
+XERCES_CPP_NAMESPACE_END
#endif /* __PERLENTITYRESOLVERHANDLER */
Modified: xerces/c/trunk/swig/perl/Handler/PerlErrorCallbackHandler.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/PerlErrorCallbackHandler.cpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/PerlErrorCallbackHandler.cpp (original)
+++ xerces/c/trunk/swig/perl/Handler/PerlErrorCallbackHandler.cpp Fri Oct 13 14:32:45 2006
@@ -17,6 +17,8 @@
#include <stdlib.h>
#include "PerlErrorCallbackHandler.hpp"
+XERCES_CPP_NAMESPACE_USE
+
PerlErrorCallbackHandler::PerlErrorCallbackHandler()
{
callbackObj = NULL;
Modified: xerces/c/trunk/swig/perl/Handler/PerlErrorCallbackHandler.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/PerlErrorCallbackHandler.hpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/PerlErrorCallbackHandler.hpp (original)
+++ xerces/c/trunk/swig/perl/Handler/PerlErrorCallbackHandler.hpp Fri Oct 13 14:32:45 2006
@@ -20,7 +20,7 @@
#include "PerlCallbackHandler.hpp"
#include "xercesc/sax/ErrorHandler.hpp"
-XERCES_CPP_NAMESPACE_USE
+XERCES_CPP_NAMESPACE_BEGIN
class PerlErrorCallbackHandler : public ErrorHandler
, public PerlCallbackHandler
@@ -41,6 +41,9 @@
void error(const SAXParseException& exception);
void fatalError(const SAXParseException& exception);
void resetErrors();
+
};
+
+XERCES_CPP_NAMESPACE_END
#endif /* __PERLERRORCALLBACKHANDLER */
Modified: xerces/c/trunk/swig/perl/Handler/PerlNodeFilterCallbackHandler.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/PerlNodeFilterCallbackHandler.cpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/PerlNodeFilterCallbackHandler.cpp (original)
+++ xerces/c/trunk/swig/perl/Handler/PerlNodeFilterCallbackHandler.cpp Fri Oct 13 14:32:45 2006
@@ -17,6 +17,8 @@
#include "PerlNodeFilterCallbackHandler.hpp"
#include "xerces-swig-perl.hpp"
+XERCES_CPP_NAMESPACE_USE
+
PerlNodeFilterCallbackHandler::PerlNodeFilterCallbackHandler()
{
callbackObj = NULL;
@@ -31,6 +33,12 @@
}
short
+PerlNodeFilterCallbackHandler::acceptNode (DOMNode* node)
+{
+ return acceptNode((const DOMNode*)node);
+}
+
+short
PerlNodeFilterCallbackHandler::acceptNode (const DOMNode* node) const
{
if (!callbackObj) {
@@ -60,6 +68,86 @@
PUTBACK;
int count = perl_call_method("acceptNode", G_SCALAR);
+
+ SPAGAIN ;
+
+ if (count != 1)
+ croak("NodeFilter did not return an answer\n") ;
+
+ accept = POPi;
+
+ PUTBACK ;
+ FREETMPS;
+ LEAVE;
+
+ return accept;
+}
+
+unsigned long
+PerlNodeFilterCallbackHandler::getWhatToShow() const
+{
+ if (!callbackObj) {
+ croak("\ngetWhatToShow: no NodeFilter set\n");
+ return 0;
+ }
+ unsigned long whatToShow = 0;
+
+ dSP;
+
+ ENTER;
+ SAVETMPS;
+
+ PUSHMARK(SP);
+ // first put the callback object on the stack
+ XPUSHs(callbackObj);
+
+ PUTBACK;
+
+ int count = perl_call_method("whatToShow", G_SCALAR);
+
+ SPAGAIN ;
+
+ if (count != 1)
+ croak("Filter did not return an answer\n") ;
+
+ whatToShow = POPl;
+
+ PUTBACK ;
+ FREETMPS;
+ LEAVE;
+
+ return whatToShow;
+}
+
+short
+PerlNodeFilterCallbackHandler::startElement (DOMElement* node)
+{
+ if (!callbackObj) {
+ croak("\nstartElement: no NodeFilter set\n");
+ return 0;
+ }
+ short accept = 0;
+ char *domElementName = "XML::Xerces::DOMElement";
+
+ dSP;
+
+ ENTER;
+ SAVETMPS;
+
+ PUSHMARK(SP);
+ // first put the callback object on the stack
+ XPUSHs(callbackObj);
+
+ // the only argument is the node
+ // god bless John Lenz's new type system in SWIG 1.3.25!!!
+ swig_type_info *ty = SWIG_TypeQuery(domElementName);
+ SV* node_sv = sv_newmortal();
+ SWIG_MakePtr(node_sv, (void *) node, ty,0);
+ XPUSHs(node_sv);
+
+ PUTBACK;
+
+ int count = perl_call_method("startElement", G_SCALAR);
SPAGAIN ;
Modified: xerces/c/trunk/swig/perl/Handler/PerlNodeFilterCallbackHandler.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Handler/PerlNodeFilterCallbackHandler.hpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Handler/PerlNodeFilterCallbackHandler.hpp (original)
+++ xerces/c/trunk/swig/perl/Handler/PerlNodeFilterCallbackHandler.hpp Fri Oct 13 14:32:45 2006
@@ -18,11 +18,13 @@
#define __PERLNODEFILTERCALLBACKHANDLER
#include "PerlCallbackHandler.hpp"
-#include "xercesc/dom/DOMNodeFilter.hpp"
+#include "xercesc/dom/DOMLSParserFilter.hpp"
+#include "xercesc/dom/DOMLSSerializerFilter.hpp"
-XERCES_CPP_NAMESPACE_USE
+XERCES_CPP_NAMESPACE_BEGIN
-class PerlNodeFilterCallbackHandler : public DOMNodeFilter
+class PerlNodeFilterCallbackHandler : public DOMLSSerializerFilter
+ , public DOMLSParserFilter
, public PerlCallbackHandler
{
@@ -30,14 +32,26 @@
public:
- PerlNodeFilterCallbackHandler();
- PerlNodeFilterCallbackHandler(SV *obj);
- ~PerlNodeFilterCallbackHandler();
+ PerlNodeFilterCallbackHandler();
+ PerlNodeFilterCallbackHandler(SV *obj);
+ ~PerlNodeFilterCallbackHandler();
- int type() {return PERLCALLBACKHANDLER_NODE_TYPE;}
+ int type() {return PERLCALLBACKHANDLER_NODE_TYPE;}
- // The NodeFilter interface
- short acceptNode (const DOMNode* node) const;
+ // The DOMNodeFilter interface - inherited via DOMLSSerializerFilter
+ // short acceptNode (const DOMNode* node) const;
+
+
+ // The DOMLSSerializerFilter interface
+ short acceptNode (const DOMNode* node) const;
+ unsigned long getWhatToShow() const;
+
+ // The DOMLSParserFilter interface
+ // unsigned long getWhatToShow() const;
+ short acceptNode (DOMNode* node);
+ short startElement(DOMElement* node);
};
+
+XERCES_CPP_NAMESPACE_END
#endif /* __PERLNODEFILTERCALLBACKHANDLER */
Modified: xerces/c/trunk/swig/perl/MANIFEST
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/MANIFEST?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/MANIFEST (original)
+++ xerces/c/trunk/swig/perl/MANIFEST Fri Oct 13 14:32:45 2006
@@ -9,16 +9,16 @@
Handler/PerlCallbackHandler.cpp
Handler/PerlCallbackHandler.hpp
Handler/PerlCallbackHandler.cpp
+Handler/PerlContentCallbackHandler.cpp
Handler/PerlContentCallbackHandler.hpp
Handler/PerlDocumentCallbackHandler.cpp
Handler/PerlDocumentCallbackHandler.hpp
Handler/PerlErrorCallbackHandler.cpp
Handler/PerlErrorCallbackHandler.hpp
Handler/PerlEntityResolverHandler.hpp
-Handler/PerlEntityResolverHandler.i
+Handler/PerlEntityResolverHandler.cpp
Handler/PerlNodeFilterCallbackHandler.hpp
-Handler/PerlNodeFilterCallbackHandler.i
-Handler/PerlContentCallbackHandler.cpp
+Handler/PerlNodeFilterCallbackHandler.cpp
hints/darwin.pl
hints/dec_osf.pl
@@ -85,17 +85,18 @@
t/XercesDOMParser.t
t/DOMNamedNodeMap.t
t/DOMNodeList.t
+t/DOMStringList.t
t/DOMEntity.t
t/DOMDocument.t
t/DOMNode.t
t/DOMException.t
-t/DOMBuilder.t
+t/DOMLSParser.t
t/DOMParser.t
t/DOMNodeIterator.t
t/DOMTreeWalker.t
t/DOMAttr.t
t/DOMElement.t
-t/DOMWriter.t
+t/DOMLSSerializer.t
t/DOMImplementation.t
t/AttributeList.t
Modified: xerces/c/trunk/swig/perl/Makefile.PL
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Makefile.PL?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Makefile.PL (original)
+++ xerces/c/trunk/swig/perl/Makefile.PL Fri Oct 13 14:32:45 2006
@@ -23,6 +23,7 @@
$TRANSCODER_LIB $HANDLER_LIB
$XERCESCROOT $SWIG_DIR $PERL_DIR $HANDLER_DIR $SCRIPTS_DIR $INTERFACE_DIR
$SWIG_ARGS
+ @SAX_INTERFACE_FILES @DOM_INTERFACE_FILES @IO_INTERFACE_FILES
);
use File::Basename;
use Cwd qw(abs_path);
@@ -75,7 +76,7 @@
$LIBS .= " -L$XERCES_LIB ";
print STDERR "Using XERCES_INCLUDE = $XERCES_INCLUDE\n";
-$INCLUDES .= " -I$XERCES_INCLUDE -I$XERCESCROOT";
+$INCLUDES .= " -I$XERCES_INCLUDE -I$XERCESCROOT -I$XERCESCROOT/samples/src";
my $config_file = 'config.status';
@@ -210,6 +211,7 @@
$HANDLER_LIB = '$(INST_ARCHLIB)/auto/Handler/Handler$(LIB_EXT)';
$TRANSCODER_LIB = '$(INST_ARCHLIB)/auto/Transcoder/Transcoder$(LIB_EXT)';
+my $PSVIUNI_OBJ = "$XERCESCROOT/samples/src/PSVIWriter/PSVIUni" . '$(OBJ_EXT)';
sub MY_postamble {
qq[
@@ -236,8 +238,8 @@
my @header_files;
my @handler_headers;
my @interface_files;
- my @dom_interface_files;
- my @non_dom_interface_files;
+
+ my @general_interface_files;
chomp(@handler_headers = `$FIND $HANDLER_DIR -name "*.swig.hpp"`);
@OPTIMIZE = (OPTIMIZE => '-g');
@@ -247,10 +249,18 @@
chomp(my @import_files = `$FIND $HANDLER_DIR -name "*.i"`);
push(@header_files,@handler_headers,@import_files);
- chomp(my @interface_files = `$FIND $INTERFACE_DIR -name "*.i"`);
+ chomp(my @tmp_interface_files = `$FIND $INTERFACE_DIR -name "*.i"`);
+ @IO_INTERFACE_FILES = qw("$INTERFACE_DIR/Xerces_IO.i");
+ my @interface_files;
+ foreach my $test_file (@tmp_interface_files) {
+ if (not scalar grep {$_ eq $test_file} @IO_INTERFACE_FILES) {
+ push(@interface_files, $test_file);
+ }
+ }
@interface_files = grep {$_ !~ /shadow/} @interface_files;
- @dom_interface_files = grep {$_ =~ /dom/i} @interface_files;
- @non_dom_interface_files = grep {$_ !~ /dom/i} @interface_files;
+ @DOM_INTERFACE_FILES = grep {$_ =~ /dom/i} @interface_files;
+ @SAX_INTERFACE_FILES = grep {$_ =~ /sax/i} @interface_files;
+ @general_interface_files = grep {$_ !~ /dom/i && $_ !~ /sax/i} @interface_files;
local $" = ' ';
my $MAKE_HANDLER = ' \$(MAKE) -C Handler static';
@@ -264,16 +274,17 @@
### We no longer need to munge the C++ code thanks to SWIG improvements
# perl postSource.pl Xerces.cpp
my $retval = <<TERMINUS;
-Xerces-tmp.pm: $SCRIPTS_DIR/postModule.pl $INTERFACE_DIR/Perl/shadow.i
- \$(SWIG) $SWIG_ARGS -o Xerces-tmp.cpp -pm Xerces-tmp.pm $INTERFACE_DIR/Xerces.i
+Xerces-tmp.pm: $SCRIPTS_DIR/postModule.pl $INTERFACE_DIR/Perl/shadow.i $INTERFACE_DIR/Perl/Xerces-extra.pm
+ \$(SWIG) $SWIG_ARGS -o unused.cpp -pm Xerces-tmp.pm $INTERFACE_DIR/Xerces.i
Xerces.pm: $SCRIPTS_DIR/postModule.pl Xerces-tmp.pm
perl -I$SCRIPTS_DIR $SCRIPTS_DIR/postModule.pl --in=Xerces-tmp.pm --out=Xerces.pm
+ rm -f unused.cpp
Xerces.cpp: $SCRIPTS_DIR/postSource.pl Xerces-tmp.cpp
perl -I$SCRIPTS_DIR $SCRIPTS_DIR/postSource.pl --in=Xerces-tmp.cpp --out=Xerces.cpp
-Xerces-tmp.cpp: $INTERFACE_DIR/Xerces.i @non_dom_interface_files @header_files $INTERFACE_DIR/Perl/Xerces-extra.pm
+Xerces-tmp.cpp: $INTERFACE_DIR/Xerces.i @general_interface_files @header_files
\$(SWIG) $SWIG_ARGS -o Xerces-tmp.cpp -pm Xerces-tmp.pm $INTERFACE_DIR/Xerces.i
perl -I$SCRIPTS_DIR $SCRIPTS_DIR/postModule.pl --in=Xerces-tmp.pm --out=Xerces.pm
cp -f Xerces.pm blib/lib/XML/Xerces.pm
@@ -297,6 +308,11 @@
# we want all warnings
$CFLAGS .= ' -Wall';
+
+ # coverage analysis
+ # $CFLAGS .= ' -fprofile-arcs -ftest-coverage';
+ # $LIBS .= ' -lgcov';
+
# print STDERR "Using SWIG version: SWIG_$ {sv_maj}_$ {sv_min}\n";
*MY::postamble = \&Xerces_postamble;
}
@@ -317,7 +333,7 @@
# 'DOM.pm' => '$(INST_LIB)/XML/Xerces/DOM.pm',
},
'INC' => $INCLUDES,
- 'MYEXTLIB' => "$HANDLER_LIB $TRANSCODER_LIB",
+ 'MYEXTLIB' => "$HANDLER_LIB $TRANSCODER_LIB $PSVIUNI_OBJ",
# 'SKIP' => [qw( pm_to_blib )],
'LIBS' => [$LIBS],
'OBJECT' => $OBJS,
Modified: xerces/c/trunk/swig/perl/TODO
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/TODO?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/TODO (original)
+++ xerces/c/trunk/swig/perl/TODO Fri Oct 13 14:32:45 2006
@@ -23,57 +23,78 @@
Internals:
==========
+Sun Oct 8 2006
+* write to c-dev:
+ - DOMLSSerializerFilter??
+ - DOMLSSerializer::setNewLine() not checking
+ - why is DOMLSParserFilter::acceptNode() not const?
+* write swig-dev about %include vs. #include problem
+ - there should at least be a warning
+* check memory leaks
+ - Perl/typemaps-xmlch.i - are the returned vars leaking? do we need
+ sv2mortal()
+* how to include make-xml-exception.i inside other .i files??
+* PSVIWriter.pl
+* why is InputSource dynamic resolver not returning StdInInputSource?
+ DOMLSInput.t
+* why is DOMImplementation.t segfaulting after test 4?
+ createDocumentType(undef) is not throwing exception
+* why is 00basic.t failing?
+ - 4: getErrorHandler() not returning XML::Xerces::ErrorHandler
+static swig_type_info _swigt__p_XERCES_CPP_NAMESPACE__ErrorHandler = {"_p_XERCES_CPP_NAMESPACE__ErrorHandler", "XERCES_CPP_NAMESPACE::ErrorHandler *", 0, 0, (void*)0, 0};
+
+ last argument should not be (void*)0 - it should be
+ (void*)"XML::Xerces::ErrorHandler". ErrorHandler.hpp is being
+ %imported not %included
+ - 19: document is forgotten - another f***ing 'defined' macro replacement
+* move classes to IO:
+ - DOMLSInput/Output
+ - Wrapper4InputSource/DOMLSInput
+
Sat Sep 9 2006
+* unify Handler/ classes into Xerces/XercesSAX/XercesDOM
+* email c-dev: why are the TypeInfo XML files broken?
+* DOMLSInput::setStringData() was broken - the XMLCh* is deleted by
+ SWIG after it is set. Check for other data that Xerces-C doesn't adopt
+* DOMLSParser
+ - test DOMErrorHandler
+ - test EntityHandler
+ - test DOMLSResourceResolver
* move other code out of XML::Xerces into new modules:
- Handler
- - SAX
- - SAX2
-* why are is createXMLReader dispatcher not working - mail swig-dev
-* why are we wrapping DefaultHandler??
+* approximate codebase sizes:
+ 44328 127438 1538438 Xerces.cpp
+ 26517 78805 914588 DOM/Xerces_DOM.cpp
+ 14132 43098 479167 SAX/Xerces_SAX.cpp
+ 6654 21313 236250 IO/Xerces_IO.cpp
+
+ 45550 130667 1576523 Xerces.cpp
+ 29010 85970 989933 DOM/Xerces_DOM.cpp
+ 14010 42589 470235 SAX/Xerces_SAX.cpp
+
+* why is createXMLReader dispatcher not working - mail swig-dev
+* why are classes that implement XMemory ignored unless we %import it?
+* why are all SAXExceptions being ignored by catch()? namespace?
+* moving all %ignore out of ignore.i into class.i files
Tue Aug 22 23:47:05 IST 2006
* need tests for the new DOM additions:
%include "dom/DOMLSException.i"
%include "dom/DOMLSSerializer.i"
%include "dom/DOMLSSerializerFilter.i"
-%include "dom/DOMLSResourceResolver.i"
%include "dom/DOMLocator.i"
%include "dom/DOMErrorHandler.i"
-%include "xercesc/dom/DOMLSOutput.hpp"
-%include "xercesc/dom/DOMTypeInfo.hpp"
-%include "xercesc/dom/DOMPSVITypeInfo.hpp"
-%include "xercesc/dom/DOMXPathEvaluator.hpp"
-%include "xercesc/dom/DOMXPathException.hpp"
-%include "xercesc/dom/DOMXPathExpression.hpp"
-%include "xercesc/dom/DOMXPathNamespace.hpp"
-%include "xercesc/dom/DOMXPathNSResolver.hpp"
-%include "xercesc/dom/DOMXPathResult.hpp"
-%include "xercesc/dom/DOMUserDataHandler.hpp"
-%include "xercesc/dom/DOMStringList.hpp"
-%include "xercesc/dom/DOMImplementationList.hpp"
-%include "xercesc/dom/DOMImplementationSource.hpp"
-%include "xercesc/dom/DOMImplementationRegistry.hpp"
-%include "xercesc/dom/DOMError.hpp"
-
-Fri May 13 18:21:45 IST 2005
-* does Xerces have any methods were a NULL XMLCh* value is needed? -
- if so we have to enable a %typemap to support it
-* Xerces has some methods were a NULL pointer value is needed and some
- methods were it segfaults - we have to enable a %typemap to
- differentiate between them
-* %ignore and %rename behave differently when used with default
- arguments, ensure that the default args are included in the
- directives or it won't get used for all of them.
-
-Fri Oct 11 21:57:23 MDT 2002
-* the %typecheck for XMLCh* is too greedy, it should happen later
- in the typecheck process
+%include "dom/DOMPSVITypeInfo.hpp"
+%include "dom/DOMError.hpp"
+
+* must tested cached grammars
+* support for void* in DOMNode::[gs]etUserData()
+* questionable interfaces
+%include "dom/DOMUserDataHandler.hpp"
-Fri Jun 7 00:37:01 MDT 2002
-* make entity resolver to find all the xml files
Sun Jun 2 11:38:11 MDT 2002
-* use %newobject and %typemape(newfree) for methods like removeNode()
+* use %newobject and %typemap(newfree) for methods like removeNode()
### *** emacs file mode definition ***
### Local Variables:
Modified: xerces/c/trunk/swig/perl/Transcoder/Makefile.PL
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Transcoder/Makefile.PL?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Transcoder/Makefile.PL (original)
+++ xerces/c/trunk/swig/perl/Transcoder/Makefile.PL Fri Oct 13 14:32:45 2006
@@ -19,7 +19,8 @@
'NAME' => 'Transcoder',
'INC' => $INCLUDES,
'OBJECT' => '$(O_FILES)',
-# 'CCFLAGS' => $CFLAGS,
+ 'CCFLAGS' => $CFLAGS,
+ 'LIBS' => [$LIBS],
'CC' => $CXX,
'SKIP' => [qw( dynamic test makeaperl xs_o)],
@OPTIMIZE,
Modified: xerces/c/trunk/swig/perl/Transcoder/Transcoder.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Transcoder/Transcoder.cpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Transcoder/Transcoder.cpp (original)
+++ xerces/c/trunk/swig/perl/Transcoder/Transcoder.cpp Fri Oct 13 14:32:45 2006
@@ -17,6 +17,11 @@
#include <stdlib.h>
#include "Transcoder.hpp"
+XERCES_CPP_NAMESPACE_USE
+
+static bool DEBUG_IN = false;
+static bool DEBUG_OUT = false;
+
Transcoder* Transcoder::_instance = NULL;
Transcoder*
@@ -57,7 +62,11 @@
}
SV*
-Transcoder::XMLString2Perl(const XMLCh* input) {
+Transcoder::XMLString2Local(const XMLCh* input) {
+ if (input == NULL) {
+ return &PL_sv_undef;
+ }
+
SV *output;
unsigned int charsEaten = 0;
int length = XMLString::stringLen(input); // string length
@@ -77,7 +86,7 @@
res[total_chars] = '\0';
#if (0)
- if (DEBUG_UTF8_OUT) {
+ if (DEBUG_OUT) {
printf("Xerces out length = %d: ",total_chars);
for (int i=0;i<length;i++){
printf("<0x%.4X>",res[i]);
@@ -94,14 +103,19 @@
}
XMLCh*
-Transcoder::Perl2XMLString(SV* input){
+Transcoder::Local2XMLString(SV* input){
+
+ if (input == &PL_sv_undef) {
+ return NULL;
+ }
+
XMLCh* output;
STRLEN length;
char *ptr = (char *)SvPVutf8(input,length);
#if (0)
- if (DEBUG_UTF8_IN) {
+ if (DEBUG_IN) {
printf("Perl in length = %d: ",length);
for (unsigned int i=0;i<length;i++){
printf("<0x%.4X>",ptr[i]);
@@ -125,7 +139,7 @@
delete [] sizes;
#if (0)
- if (DEBUG_UTF8_IN) {
+ if (DEBUG_IN) {
printf("Xerces in length = %d: ",chars_stored);
for (unsigned int i=0;i<chars_stored;i++){
printf("<0x%.4X>",output[i]);
@@ -140,7 +154,7 @@
output = XMLString::transcode(ptr);
#if (0)
- if (DEBUG_UTF8_IN) {
+ if (DEBUG_IN) {
printf("Xerces: ");
for (int i=0;output[i];i++){
printf("<0x%.4X>",output[i]);
@@ -152,3 +166,4 @@
}
return(output);
}
+
Modified: xerces/c/trunk/swig/perl/Transcoder/Transcoder.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Transcoder/Transcoder.hpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Transcoder/Transcoder.hpp (original)
+++ xerces/c/trunk/swig/perl/Transcoder/Transcoder.hpp Fri Oct 13 14:32:45 2006
@@ -35,7 +35,7 @@
#include "xercesc/util/TransService.hpp"
#include "xercesc/util/PlatformUtils.hpp"
-XERCES_CPP_NAMESPACE_USE
+XERCES_CPP_NAMESPACE_BEGIN
class Transcoder {
@@ -53,8 +53,10 @@
~Transcoder();
- SV* XMLString2Perl(const XMLCh*);
- XMLCh* Perl2XMLString(SV*);
+ SV* XMLString2Local(const XMLCh*);
+ XMLCh* Local2XMLString(SV*);
};
+
+XERCES_CPP_NAMESPACE_END
#endif /* __TRANSCODER */
Modified: xerces/c/trunk/swig/perl/Transcoder/XMLExceptionHandler.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Transcoder/XMLExceptionHandler.cpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Transcoder/XMLExceptionHandler.cpp (original)
+++ xerces/c/trunk/swig/perl/Transcoder/XMLExceptionHandler.cpp Fri Oct 13 14:32:45 2006
@@ -17,6 +17,8 @@
#include <stdlib.h>
#include "XMLExceptionHandler.hpp"
+XERCES_CPP_NAMESPACE_USE
+
XMLExceptionHandler* XMLExceptionHandler::_instance = NULL;
XMLExceptionHandler*
Modified: xerces/c/trunk/swig/perl/Transcoder/XMLExceptionHandler.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/Transcoder/XMLExceptionHandler.hpp?view=diff&rev=463844&r1=463843&r2=463844
==============================================================================
--- xerces/c/trunk/swig/perl/Transcoder/XMLExceptionHandler.hpp (original)
+++ xerces/c/trunk/swig/perl/Transcoder/XMLExceptionHandler.hpp Fri Oct 13 14:32:45 2006
@@ -52,7 +52,7 @@
#include "xercesc/validators/datatype/InvalidDatatypeValueException.hpp"
#include "xercesc/validators/schema/identity/XPathException.hpp"
-XERCES_CPP_NAMESPACE_USE
+XERCES_CPP_NAMESPACE_BEGIN
class XMLExceptionHandler {
@@ -68,5 +68,7 @@
~XMLExceptionHandler();
XMLException* copyXMLException(const XMLException& e);
};
+
+XERCES_CPP_NAMESPACE_END
#endif /* __XMLEXCEPTIONHANDLER */
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org