cargilld    2004/11/24 13:04:16

  Modified:    c/src/xercesc/internal DGXMLScanner.cpp IGXMLScanner.cpp
  Log:
  Fix from Dave Bertoni to correctly report the boundaries of an external 
subset.
  
  Revision  Changes    Path
  1.55      +10 -1     xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp
  
  Index: DGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- DGXMLScanner.cpp  28 Sep 2004 21:27:38 -0000      1.54
  +++ DGXMLScanner.cpp  24 Nov 2004 21:04:16 -0000      1.55
  @@ -981,6 +981,15 @@
                   fDTDGrammar = (DTDGrammar*) grammar;
                   fGrammar = fDTDGrammar;
                   fValidator->setGrammar(fGrammar);
  +                // If we don't report at least the external subset 
boundaries,
  +                // an advanced document handler cannot know when the DTD end,
  +                // since we've already sent a doctype decl that indicates 
there's
  +                // there's an external subset.
  +                if (fDocTypeHandler)
  +                {
  +                    fDocTypeHandler->startExtSubset();
  +                    fDocTypeHandler->endExtSubset();
  +                }
                   // we *cannot* identify the root element on 
                   // cached grammars; else we risk breaking multithreaded
                   // applications.  - NG
  
  
  
  1.78      +10 -1     xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
  
  Index: IGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
  retrieving revision 1.77
  retrieving revision 1.78
  diff -u -r1.77 -r1.78
  --- IGXMLScanner.cpp  19 Oct 2004 15:08:53 -0000      1.77
  +++ IGXMLScanner.cpp  24 Nov 2004 21:04:16 -0000      1.78
  @@ -1432,6 +1432,15 @@
                   fDTDGrammar = (DTDGrammar*) grammar;
                   fGrammar = fDTDGrammar;
                   fValidator->setGrammar(fGrammar);
  +                // If we don't report at least the external subset 
boundaries,
  +                // an advanced document handler cannot know when the DTD end,
  +                // since we've already sent a doctype decl that indicates 
there's
  +                // there's an external subset.
  +                if (fDocTypeHandler)
  +                {
  +                    fDocTypeHandler->startExtSubset();
  +                    fDocTypeHandler->endExtSubset();
  +                }
                   // should not be modifying cached grammars!
                   /********
                   rootDecl = (DTDElementDecl*) 
fGrammar->getElemDecl(fEmptyNamespaceId, 0, bbRootName.getRawBuffer(), 
Grammar::TOP_LEVEL_SCOPE);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to