You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jd...@locus.apache.org on 2000/04/20 16:13:32 UTC
cvs commit: xml-xalan/c/src/XSLT ElemNumber.cpp
jdonohue 00/04/20 07:13:32
Modified: c/src/XSLT ElemNumber.cpp
Log:
Added temporary support for Greek letter numbering
Revision Changes Path
1.12 +20 -5 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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ElemNumber.cpp 2000/04/20 11:44:29 1.11
+++ ElemNumber.cpp 2000/04/20 14:13:32 1.12
@@ -89,8 +89,10 @@
const XalanDOMString ElemNumber::s_alphaCountTable(XALAN_STATIC_UCODE_STRING("ZABCDEFGHIJKLMNOPQRSTUVWXY"));
+XalanDOMString s_elalphaCountTable;
+
const DecimalToRoman ElemNumber::s_romanConvertTable[] =
{
DecimalToRoman(1000, XALAN_STATIC_UCODE_STRING("M"), 900, XALAN_STATIC_UCODE_STRING("CM")),
@@ -172,8 +174,9 @@
}
else if(equals(aname, Constants::ATTRNAME_LETTERVALUE))
{
- constructionContext.warn(Constants::ATTRNAME_LETTERVALUE + " not supported yet!");
-
+ if (equals("traditional", atts.getValue(i)))
+ constructionContext.warn(Constants::ATTRNAME_LETTERVALUE +
+ " value 'traditional' not supported yet!");
m_lettervalue_avt = new AVT(aname, atts.getType(i),
atts.getValue(i), *this, constructionContext);
}
@@ -736,9 +739,21 @@
case 0x0E51:
case 0x05D0:
case 0x10D0:
- case 0x03B1:
case 0x0430:
executionContext.error(LongToDOMString(numberType) + " format not supported yet!");
+ break;
+ // Handle the special case of Greek letters for now
+ case 0x03B1:
+ if (isEmpty(s_elalphaCountTable))
+ {
+ // Start at lower case Greek letters in entity reference table in
+ // FormatterToHTML
+ s_elalphaCountTable += 962;
+ for (int i=1, j=938; i<25; i++, j++)
+ s_elalphaCountTable += j;
+ }
+ formattedNumber += int2alphaCount(listElement, s_elalphaCountTable);
+ break;
default: // "1"
{
const XalanDOMString numString =
@@ -787,7 +802,7 @@
const int buflen = 100;
XalanDOMChar buf[buflen + 1];
- memset(buf, 0, buflen + 1);
+ memset(buf, 0, (buflen + 1) * sizeof(XalanDOMChar));
// next character to set in the buffer
int charPos = buflen - 1 ; // work backward through buf[]
@@ -843,7 +858,7 @@
break;
// put out the next character of output
- buf[charPos--] = static_cast<char>(charAt(table, lookupIndex));
+ buf[charPos--] = static_cast<XalanDOMChar>(charAt(table, lookupIndex));
}
while (val > 0);