auriemma 00/10/11 12:43:09
Modified: c/src/DOMSupport DOMServices.cpp
c/src/PlatformSupport DOMStringHelper.cpp
DOMStringHelper.hpp DoubleSupport.cpp
c/src/XMLSupport FormatterToHTML.cpp FormatterToXML.cpp
c/src/XPath FunctionNormalize.hpp XPathProcessorImpl.cpp
c/src/XSLT ElemNumber.cpp ElemTemplateElement.cpp
ElemTemplateElement.hpp StylesheetHandler.cpp
XSLTEngineImpl.cpp XSLTEngineImpl.hpp
c/src/XercesParserLiaison XercesCDATASectionBridge.cpp
XercesTextBridge.cpp
Log:
Changed implementation of isDigit, isLetterOrDigit, and isWhitespace to use a
charater class table.
Revision Changes Path
1.18 +1 -1 xml-xalan/c/src/DOMSupport/DOMServices.cpp
Index: DOMServices.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/DOMSupport/DOMServices.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- DOMServices.cpp 2000/09/05 19:33:39 1.17
+++ DOMServices.cpp 2000/10/11 19:43:03 1.18
@@ -159,7 +159,7 @@
{
const XalanDOMChar theChar = charAt(theData, i);
- if (!isSpace(theChar))
+ if (!isXMLWhitespace(theChar))
{
break;
}
1.39 +6 -6 xml-xalan/c/src/PlatformSupport/DOMStringHelper.cpp
Index: DOMStringHelper.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/DOMStringHelper.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- DOMStringHelper.cpp 2000/10/03 18:24:45 1.38
+++ DOMStringHelper.cpp 2000/10/11 19:43:03 1.39
@@ -1247,14 +1247,14 @@
int leadingSpace = 0;
for (; leadingSpace < strLen; ++leadingSpace)
- if (!isSpace(charAt(theString, leadingSpace)))
+ if (!isXMLWhitespace(charAt(theString, leadingSpace)))
break;
// index of last non-whitespace character
int trailingSpace = strLen - 1;
for (; trailingSpace>=0; --trailingSpace)
- if (!isSpace(charAt(theString, trailingSpace)))
+ if (!isXMLWhitespace(charAt(theString, trailingSpace)))
break;
return substring(theString, leadingSpace, trailingSpace + 1);
@@ -1516,13 +1516,13 @@
XALAN_PLATFORMSUPPORT_EXPORT_FUNCTION(bool)
-isWhiteSpace(const XalanDOMString& string)
+isWhitespace(const XalanDOMString& string)
{
const unsigned int theLength = length(string);
for(unsigned int s = 0; s < theLength; s++)
{
- if (!isSpace(charAt(string, s)))
+ if (!isXMLWhitespace(charAt(string, s)))
return false;
}
@@ -1532,7 +1532,7 @@
XALAN_PLATFORMSUPPORT_EXPORT_FUNCTION(bool)
-isWhiteSpace(
+isWhitespace(
const XalanDOMChar* ch,
unsigned int start,
unsigned int length)
@@ -1541,7 +1541,7 @@
for(unsigned int s = start; s < end; s++)
{
- if (!isSpace(ch[s]))
+ if (!isXMLWhitespace(ch[s]))
return false;
}
1.31 +11 -13 xml-xalan/c/src/PlatformSupport/DOMStringHelper.hpp
Index: DOMStringHelper.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/DOMStringHelper.hpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- DOMStringHelper.hpp 2000/09/27 16:23:55 1.30
+++ DOMStringHelper.hpp 2000/10/11 19:43:04 1.31
@@ -89,6 +89,7 @@
#include <PlatformSupport/XalanUnicode.hpp>
+#include <PlatformSupport/XalanXMLChar.hpp>
@@ -957,13 +958,9 @@
* @return true if character represents white space
*/
inline bool
-isSpace(XalanDOMChar theChar)
+isXMLWhitespace(XalanDOMChar theChar)
{
- return theChar > XalanUnicode::charSpace ? false :
- (theChar == XalanUnicode::charSpace ||
- theChar == XalanUnicode::charCR ||
- theChar == XalanUnicode::charLF ||
- theChar == XalanUnicode::charHTab) ? true : false;
+ return XalanXMLChar::isWhitespace(theChar) ? true : false;
}
@@ -992,9 +989,9 @@
* @return true if character represents a digit
*/
inline bool
-isDigit(XalanDOMChar theChar)
-{
- return iswdigit(theChar) ? true : false;
+isXMLDigit(XalanDOMChar theChar)
+{
+ return XalanXMLChar::isDigit(theChar) ? true : false;
}
@@ -1006,9 +1003,10 @@
* @return true if character represents a letter or digit
*/
inline bool
-isLetterOrDigit(XalanDOMChar theChar)
+isXMLLetterOrDigit(XalanDOMChar theChar)
{
- return iswalnum(theChar) ? true : false;
+ return XalanXMLChar::isDigit(theChar) ||
+ XalanXMLChar::isLetter(theChar) ? true : false;
}
@@ -2067,7 +2065,7 @@
* @return true if string contains only whitespace
*/
XALAN_PLATFORMSUPPORT_EXPORT_FUNCTION(bool)
-isWhiteSpace(const XalanDOMString& string);
+isWhitespace(const XalanDOMString& string);
@@ -2080,7 +2078,7 @@
* @return true if specified range contains only whitespace
*/
XALAN_PLATFORMSUPPORT_EXPORT_FUNCTION(bool)
-isWhiteSpace(
+isWhitespace(
const XalanDOMChar* ch,
unsigned int start,
unsigned int length);
1.14 +1 -1 xml-xalan/c/src/PlatformSupport/DoubleSupport.cpp
Index: DoubleSupport.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/DoubleSupport.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- DoubleSupport.cpp 2000/09/27 16:23:57 1.13
+++ DoubleSupport.cpp 2000/10/11 19:43:04 1.14
@@ -339,7 +339,7 @@
consumeWhitespace(const XalanDOMChar*& theString)
{
while(*theString != 0 &&
- isSpace(*theString))
+ isXMLWhitespace(*theString))
{
++theString;
}
1.29 +2 -2 xml-xalan/c/src/XMLSupport/FormatterToHTML.cpp
Index: FormatterToHTML.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToHTML.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- FormatterToHTML.cpp 2000/10/06 22:27:57 1.28
+++ FormatterToHTML.cpp 2000/10/11 19:43:04 1.29
@@ -55,7 +55,7 @@
* <http://www.apache.org/>.
*/
/**
- * $Id: FormatterToHTML.cpp,v 1.28 2000/10/06 22:27:57 dbertoni Exp $
+ * $Id: FormatterToHTML.cpp,v 1.29 2000/10/11 19:43:04 auriemma Exp $
*
* $State: Exp $
*
@@ -731,7 +731,7 @@
if (length(data) > 0)
{
- if(isSpace(data[0]) == false)
+ if(isXMLWhitespace(data[0]) == false)
{
accum(XalanUnicode::charSpace);
}
1.33 +1 -1 xml-xalan/c/src/XMLSupport/FormatterToXML.cpp
Index: FormatterToXML.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToXML.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- FormatterToXML.cpp 2000/10/07 15:25:34 1.32
+++ FormatterToXML.cpp 2000/10/11 19:43:04 1.33
@@ -760,7 +760,7 @@
const unsigned int len = length(data);
- if ( len > 0 && !isSpace(data[0]))
+ if ( len > 0 && !isXMLWhitespace(data[0]))
{
accum(XalanUnicode::charSpace);
}
1.8 +3 -3 xml-xalan/c/src/XPath/FunctionNormalize.hpp
Index: FunctionNormalize.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionNormalize.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- FunctionNormalize.hpp 2000/09/27 16:39:34 1.7
+++ FunctionNormalize.hpp 2000/10/11 19:43:05 1.8
@@ -143,12 +143,12 @@
{
const XalanDOMChar theCurrentChar =
charAt(theSourceString, i);
- if (isSpace(theCurrentChar) == true)
+ if (isXMLWhitespace(theCurrentChar) == true)
{
// If the previous character wasn't a space,
and we've
// encountered some non-space characters, then
push the
// space.
- if (isSpace(thePreviousChar) == false &&
theVector.size() > 0)
+ if (isXMLWhitespace(thePreviousChar) == false
&& theVector.size() > 0)
{
theVector.push_back(XalanDOMChar(XalanUnicode::charSpace));
}
@@ -161,7 +161,7 @@
thePreviousChar = theCurrentChar;
}
- if (theVector.empty() == false && isSpace(theVector.back()) ==
true)
+ if (theVector.empty() == false &&
isXMLWhitespace(theVector.back()) == true)
{
// The last character is a space, so remove it
theVector.pop_back();
1.24 +4 -4 xml-xalan/c/src/XPath/XPathProcessorImpl.cpp
Index: XPathProcessorImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathProcessorImpl.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- XPathProcessorImpl.cpp 2000/10/03 15:27:02 1.23
+++ XPathProcessorImpl.cpp 2000/10/11 19:43:05 1.24
@@ -405,11 +405,11 @@
{
startSubstring = i;
- isNum = isDigit(c);
+ isNum = isXMLDigit(c);
}
else if(isNum == true)
{
- isNum = isDigit(c);
+ isNum = isXMLDigit(c);
}
}
}
@@ -1513,8 +1513,8 @@
}
else if((XalanUnicode::charFullStop == m_tokenChar &&
m_token.length() > 1 &&
- isDigit(charAt(m_token, 1)) == true)
- || isDigit(m_tokenChar) == true)
+ isXMLDigit(charAt(m_token, 1)) == true)
+ || isXMLDigit(m_tokenChar) == true)
{
m_expression->appendOpCode(XPathExpression::eOP_NUMBERLIT);
1.27 +10 -10 xml-xalan/c/src/XSLT/ElemNumber.cpp
Index: ElemNumber.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemNumber.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- ElemNumber.cpp 2000/10/04 18:00:02 1.26
+++ ElemNumber.cpp 2000/10/11 19:43:06 1.27
@@ -699,7 +699,7 @@
{
it = tokenVector.begin();
- if(!isLetterOrDigit(charAt(*it, 0)))
+ if(!isXMLLetterOrDigit(charAt(*it, 0)))
{
leaderStr = *it;
tokenVector.erase(it);
@@ -709,7 +709,7 @@
{
it = tokenVector.end() - 1;
- if(!isLetterOrDigit(charAt(*it, 0)))
+ if(!isXMLLetterOrDigit(charAt(*it, 0)))
{
trailerStr = *it;
tokenVector.erase(it);
@@ -728,7 +728,7 @@
{
// $$$ ToDo: This assert is commented out until we get
// out character classification problems fixed.
- // assert(isLetterOrDigit(charAt((*it), 0)));
+ // assert(isXMLLetterOrDigit(charAt((*it), 0)));
formatToken = *it++;
numberWidth = length(formatToken);
numberType = charAt(formatToken, numberWidth - 1);
@@ -737,7 +737,7 @@
{
// $$$ ToDo: This assert is commented out until we get
// out character classification problems fixed.
- //assert(!isLetterOrDigit(charAt((*it), 0)));
+ //assert(!isXMLLetterOrDigit(charAt((*it), 0)));
sepString = *it++;
}
formattedNumber += getFormattedNumber(executionContext,
contextNode,
@@ -1303,16 +1303,16 @@
const int start = m_currentPosition;
- if (isLetterOrDigit(charAt(m_str, m_currentPosition)))
+ if (isXMLLetterOrDigit(charAt(m_str, m_currentPosition)))
{
while ((m_currentPosition < m_maxPosition) &&
- isLetterOrDigit(charAt(m_str,
m_currentPosition)))
+ isXMLLetterOrDigit(charAt(m_str,
m_currentPosition)))
m_currentPosition++;
}
else
{
while ((m_currentPosition < m_maxPosition) &&
- !isLetterOrDigit(charAt(m_str,
m_currentPosition)))
+ !isXMLLetterOrDigit(charAt(m_str,
m_currentPosition)))
m_currentPosition++;
}
@@ -1333,16 +1333,16 @@
// non-alphabetic characters
while (currpos < m_maxPosition)
{
- if (isLetterOrDigit(charAt(m_str, currpos)))
+ if (isXMLLetterOrDigit(charAt(m_str, currpos)))
{
while ((currpos < m_maxPosition) &&
- isLetterOrDigit(charAt(m_str,
currpos)))
+ isXMLLetterOrDigit(charAt(m_str,
currpos)))
currpos++;
}
else
{
while ((currpos < m_maxPosition) &&
- !isLetterOrDigit(charAt(m_str,
currpos)))
+ !isXMLLetterOrDigit(charAt(m_str,
currpos)))
currpos++;
}
count++;
1.35 +2 -2 xml-xalan/c/src/XSLT/ElemTemplateElement.cpp
Index: ElemTemplateElement.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemTemplateElement.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- ElemTemplateElement.cpp 2000/10/03 15:23:58 1.34
+++ ElemTemplateElement.cpp 2000/10/11 19:43:06 1.35
@@ -254,7 +254,7 @@
XalanDOMChar c = charAt(s, 0);
- if(!(isLetterOrDigit(c) || (c == XalanUnicode::charLowLine)))
+ if(!(isXMLLetterOrDigit(c) || (c == XalanUnicode::charLowLine)))
return false;
if(len > 0)
@@ -263,7 +263,7 @@
{
c = charAt(s, i);
- if(!(isLetterOrDigit(c) ||
+ if(!(isXMLLetterOrDigit(c) ||
c == XalanUnicode::charLowLine ||
c == XalanUnicode::charHyphenMinus ||
c == XalanUnicode::charFullStop))
1.18 +1 -1 xml-xalan/c/src/XSLT/ElemTemplateElement.hpp
Index: ElemTemplateElement.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemTemplateElement.hpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ElemTemplateElement.hpp 2000/08/28 01:19:40 1.17
+++ ElemTemplateElement.hpp 2000/10/11 19:43:06 1.18
@@ -270,7 +270,7 @@
* @return true if the string is pure whitespace
*/
static bool
- isWhiteSpace(const XalanDOMString& theString);
+ isWhitespace(const XalanDOMString& theString);
/**
* Throw a template element runtime error.
1.45 +2 -2 xml-xalan/c/src/XSLT/StylesheetHandler.cpp
Index: StylesheetHandler.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.cpp,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- StylesheetHandler.cpp 2000/09/27 16:39:54 1.44
+++ StylesheetHandler.cpp 2000/10/11 19:43:07 1.45
@@ -1385,7 +1385,7 @@
false, preserveSpace,
disableOutputEscaping);
- const bool isWhite = isWhiteSpace(chars, 0, length);
+ const bool isWhite = isWhitespace(chars, 0, length);
if(preserveSpace || (!preserveSpace && !isWhite))
{
@@ -1477,7 +1477,7 @@
true, preserveSpace,
disableOutputEscaping);
- bool isWhite = isWhiteSpace(chars, 0, length);
+ bool isWhite = isWhitespace(chars, 0, length);
if(preserveSpace || (!preserveSpace && !isWhite))
{
1.65 +4 -4 xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp
Index: XSLTEngineImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- XSLTEngineImpl.cpp 2000/09/27 16:39:54 1.64
+++ XSLTEngineImpl.cpp 2000/10/11 19:43:07 1.65
@@ -2864,7 +2864,7 @@
{
return true;
}
- else if(!isWhiteSpace(data))
+ else if(!isWhitespace(data))
{
return false;
}
@@ -2963,7 +2963,7 @@
XalanDOMString
-XSLTEngineImpl::fixWhiteSpace(
+XSLTEngineImpl::fixWhitespace(
const XalanDOMString& string,
bool trimHead,
bool trimTail,
@@ -2984,7 +2984,7 @@
for(s = 0; s < len; ++s)
{
- if(isSpace(buf[s]) == true)
+ if(isXMLWhitespace(buf[s]) == true)
{
break;
}
@@ -2999,7 +2999,7 @@
{
const XalanDOMChar c = buf[s];
- if (isSpace(c) == true)
+ if (isXMLWhitespace(c) == true)
{
if (!pres)
{
1.49 +1 -1 xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp
Index: XSLTEngineImpl.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- XSLTEngineImpl.hpp 2000/09/27 16:39:54 1.48
+++ XSLTEngineImpl.hpp 2000/10/11 19:43:07 1.49
@@ -1011,7 +1011,7 @@
* @param doublePunctuationSpaces true to use double spaces for
punctuation
* @return trimmed string
*/
- XalanDOMString fixWhiteSpace(
+ XalanDOMString fixWhitespace(
const XalanDOMString& string,
bool trimHead,
bool trimTail,
1.3 +1 -1
xml-xalan/c/src/XercesParserLiaison/XercesCDATASectionBridge.cpp
Index: XercesCDATASectionBridge.cpp
===================================================================
RCS file:
/home/cvs/xml-xalan/c/src/XercesParserLiaison/XercesCDATASectionBridge.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XercesCDATASectionBridge.cpp 2000/08/10 18:41:36 1.2
+++ XercesCDATASectionBridge.cpp 2000/10/11 19:43:08 1.3
@@ -462,5 +462,5 @@
bool
XercesCDATASectionBridge::isIgnorableWhitespace() const
{
- return isWhiteSpace(m_xercesNode.getData());
+ return isWhitespace(m_xercesNode.getData());
}
1.3 +1 -1 xml-xalan/c/src/XercesParserLiaison/XercesTextBridge.cpp
Index: XercesTextBridge.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XercesParserLiaison/XercesTextBridge.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XercesTextBridge.cpp 2000/08/10 18:41:39 1.2
+++ XercesTextBridge.cpp 2000/10/11 19:43:08 1.3
@@ -463,5 +463,5 @@
bool
XercesTextBridge::isIgnorableWhitespace() const
{
- return isWhiteSpace(m_xercesNode.getData());
+ return isWhitespace(m_xercesNode.getData());
}