Index: configure ================================================================== --- configure +++ configure @@ -617,14 +617,19 @@ #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS -PKG_STUB_LIB_PATH -PKG_BUILD_STUB_LIB_PATH -PKG_STUB_LIB_SPEC -PKG_BUILD_STUB_LIB_SPEC +PATCHLEVEL +MINOR_VERSION +MAJOR_VERSION +tdom_STUB_LIB_PATH +tdom_BUILD_STUB_LIB_PATH +tdom_STUB_LIB_SPEC +tdom_BUILD_STUB_LIB_SPEC +tdom_LIB_SPEC +tdom_BUILD_LIB_SPEC TDOMSHELL TCLSH_PROG VC_MANIFEST_EMBED_EXE VC_MANIFEST_EMBED_DLL RANLIB_STUB @@ -9078,24 +9083,38 @@ TDOMSHELL=tcldomsh #-------------------------------------------------------------------- - # These are for ${PACKAGE_NAME}Config.sh + # These are for tdomConfig.sh #-------------------------------------------------------------------- # pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib) - eval pkglibdir="${libdir}/${PACKAGE_NAME}${PACKAGE_VERSION}" + eval pkglibdir="${libdir}/tdom${PACKAGE_VERSION}" if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then - eval PKG_STUB_LIB_FLAG="-l${PACKAGE_NAME}stub${PACKAGE_VERSION}" + eval tdom_LIB_FLAG="-ltdom${PACKAGE_VERSION}" + eval tdom_STUB_LIB_FLAG="-ltdomstub${PACKAGE_VERSION}" else - eval PKG_STUB_LIB_FLAG="-l${PACKAGE_NAME}stub`echo ${PACKAGE_VERSION} | tr -d .`" + eval tdom_LIB_FLAG="-ltdom`echo ${PACKAGE_VERSION} | tr -d .`" + eval tdom_STUB_LIB_FLAG="-ltdomstub`echo ${PACKAGE_VERSION} | tr -d .`" + fi + if test "${TCL_MAJOR_VERSION}" -gt 8 -a x"${with_tcl8}" = x; then + eval tdom_STUB_LIB_FLAG="-ltdomstub" fi - PKG_BUILD_STUB_LIB_SPEC="-L`pwd` ${PKG_STUB_LIB_FLAG}" - PKG_STUB_LIB_SPEC="-L${pkglibdir} ${PKG_STUB_LIB_FLAG}" - PKG_BUILD_STUB_LIB_PATH="`pwd`/${PKG_STUB_LIB_FILE}" - PKG_STUB_LIB_PATH="${pkglibdir}/${PKG_STUB_LIB_FILE}" + + tdom_BUILD_LIB_SPEC="-L`$CYGPATH $(pwd)` ${tdom_LIB_FLAG}" + tdom_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${tdom_LIB_FLAG}" + tdom_BUILD_STUB_LIB_SPEC="-L`$CYGPATH $(pwd)` ${tdom_STUB_LIB_FLAG}" + tdom_STUB_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${tdom_STUB_LIB_FLAG}" + tdom_BUILD_STUB_LIB_PATH="`$CYGPATH $(pwd)`/${PKG_STUB_LIB_FILE}" + tdom_STUB_LIB_PATH="`$CYGPATH ${pkglibdir}`/${PKG_STUB_LIB_FILE}" + + + + + + Index: configure.ac ================================================================== --- configure.ac +++ configure.ac @@ -251,15 +251,15 @@ TDOM_ENABLE_SCHEMA TDOMSHELL=tcldomsh AC_SUBST(TDOMSHELL) -TDOM_EXPORT_CONFIG +TEA_EXPORT_CONFIG([tdom]) #-------------------------------------------------------------------- # Finally, substitute all of the various values into the Makefile. # You may alternatively have a special pkgIndex.tcl.in or other files # which require substituting the AC variables in. Include these here. #-------------------------------------------------------------------- AC_CONFIG_FILES([Makefile pkgIndex.tcl tdomConfig.sh]) AC_OUTPUT Index: generic/dom.c ================================================================== --- generic/dom.c +++ generic/dom.c @@ -461,11 +461,11 @@ p += clen; } if (!*changed) { return; } - Tcl_DStringAppend (clearedstr, str, p-str); + Tcl_DStringAppend (clearedstr, str, (domLength)(p-str)); if (repllen) { Tcl_DStringAppend (clearedstr, replacement, repllen); } if (clen) { p += clen; @@ -476,11 +476,11 @@ } s = p; while (*p) { clen = UTF8_CHAR_LEN(*p); if (!clen || !UTF8_XMLCHAR((unsigned const char*)p,clen)) { - Tcl_DStringAppend (clearedstr, s, p-s); + Tcl_DStringAppend (clearedstr, s, (domLength)(p-s)); if (repllen) { Tcl_DStringAppend (clearedstr, replacement, repllen); } if (clen) { p += clen; @@ -490,11 +490,11 @@ s = p; } else { p += clen; } } - Tcl_DStringAppend (clearedstr, s, p-s); + Tcl_DStringAppend (clearedstr, s, (domLength)(p-s)); } /*--------------------------------------------------------------------------- | domIsBMPChar | @@ -527,11 +527,11 @@ { const char *p; domLength len, i = 0; p = str; - len = strlen (str); + len = (domLength)strlen (str); while (i < len) { if (*p == '-') { if (i == len - 1) return 0; p++; i++; if (*p == '-') return 0; @@ -552,11 +552,11 @@ { const char *p; domLength len, i = 0; p = str; - len = strlen (str); + len = (domLength)strlen (str); while (i < len - 2) { if ( *p == ']' && p[1] == ']' && p[2] == '>') return 0; p++; i++; @@ -575,11 +575,11 @@ { const char *p; domLength len, i = 0; p = str; - len = strlen (str); + len = (domLength)strlen (str); while (i < len - 1) { if (*p == '?' && p[1] == '>') return 0; p++; i++; } return domIsChar (str); @@ -1371,11 +1371,11 @@ attrnode->nodeFlags = IS_NS_NODE; attrnode->namespace = ns->index; attrnode->nodeName = (char *)&(h->key); attrnode->parentNode = node; len = strlen(atPtr[1]); - attrnode->valueLength = len; + attrnode->valueLength = (domLength)len; attrnode->nodeValue = (char*)MALLOC(len+1); strcpy(attrnode->nodeValue, atPtr[1]); if (node->firstAttr) { lastAttr->nextSibling = attrnode; } else { @@ -1473,11 +1473,11 @@ attrnode->nodeFlags |= IS_ID_ATTRIBUTE; } attrnode->nodeName = (char *)&(h->key); attrnode->parentNode = node; len = strlen(atPtr[1]); - attrnode->valueLength = len; + attrnode->valueLength = (domLength)len; attrnode->nodeValue = (char*)MALLOC(len+1); strcpy(attrnode->nodeValue, (char *)atPtr[1]); if (node->firstAttr) { lastAttr->nextSibling = attrnode; @@ -1600,13 +1600,13 @@ Tcl_DStringAppend (info->cdata, s, len); if (info->storeLineColumn) { /* This works because the result of XML_GetCurrentLineNumber() * is always at least 1 */ if (!info->textStartLine) { - info->textStartLine = XML_GetCurrentLineNumber (info->parser); - info->textStartColumn = XML_GetCurrentColumnNumber (info->parser); - info->textStartByteIndex = XML_GetCurrentByteIndex (info->parser); + info->textStartLine = (domLength)XML_GetCurrentLineNumber (info->parser); + info->textStartColumn = (domLength)XML_GetCurrentColumnNumber (info->parser); + info->textStartByteIndex = (domLength)XML_GetCurrentByteIndex (info->parser); } } return; @@ -1625,13 +1625,13 @@ DispatchPCDATA (info); info->cdataSection = 1; if (info->storeLineColumn) { if (!info->textStartLine) { - info->textStartLine = XML_GetCurrentLineNumber (info->parser); - info->textStartColumn = XML_GetCurrentColumnNumber (info->parser); - info->textStartByteIndex = XML_GetCurrentByteIndex (info->parser); + info->textStartLine = (domLength)XML_GetCurrentLineNumber (info->parser); + info->textStartColumn = (domLength)XML_GetCurrentColumnNumber (info->parser); + info->textStartByteIndex = (domLength)XML_GetCurrentByteIndex (info->parser); } } } /*--------------------------------------------------------------------------- @@ -1815,11 +1815,11 @@ node = (domTextNode*) domAlloc(sizeof(domTextNode)); } memset(node, 0, sizeof(domTextNode)); node->nodeType = COMMENT_NODE; node->nodeNumber = NODE_NO(info->document); - node->valueLength = len; + node->valueLength = (domLength)len; node->nodeValue = (char*)MALLOC(len); memmove(node->nodeValue, s, len); node->ownerDocument = info->document; node->parentNode = parentNode; @@ -1909,16 +1909,16 @@ Tcl_SetHashValue (h, tdomstrdup (XML_GetBase (info->parser))); node->nodeFlags |= HAS_BASEURI; } len = strlen(target); - node->targetLength = len; + node->targetLength = (domLength)len; node->targetValue = (char*)MALLOC(len); memmove(node->targetValue, target, len); len = strlen(data); - node->dataLength = len; + node->dataLength = (domLength)len; node->dataValue = (char*)MALLOC(len); memmove(node->dataValue, data, len); node->ownerDocument = info->document; node->parentNode = parentNode; @@ -2025,11 +2025,11 @@ cmdPtr = Tcl_NewStringObj(info->document->extResolver, -1); Tcl_IncrRefCount(cmdPtr); if (base) { Tcl_ListObjAppendElement(info->interp, cmdPtr, - Tcl_NewStringObj(base, strlen(base))); + Tcl_NewStringObj(base, (domLength)strlen(base))); } else { Tcl_ListObjAppendElement(info->interp, cmdPtr, Tcl_NewObj()); } @@ -2038,19 +2038,19 @@ and the user uses -useForeignDTD 1, the externalEntityRefHandler will be called with a systemId (and publicId and openEntityNames) == NULL. */ if (systemId) { Tcl_ListObjAppendElement(info->interp, cmdPtr, - Tcl_NewStringObj(systemId, strlen(systemId))); + Tcl_NewStringObj(systemId, (domLength)strlen(systemId))); } else { Tcl_ListObjAppendElement(info->interp, cmdPtr, Tcl_NewObj()); } if (publicId) { Tcl_ListObjAppendElement(info->interp, cmdPtr, - Tcl_NewStringObj(publicId, strlen(publicId))); + Tcl_NewStringObj(publicId, (domLength)strlen(publicId))); } else { Tcl_ListObjAppendElement(info->interp, cmdPtr, Tcl_NewObj()); } @@ -2147,16 +2147,16 @@ XML_GetCurrentColumnNumber(extparser), xmlstringstart, systemId, XML_GetCurrentByteIndex(extparser), XML_ErrorString(XML_GetErrorCode(extparser)) ); } else { - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(extparser)); Tcl_AppendResult(info->interp, ", referenced in entity \"", systemId, "\" at line ", s, " character ", NULL); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(extparser)); Tcl_AppendResult(info->interp, s, NULL); } keepresult = 1; result = 0; @@ -2174,26 +2174,26 @@ done = len < sizeof(buf); status = XML_Parse (extparser, buf, (int)len, done); switch (status) { case XML_STATUS_ERROR: interpResult = Tcl_GetStringResult(info->interp); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(extparser)); if (interpResult[0] == '\0') { Tcl_ResetResult (info->interp); Tcl_AppendResult(info->interp, "error \"", XML_ErrorString(XML_GetErrorCode(extparser)), "\" in entity \"", systemId, "\" at line ", s, " character ", NULL); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(extparser)); Tcl_AppendResult(info->interp, s, NULL); } else { Tcl_AppendResult(info->interp, ", referenced in entity \"", systemId, "\" at line ", s, " character ", NULL); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(extparser)); Tcl_AppendResult(info->interp, s, NULL); } result = 0; keepresult = 1; @@ -2501,13 +2501,13 @@ | \--------------------------------------------------------------------------*/ int domGetLineColumn ( domNode *node, - Tcl_WideInt *line, - Tcl_WideInt *column, - Tcl_WideInt *byteIndex + XML_Size *line, + XML_Size *column, + XML_Index *byteIndex ) { char *v; domLineColumn *lc; @@ -2562,11 +2562,11 @@ attr->nodeType = ATTRIBUTE_NODE; attr->nodeFlags = IS_NS_NODE; attr->namespace = ns->index; attr->nodeName = (char *)&(h->key); attr->parentNode = parent; - attr->valueLength = strlen (XML_NAMESPACE); + attr->valueLength = (domLength)strlen (XML_NAMESPACE); attr->nodeValue = tdomstrdup (XML_NAMESPACE); return attr; } @@ -3108,11 +3108,11 @@ /* XXX what to do, if hnew = 0 ??? */ Tcl_SetHashValue (h, node); } } FREE (attr->nodeValue); - attr->valueLength = strlen(attributeValue); + attr->valueLength = (domLength)strlen(attributeValue); attr->nodeValue = (char*)MALLOC(attr->valueLength+1); strcpy(attr->nodeValue, attributeValue); } else { /*----------------------------------------------- | add a complete new attribute node @@ -3124,11 +3124,11 @@ attr->nodeType = ATTRIBUTE_NODE; attr->nodeFlags = 0; attr->namespace = 0; attr->nodeName = (char *)&(h->key); attr->parentNode = node; - attr->valueLength = strlen(attributeValue); + attr->valueLength = (domLength)strlen(attributeValue); attr->nodeValue = (char*)MALLOC(attr->valueLength+1); strcpy(attr->nodeValue, attributeValue); if (node->firstAttr) { lastAttr = node->firstAttr; @@ -3240,11 +3240,11 @@ attributeValue, &hnew); Tcl_SetHashValue (h, node); } } FREE (attr->nodeValue); - attr->valueLength = strlen(attributeValue); + attr->valueLength = (domLength)strlen(attributeValue); attr->nodeValue = (char*)MALLOC(attr->valueLength+1); strcpy(attr->nodeValue, attributeValue); } else { /*-------------------------------------------------------- | add a complete new attribute node @@ -3292,11 +3292,11 @@ attr->nodeFlags = IS_NS_NODE; } } attr->nodeName = (char *)&(h->key); attr->parentNode = node; - attr->valueLength = strlen(attributeValue); + attr->valueLength = (domLength)strlen(attributeValue); attr->nodeValue = (char*)MALLOC(attr->valueLength+1); strcpy(attr->nodeValue, attributeValue); if (isNSAttr) { if (node->firstAttr && (node->firstAttr->nodeFlags & IS_NS_NODE)) { @@ -4546,11 +4546,11 @@ attr->nodeType = ATTRIBUTE_NODE; attr->nodeFlags = IS_NS_NODE; attr->namespace = ns->index; attr->nodeName = (char *)&(h->key); attr->parentNode = node; - attr->valueLength = strlen(nsToAdd->uri); + attr->valueLength = (domLength)strlen(nsToAdd->uri); attr->nodeValue = (char*)MALLOC(attr->valueLength+1); strcpy(attr->nodeValue, nsToAdd->uri); lastNSAttr = NULL; if (node->firstAttr && (node->firstAttr->nodeFlags & IS_NS_NODE)) { @@ -5330,11 +5330,11 @@ domLength textStartColumn; domLength textStartByteIndex; int ignorexmlns; int feedbackAfter; Tcl_Obj *feedbackCmd; - int nextFeedbackPosition; + XML_Index nextFeedbackPosition; Tcl_Interp *interp; int activeNSsize; int activeNSpos; domActiveNS *activeNS; int baseURIstackSize; @@ -5474,13 +5474,13 @@ tdomCmdReadInfo *info = (tdomCmdReadInfo *) userData; DispatchPCDATA ((domReadInfo*) info); info->cdataSection = 1; if (info->storeLineColumn) { - info->textStartLine = XML_GetCurrentLineNumber (info->parser); - info->textStartColumn = XML_GetCurrentColumnNumber (info->parser); - info->textStartByteIndex = XML_GetCurrentByteIndex (info->parser); + info->textStartLine = (domLength)XML_GetCurrentLineNumber (info->parser); + info->textStartColumn = (domLength)XML_GetCurrentColumnNumber (info->parser); + info->textStartByteIndex = (domLength)XML_GetCurrentByteIndex (info->parser); } } int TclTdomObjCmd ( Index: generic/dom.h ================================================================== --- generic/dom.h +++ generic/dom.h @@ -33,10 +33,11 @@ #ifndef __DOM_H__ #define __DOM_H__ #include #include +#include #include #include #include #include #include @@ -108,10 +109,18 @@ # define Tcl_SetDomLengthObj Tcl_SetIntObj # define domLengthConversion "%d" # define TCL_SIZE_MODIFIER "" # define Tcl_GetSizeIntFromObj Tcl_GetIntFromObj #endif + +#ifndef TDOM_LS_MODIFIER +# ifdef _WIN32 +# define TDOM_LS_MODIFIER "I64" +# else +# define TDOM_LS_MODIFIER "ll" +# endif +#endif /* Since the len argument of XML_Parse() is of type int, parsing of * strings has to be done in chunks anyway for Tcl 9 with its strings * potentially longer than 2 GByte. Because of internal changes in * exapt a chunk size of INT_MAX led to out of memory errors. @@ -171,15 +180,11 @@ #else # define TDomNotThreaded(x) # define TDomThreaded(x) x # define HASHTAB(doc,tab) (doc)->tab # define NODE_NO(doc) ((doc)->nodeCounter)++ -# ifdef _WIN32 -# define DOC_NO(doc) (unsigned long long)(doc) -# else -# define DOC_NO(doc) (unsigned long)(doc) -# endif +# define DOC_NO(doc) (uintptr_t)(doc) #endif /* TCL_THREADS */ #define DOC_CMD(s,doc) sprintf((s), "domDoc%p", (void *)(doc)) #define NODE_CMD(s,node) sprintf((s), "domNode%p", (void *)(node)) #define XSLT_CMD(s,doc) sprintf((s), "XSLTcmd%p", (void *)(doc)) @@ -542,15 +547,11 @@ typedef struct domDocument { domNodeType nodeType : 8; domDocFlags nodeFlags : 8; domNameSpaceIndex dummy : 16; -#ifdef _WIN32 - unsigned long long documentNumber; -#else - unsigned long documentNumber; -#endif + uintptr_t documentNumber; struct domNode *documentElement; struct domNode *fragments; #ifdef TCL_THREADS struct domNode *deletedNodes; #endif @@ -633,21 +634,21 @@ | domLineColumn | \-------------------------------------------------------------------------*/ typedef struct domLineColumn { - Tcl_WideInt line; - Tcl_WideInt column; - Tcl_WideInt byteIndex; + XML_Size line; + XML_Size column; + XML_Index byteIndex; } domLineColumn; typedef struct { int errorCode; - Tcl_WideInt errorLine; - Tcl_WideInt errorColumn; - Tcl_WideInt byteIndex; + XML_Size errorLine; + XML_Size errorColumn; + XML_Index byteIndex; } domParseForestErrorData; /*-------------------------------------------------------------------------- | domNode @@ -890,12 +891,12 @@ char **prefixMappings); domNS * domLookupURI (domNode *node, char *uri); domNS * domGetNamespaceByIndex (domDocument *doc, unsigned int nsIndex); domNS * domNewNamespace (domDocument *doc, const char *prefix, const char *namespaceURI); -int domGetLineColumn (domNode *node, Tcl_WideInt *line, - Tcl_WideInt *column, Tcl_WideInt *byteIndex); +int domGetLineColumn (domNode *node, XML_Size *line, + XML_Size *column, XML_Index *byteIndex); int domXPointerChild (domNode * node, int all, int instance, domNodeType type, char *element, char *attrName, char *attrValue, domLength attrLen, domAddCallback addCallback, void * clientData); Index: generic/domhtml.c ================================================================== --- generic/domhtml.c +++ generic/domhtml.c @@ -2604,11 +2604,11 @@ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); - tnode->valueLength = (x - start); + tnode->valueLength = (domLength)(x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; DBG(fprintf(stderr, "New text node: '%s'\n", tnode->nodeValue);) if (ampersandSeen) { @@ -2633,14 +2633,14 @@ while ((c=*x)!=0 && c!='>' && c!='<' && !SPACE(c) ) { *x = tolower(c); x++; } if (c==0) { - RetError("Missing \">\"",(start-html) ); + RetError("Missing \">\"",(domLength)(start-html) ); } if ( (x-start)==2) { - RetError("Null markup name",(start-html) ); + RetError("Null markup name",(domLength)(start-html) ); } *x = '\0'; /* temporarily terminate the string */ /*---------------------------------------------------------------------- @@ -2757,11 +2757,11 @@ break; } } sprintf(tmp, "Unterminated element '%s' (within '%s')", start+2, pn); *x = c; /* remove temporarily termination */ - RetError(tmp,(x - html)); + RetError(tmp,(domLength)(x - html)); } break; } /* move up */ @@ -2779,11 +2779,11 @@ x++; } else { if (*x == '<') { /* start of new tag, ends closing tag */ } else { - RetError("Missing \">\"",(x - html)-1); + RetError("Missing \">\"",(domLength)(x - html)-1); } } if (parent_node == NULL) { /* we return to main node and so finished parsing */ return TCL_OK; @@ -2811,11 +2811,11 @@ memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = COMMENT_NODE; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; - tnode->valueLength = x - start - 4; + tnode->valueLength = (domLength)(x - start - 4); tnode->nodeValue = (char*)MALLOC(tnode->valueLength+1); memmove(tnode->nodeValue, start+4, tnode->valueLength); *(tnode->nodeValue + tnode->valueLength) = 0; if (parent_node == NULL) { if (doc->rootNode->lastChild) { @@ -2836,11 +2836,11 @@ parent_node->firstChild = parent_node->lastChild = (domNode*)tnode; } } x += 3; } else { - RetError("Unterminated comment",(start-html)); + RetError("Unterminated comment",(domLength)(start-html)); } continue; } else if (TU(x[1])=='D' && TU(x[2])=='O' && TU(x[3])=='C' && TU(x[4])=='T' && @@ -2862,11 +2862,11 @@ } } if (*x) { x++; } else { - RetError("Unterminated DOCTYPE definition",(start-html)); + RetError("Unterminated DOCTYPE definition",(domLength)(start-html)); } continue; } else if (x[1]=='[' && x[2]=='C' && x[3]=='D' && x[4]=='A' && @@ -2889,11 +2889,11 @@ memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; - tnode->valueLength = (x - start); + tnode->valueLength = (domLength)(x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; if (parent_node->firstChild) { parent_node->lastChild->nextSibling = (domNode*)tnode; @@ -2903,15 +2903,15 @@ parent_node->firstChild = parent_node->lastChild = (domNode*)tnode; } } x += 3; } else { - RetError("Unterminated CDATA definition",(start-html) ); + RetError("Unterminated CDATA definition",(domLength)(start-html) ); } continue; } else { - RetError("Incorrect ')) { piSep++; } *piSep = '\0'; /* temporarily terminate the string */ - pinode->targetLength = strlen(start); + pinode->targetLength = (domLength)strlen(start); pinode->targetValue = (char*)MALLOC(pinode->targetLength); memmove(pinode->targetValue, start, pinode->targetLength); *piSep = c; /* remove temporarily termination */ @@ -2954,11 +2954,11 @@ | extract PI data \------------------------------------------------*/ while (SPACE(*piSep)) { piSep++; } - pinode->dataLength = x - piSep; + pinode->dataLength = (domLength)(x - piSep); pinode->dataValue = (char*)MALLOC(pinode->dataLength); memmove(pinode->dataValue, piSep, pinode->dataLength); if (parent_node == NULL) { if (doc->rootNode->lastChild) { @@ -2978,11 +2978,11 @@ parent_node->firstChild = parent_node->lastChild = (domNode*)pinode; } } x += 2; } else { - RetError("Unterminated processing instruction(PI)",(start-html) ); + RetError("Unterminated processing instruction(PI)",(domLength)(start-html)); } continue; } @@ -3013,14 +3013,14 @@ goto readText; } } hasContent = 1; if (c==0) { - RetError("Missing \">\"",(start-html) ); + RetError("Missing \">\"",(domLength)(start-html)); } if ( (x-start)==1) { - RetError("Null markup name",(start-html) ); + RetError("Null markup name",(domLength)(start-html)); } DBG(fprintf(stderr, "\nnew tag '%70.70s...' \n", start);) *x = '\0'; /* temporarily terminate the string */ @@ -3113,11 +3113,11 @@ while ((c=*x)!=0 && c!='=' && c!='>' && !SPACE(c) ) { *x = tolower(c); x++; } - nArgName = x - ArgName; + nArgName = (domLength)(x - ArgName); while (SPACE(*x)) { x++; } if (*x == '=') { @@ -3140,13 +3140,13 @@ ampersandSeen = 0; while ((c=*x)!=0 && c!=cDelim) { if (c=='&') ampersandSeen = 1; x++; } - nArgVal = x - ArgVal; + nArgVal = (domLength)(x - ArgVal); if (c==0) { - RetError("Unterminated string",(ArgVal - html - 1) ); + RetError("Unterminated string",(domLength)(ArgVal - html - 1)); } else { x++; } } else if (c!=0 && c!='>') { ArgVal = x; @@ -3153,13 +3153,13 @@ while ((c=*x)!=0 && c!='>' && !SPACE(c)) { if (c=='&') ampersandSeen = 1; x++; } if (c==0) { - RetError("Missing \">\"",(start-html)); + RetError("Missing \">\"",(domLength)(start-html)); } - nArgVal = x - ArgVal; + nArgVal = (domLength)(x - ArgVal); } } else { /* attribute without value, like 'nowrap' */ savedChar = *(ArgName + nArgName); *(ArgName + nArgName) = '\0'; /* terminate arg name */ @@ -3238,11 +3238,11 @@ if (*x=='/') { hasContent = 0; x++; if (*x!='>') { - RetError("Syntax Error",(x - html - 1) ); + RetError("Syntax Error",(domLength)(x - html - 1)); } } if (*x=='>') { x++; } @@ -3285,11 +3285,11 @@ memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = node; - tnode->valueLength = (x - start); + tnode->valueLength = (domLength)(x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; if (node->firstChild) { node->lastChild->nextSibling = (domNode*)tnode; @@ -3345,11 +3345,11 @@ return TCL_OK; } if (forest && parent_node == parent) { return TCL_OK; } - RetError("Unexpected end",(x - html) ); + RetError("Unexpected end",(domLength)(x - html)); } /* HTML_SimpleParse */ /*---------------------------------------------------------------------------- Index: generic/domjson.c ================================================================== --- generic/domjson.c +++ generic/domjson.c @@ -373,11 +373,11 @@ j = jsonParseString (json, i, jparse); rc(j); if (jparse->len && jparse->buf[0]) { DBG(fprintf(stderr, "New unescaped text node '%s'\n", jparse->buf)); newTextNode = domNewTextNode (parent->ownerDocument, - jparse->buf, strlen(jparse->buf), + jparse->buf, (domLength)strlen(jparse->buf), TEXT_NODE); domAppendChild (parent, (domNode *) newTextNode); } else { DBG(save = json[j];json[j] = '\0';fprintf(stderr, "New text node '%s'\n", &json[i+1]);json[j] = save;); newTextNode = domNewTextNode (parent->ownerDocument, Index: generic/domxpath.c ================================================================== --- generic/domxpath.c +++ generic/domxpath.c @@ -419,11 +419,11 @@ } void rsSetString ( xpathResultSet *rs, const char *s) { rs->type = StringResult; if (s) { rs->string = tdomstrdup(s); - rs->string_len = strlen(s); + rs->string_len = (domLength)strlen(s); } else { rs->string = tdomstrdup(""); rs->string_len = 0; } rs->nr_nodes = 0; @@ -2794,11 +2794,11 @@ if (IS_INF (rs->realvalue) == 1) return tdomstrdup ("Infinity"); else return tdomstrdup ("-Infinity"); } sprintf(tmp, "%g", rs->realvalue); /* strip trailing 0 and . */ - len = strlen(tmp); + len = (domLength)strlen(tmp); for (; (len > 0) && (tmp[len-1] == '0'); len--) tmp[len-1] = '\0'; if ((len > 0) && (tmp[len-1] == '.')) tmp[len-1] = '\0'; return (tdomstrdup(tmp)); case NaNResult: @@ -3385,11 +3385,11 @@ } else { rsSetString (result, ""); } } else { /* starts-with */ - i = strlen(rightStr); + i = (domLength)strlen(rightStr); if(strncmp(leftStr, rightStr, i)==0) { rsSetBool (result, 1); } else { rsSetBool (result, 0); } @@ -3421,11 +3421,11 @@ *docOrder = savedDocOrder; leftStr = xpathFuncString( &leftResult ); pto = (char*)REALLOC(pto, 1+len+strlen(leftStr)); memmove(pto + len, leftStr, strlen(leftStr)); - len += strlen(leftStr); + len += (domLength)strlen(leftStr); *(pto + len) = '\0'; xpathRSFree( &leftResult ); FREE(leftStr); nextStep = nextStep->next; } @@ -5996,11 +5996,11 @@ break; default: break; } - len = strlen(step); + len = (domLength)strlen(step); if ( (len + *xpathLen) > *xpathAllocated ) { *xpathAllocated = *xpathAllocated * 2; *xpath = REALLOC(*xpath, *xpathAllocated + 1); } strcpy( *xpath + *xpathLen, step); Index: generic/domxslt.c ================================================================== --- generic/domxslt.c +++ generic/domxslt.c @@ -540,22 +540,23 @@ char ** errMsg) { Tcl_DString dStr; char buffer[1024]; const char *baseURI; - Tcl_WideInt line, column, byteIndex; + XML_Size line, column; + XML_Index byteIndex; Tcl_DStringInit (&dStr); baseURI = findBaseURI (node); if (baseURI) { Tcl_DStringAppend (&dStr, "In entity ", 10); Tcl_DStringAppend (&dStr, baseURI, -1); } if (node->nodeFlags & HAS_LINE_COLUMN) { domGetLineColumn (node, &line, &column, &byteIndex); - sprintf (buffer, " at line %" TCL_LL_MODIFIER "d, column %" - TCL_LL_MODIFIER "d:\n", line, column); + sprintf (buffer, " at line %" TDOM_LS_MODIFIER "d, column %" + TDOM_LS_MODIFIER "d:\n", line, column); Tcl_DStringAppend (&dStr, buffer, -1); Tcl_DStringAppend (&dStr, str, -1); } else { if (baseURI) Tcl_DStringAppend (&dStr, ": ", 2); Tcl_DStringAppend (&dStr, str, -1); @@ -950,16 +951,16 @@ }; switch (f->tokens[*useFormatToken].type) { case latin_number: sprintf (tmp, "%" TCL_SIZE_MODIFIER "d", value); - fulllen = len = strlen (tmp); + fulllen = len = (domLength)strlen (tmp); if (f->tokens[*useFormatToken].minlength > fulllen) { fulllen = f->tokens[*useFormatToken].minlength; } if (groupingSeparator) { - gslen = strlen (groupingSeparator); + gslen = (domLength)strlen (groupingSeparator); Tcl_DStringInit (&tmp1); if (len < f->tokens[*useFormatToken].minlength) { for (i = 0; i < f->tokens[*useFormatToken].minlength - len; i++) { Tcl_DStringAppend (&tmp1, "0", 1); } @@ -1070,11 +1071,11 @@ default: sprintf (tmp, "%" TCL_SIZE_MODIFIER "d", value); break; } - len = strlen (tmp); + len = (domLength)strlen (tmp); Tcl_DStringAppend (str, tmp, len); appendSeperator: if (addSeparater) { if (f->tokens[*useFormatToken].sepStart) { Tcl_DStringAppend (str, f->tokens[*useFormatToken].sepStart, @@ -1390,11 +1391,11 @@ DBG(fprintf(stderr,"normal part nZero=%d i=%d glen=%d\n", nZero, i, gLen);) /* fill in grouping char */ if (gLen > 0) { sprintf(stmp,"%0*d", nZero, i); - l = strlen (stmp); + l = (domLength)strlen (stmp); for (j = 0; j < l; j++) { t = df->zeroDigit + stmp[j] - 48; Tcl_DStringAppend (&s, (char*)&t, sizeof (Tcl_UniChar)); } DBG( @@ -1435,11 +1436,11 @@ Tcl_UniCharToUtfDString (n, Tcl_UniCharLen (n), &dbStr)); Tcl_DStringFree (&dbStr); ) } else { sprintf(stmp,"%0*d", nZero, i); - l = strlen (stmp); + l = (domLength)strlen (stmp); for (j = 0; j < l; j++) { n[j] = df->zeroDigit + (int) stmp[j] - 48; } n[l] = '\0'; DBG( @@ -1450,11 +1451,11 @@ ) } DBG(fprintf(stderr, "number=%f fHash=%d fZero=%d \n", number, fHash, fZero);) if ((fHash+fZero) > 0) { - l = strlen(ftmp); + l = (domLength)strlen(ftmp); while (l>0 && fHash>0) { /* strip not need 0's */ if (ftmp[l-1] == '0') { ftmp[l-1]='\0'; l--; fHash--; } else { break; @@ -1516,11 +1517,11 @@ Tcl_UniCharLen((Tcl_UniChar*)Tcl_DStringValue(&s)), &dStr ); *resultStr = tdomstrdup(tstr); Tcl_DStringFree (&dStr); Tcl_DStringFree (&s); - *resultLen = strlen(*resultStr); + *resultLen = (domLength)strlen(*resultStr); return 0; xsltFormatNumberError: Tcl_DStringFree (&dStr); Tcl_DStringFree (&s); @@ -4420,11 +4421,11 @@ } } } else { str = xpathFuncString( &rs ); TRACE1("copyOf: xpathString='%s' \n", str); - domAppendNewTextNode(xs->lastNode, str, strlen(str), + domAppendNewTextNode(xs->lastNode, str, (domLength)strlen(str), TEXT_NODE, 0); FREE(str); } xpathRSFree( &rs ); break; @@ -4759,11 +4760,11 @@ return -1; } xs->lastNode = savedLastNode; n = (domNode*)domNewProcessingInstructionNode( - xs->resultDoc, str2, strlen(str2), str, len); + xs->resultDoc, str2, (domLength)strlen(str2), str, len); domAppendChild(xs->lastNode, n); domDeleteNode (fragmentNode, NULL, NULL); FREE(str2); FREE(str); break; @@ -4806,11 +4807,11 @@ &rs, errMsg); CHECK_RC; DBG(rsPrint(&rs)); str = xpathFuncString( &rs ); TRACE1("valueOf: xpathString='%s' \n", str); - domAppendNewTextNode(xs->lastNode, str, strlen(str), + domAppendNewTextNode(xs->lastNode, str, (domLength)strlen(str), TEXT_NODE, disableEsc); xpathRSFree( &rs ); FREE(str); } else { reportError (actionNode, "xsl:value-of must have a" @@ -5718,17 +5719,17 @@ cmdPtr = Tcl_NewStringObj (xsltDoc->extResolver, -1); Tcl_IncrRefCount (cmdPtr); if (baseURI) { Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewStringObj (baseURI, - strlen(baseURI))); + (domLength)strlen(baseURI))); } else { Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewStringObj ("", 0)); } Tcl_ListObjAppendElement (interp, cmdPtr, (href ? - Tcl_NewStringObj (href, strlen (href)) + Tcl_NewStringObj (href, (domLength)strlen (href)) : Tcl_NewStringObj ("", 0))); Tcl_ListObjAppendElement (interp, cmdPtr, Tcl_NewStringObj ("", 0)); result = Tcl_EvalObjEx (interp, cmdPtr, TCL_EVAL_DIRECT | TCL_EVAL_GLOBAL); @@ -5825,15 +5826,15 @@ Tcl_DStringAppend (&dStr, href, -1); Tcl_DStringAppend (&dStr, "\":\n", -1); str = Tcl_GetStringResult (interp); if (str[0] == '\0') { Tcl_DStringAppend (&dStr, "At line ", -1); - sprintf (s, "%" TCL_LL_MODIFIER "d", + sprintf (s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber (parser)); Tcl_DStringAppend (&dStr, s, -1); Tcl_DStringAppend (&dStr, " character ", -1); - sprintf (s, "%" TCL_LL_MODIFIER "d", + sprintf (s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber (parser)); Tcl_DStringAppend (&dStr, s, -1); Tcl_DStringAppend (&dStr, ": ", 2); Tcl_DStringAppend (&dStr, XML_ErrorString (XML_GetErrorCode(parser)), -1); Index: generic/nodecmd.c ================================================================== --- generic/nodecmd.c +++ generic/nodecmd.c @@ -492,11 +492,11 @@ } if (type < 0 && newNode != NULL) { char buf[64]; tcldom_createNodeObj(interp, newNode, buf); - Tcl_SetObjResult(interp, Tcl_NewStringObj(buf, strlen(buf))); + Tcl_SetObjResult(interp, Tcl_NewStringObj(buf, (domLength)strlen(buf))); } if (ret == TCL_OK) doc->nodeFlags |= NEEDS_RENUMBERING; return ret; } Index: generic/schema.c ================================================================== --- generic/schema.c +++ generic/schema.c @@ -3370,11 +3370,11 @@ } if (kc->emptyFieldSetValue) { if (first) first = 0; else Tcl_DStringAppend (&dStr, ":", 1); Tcl_DStringAppend (&dStr, kc->emptyFieldSetValue, - kc->efsv_len); + (domLength)kc->efsv_len); } else { if (first) first = 0; else Tcl_DStringAppend (&dStr, ":", 1); } continue; @@ -3925,11 +3925,11 @@ expectedFlags &= ~EXPECTED_PROBE_MAYSKIP; } if (mayskip) break; } if (probeMayskip) break; - Tcl_CreateHashEntry (seenCPs, ic, &hnew); + Tcl_CreateHashEntry (seenCPs, (char *)ic, &hnew); if (hnew) { se1 = getStackElement (sdata, ic); mayskip = getNextExpectedWorker (sdata, se1, interp, seenCPs, rObj, expectedFlags); @@ -4014,11 +4014,11 @@ if (recursivePattern (se, jc)) { break; } /* fall through */ case SCHEMA_CTYPE_INTERLEAVE: - Tcl_CreateHashEntry (seenCPs, jc, &hnew); + Tcl_CreateHashEntry (seenCPs, (char *)jc, &hnew); if (hnew) { se1 = getStackElement (sdata, jc); mayskip = getNextExpectedWorker ( sdata, se1, interp, seenCPs, rObj, expectedFlags @@ -4200,11 +4200,12 @@ int objc, Tcl_Obj *const objv[] ) { int methodIndex, expectedFlags; - Tcl_WideInt line, column, byteIndex; + XML_Size line, column; + XML_Index byteIndex; Tcl_HashEntry *h; SchemaCP *cp; SchemaValidationStack *se; void *ns; Tcl_Obj *rObj; @@ -4537,38 +4538,38 @@ break; case m_line: if (!sdata->parser && !sdata->node) break; if (sdata->parser) { - SetLongResult (XML_GetCurrentLineNumber (sdata->parser)); + SetLongResult ((domLength)XML_GetCurrentLineNumber (sdata->parser)); break; } if (domGetLineColumn(sdata->node, &line, &column, &byteIndex) < 0) break; - SetLongResult (line); + SetLongResult ((domLength)line); break; case m_column: if (!sdata->parser && !sdata->node) break; if (sdata->parser) { - SetLongResult (XML_GetCurrentColumnNumber (sdata->parser)); + SetLongResult ((domLength)XML_GetCurrentColumnNumber (sdata->parser)); break; } if (domGetLineColumn(sdata->node, &line, &column, &byteIndex) < 0) break; - SetLongResult (column); + SetLongResult ((domLength)column); break; case m_byteIndex: if (!sdata->parser && !sdata->node) break; if (sdata->parser) { - SetLongResult (XML_GetCurrentByteIndex (sdata->parser)); + SetLongResult ((domLength)XML_GetCurrentByteIndex (sdata->parser)); break; } if (domGetLineColumn(sdata->node, &line, &column, &byteIndex) < 0) break; - SetLongResult (byteIndex); + SetLongResult ((domLength)byteIndex); break; case m_domNode: if (!sdata->node) break; /* We distinguish between calls from reportCmd and others @@ -4630,12 +4631,12 @@ { Tcl_Obj *resultObj; char sl[50], sc[50]; resultObj = Tcl_NewObj (); - sprintf(sl, "%" TCL_LL_MODIFIER "d", XML_GetCurrentLineNumber(parser)); - sprintf(sc, "%" TCL_LL_MODIFIER "d", XML_GetCurrentColumnNumber(parser)); + sprintf(sl, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(parser)); + sprintf(sc, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(parser)); if (sdata->validationState == VALIDATION_ERROR) { Tcl_AppendStringsToObj (resultObj, "error \"", Tcl_GetStringResult (interp), "\" at line ", sl, " character ", sc, NULL); } else { @@ -4678,11 +4679,11 @@ cmdPtr = Tcl_NewStringObj(Tcl_GetString(vdata->externalentitycommandObj), -1); Tcl_IncrRefCount(cmdPtr); if (base) { Tcl_ListObjAppendElement(vdata->interp, cmdPtr, - Tcl_NewStringObj(base, strlen(base))); + Tcl_NewStringObj(base, (domLength)strlen(base))); } else { Tcl_ListObjAppendElement(vdata->interp, cmdPtr, Tcl_NewObj()); } @@ -4691,19 +4692,19 @@ and the user uses -useForeignDTD 1, the externalEntityRefHandler will be called with a systemId (and publicId and openEntityNames) == NULL. */ if (systemId) { Tcl_ListObjAppendElement(vdata->interp, cmdPtr, - Tcl_NewStringObj(systemId, strlen(systemId))); + Tcl_NewStringObj(systemId, (domLength)strlen(systemId))); } else { Tcl_ListObjAppendElement(vdata->interp, cmdPtr, Tcl_NewObj()); } if (publicId) { Tcl_ListObjAppendElement(vdata->interp, cmdPtr, - Tcl_NewStringObj(publicId, strlen(publicId))); + Tcl_NewStringObj(publicId, (domLength)strlen(publicId))); } else { Tcl_ListObjAppendElement(vdata->interp, cmdPtr, Tcl_NewObj()); } @@ -4796,16 +4797,16 @@ vdata->interp, 20, 40, XML_GetCurrentLineNumber(extparser), XML_GetCurrentColumnNumber(extparser), xmlstringstart, systemId, XML_GetCurrentByteIndex(extparser), XML_ErrorString(XML_GetErrorCode(extparser))); } else { - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(extparser)); Tcl_AppendResult(vdata->interp, ", referenced in entity \"", systemId, "\" at line ", s, " character ", NULL); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(extparser)); Tcl_AppendResult(vdata->interp, s, NULL); } keepresult = 1; result = 0; @@ -4823,29 +4824,29 @@ done = len < sizeof(buf); status = XML_Parse (extparser, buf, (int)len, done); switch (status) { case XML_STATUS_ERROR: interpResult = Tcl_GetStringResult(vdata->interp); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(extparser)); if (interpResult[0] == '\0') { Tcl_ResetResult (vdata->interp); Tcl_AppendResult( vdata->interp, "error \"", XML_ErrorString(XML_GetErrorCode(extparser)), "\" in entity \"", systemId, "\" at line ", s, " character ", NULL ); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(extparser)); Tcl_AppendResult(vdata->interp, s, NULL); } else { Tcl_AppendResult( vdata->interp, ", referenced in entity \"", systemId, "\" at line ", s, " character ", NULL ); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(extparser)); Tcl_AppendResult(vdata->interp, s, NULL); } result = 0; keepresult = 1; Index: generic/tcldom.c ================================================================== --- generic/tcldom.c +++ generic/tcldom.c @@ -218,11 +218,11 @@ static void UpdateStringOfTdomNode(Tcl_Obj *objPtr); static int SetTdomNodeFromAny(Tcl_Interp *interp, Tcl_Obj *objPtr); -const Tcl_ObjType tdomNodeType = { +Tcl_ObjType tdomNodeType = { "tdom-node", NULL, NULL, UpdateStringOfTdomNode, SetTdomNodeFromAny @@ -438,11 +438,11 @@ { char nodeName[80]; domLength len; NODE_CMD(nodeName, objPtr->internalRep.otherValuePtr); - len = strlen(nodeName); + len = (domLength)strlen(nodeName); objPtr->bytes = (ckalloc((unsigned char) len+1)); memcpy(objPtr->bytes, nodeName, len+1); objPtr->length = len; } @@ -1472,11 +1472,11 @@ Tcl_Interp *interp = (Tcl_Interp *) clientData; *offset = 0; varValue = Tcl_ParseVar(interp, strToParse, &termPtr); if (varValue) { - *offset = termPtr - strToParse; + *offset = (domLength)(termPtr - strToParse); /* If strToParse start with a single '$' without a following * var name (according to Tcl var name rules), Tcl_ParseVar() * doesn't report a parsing error but returns just a pointer * to a static string "$". */ if (*offset == 1) { @@ -2354,17 +2354,17 @@ AP(*pc); } } } if (b >= bLimit) { - writeChars(xmlString, chan, buf, b - buf); + writeChars(xmlString, chan, buf, (domLength)(b - buf)); b = buf; } pc++; } if (b > buf) { - writeChars(xmlString, chan, buf, b - buf); + writeChars(xmlString, chan, buf, (domLength)(b - buf)); } } /*---------------------------------------------------------------------------- | tcldom_tolower @@ -2679,19 +2679,19 @@ if (i >= ((domTextNode*)node)->valueLength) break; if (*p == ']') { p++; i++; if (i >= ((domTextNode*)node)->valueLength) break; if (*p == '>') { - writeChars(xmlString, chan, start, p-start); + writeChars(xmlString, chan, start, (domLength)(p-start)); writeChars(xmlString, chan, "]]>", 13); start = p+1; } } } p++; i++; } - writeChars(xmlString, chan, start, p-start); + writeChars(xmlString, chan, start, (domLength)(p-start)); writeChars(xmlString, chan, "]]>", 3); } else { if (node->nodeFlags & DISABLE_OUTPUT_ESCAPING) { writeChars(xmlString, chan, ((domTextNode*)node)->nodeValue, ((domTextNode*)node)->valueLength); @@ -2944,16 +2944,16 @@ pc++; } } } if (b >= bLimit) { - writeChars(jstring, chan, buf, b - buf); + writeChars(jstring, chan, buf, (domLength)(b - buf)); b = buf; } } AP('"'); - writeChars(jstring, chan, buf, b - buf); + writeChars(jstring, chan, buf, (domLength)(b - buf)); } static void tcldom_childrenAsJSON ( Tcl_Obj *jstring, @@ -4891,11 +4891,12 @@ char tmp[200], prefix[MAX_PREFIX_LEN], *method, *nodeName, *str, *attr_name, *attr_val, *filter; const char *localName, *uri, *nsStr; int result, methodIndex, i; domLength length; - Tcl_WideInt line, column, byteIndex; + XML_Size line, column; + XML_Index byteIndex; int nsIndex, bool, hnew, legacy, jsonType; Tcl_Obj *namePtr, *resultPtr; Tcl_Obj *mobjv[MAX_REWRITE_ARGS], *storedErrMsg; Tcl_CmdInfo cmdInfo; Tcl_HashEntry *h; @@ -5849,29 +5850,29 @@ CheckArgs(2,2,2,""); if (domGetLineColumn(node, &line, &column, &byteIndex) < 0) { SetResult("no line/column information available!"); return TCL_ERROR; } - SetLongResult(line); + SetLongResult((domLength)line); break; case m_getColumn: CheckArgs(2,2,2,""); if (domGetLineColumn (node, &line, &column, &byteIndex) < 0) { SetResult("no line/column information available!"); return TCL_ERROR; } - SetLongResult(column); + SetLongResult((domLength)column); break; case m_getByteIndex: CheckArgs(2,2,2,""); if (domGetLineColumn (node, &line, &column, &byteIndex) < 0) { SetResult("no position information available!"); return TCL_ERROR; } - SetLongResult(byteIndex); + SetLongResult((domLength)byteIndex); break; case m_getBaseURI: CheckArgs(2,2,2,""); /* fall through */ @@ -6917,15 +6918,15 @@ * line/column information is given. */ void tcldom_reportErrorLocation ( Tcl_Interp *interp, int before, int after, - domLength line, - domLength column, + XML_Size line, + XML_Size column, char *xmlstring, const char *entity, - domLength byteIndex, + XML_Index byteIndex, const char *errStr ) { char s[200], sb[25], sl[25], sc[25]; char *d = NULL, *buf; @@ -6941,23 +6942,23 @@ Tcl_AppendResult (interp, "error \"", errStr, "\"", NULL); if (entity) { Tcl_AppendResult (interp, " in entity \"", entity, "\"", NULL); } if (line) { - sprintf(sl, "%" TCL_SIZE_MODIFIER "d", line); - sprintf(sc, domLengthConversion, column); + sprintf(sl, "%" TDOM_LS_MODIFIER "d", line); + sprintf(sc, "%" TDOM_LS_MODIFIER "d", column); Tcl_AppendResult (interp, " at line ", sl, " character ", sc, NULL); } else { - sprintf(sb, domLengthConversion, byteIndex); + sprintf(sb, "%" TDOM_LS_MODIFIER "d", byteIndex); Tcl_AppendResult (interp, " at position ", sb, NULL); } if (xmlstring) { Tcl_AppendResult (interp, "\n\"", NULL); ind = 0; buf[0] = '\0'; - for (i = (byteIndex < before ? 0 : byteIndex - before); + for (i = (byteIndex < before ? 0 : (domLength)(byteIndex - before)); i <= byteIndex; i++) { buf[ind] = xmlstring[i]; ind++; } @@ -6964,11 +6965,11 @@ buf[ind] = '\0'; Tcl_AppendResult(interp, buf, " <--Error-- ", NULL); ind = 0; buf[0] = '\0'; if (xmlstring[byteIndex]) { - for (i = byteIndex + 1; i < byteIndex + after; i++) { + for (i = (domLength)(byteIndex + 1); i < (domLength)(byteIndex + after); i++) { if (!xmlstring[i]) { break; } buf[ind] = xmlstring[i]; ind++; @@ -7571,15 +7572,15 @@ * error, there was a parsing error. Because the * interp has already an error msg, that parsing * error was in an external entity. Therefore, we * just add the place of the referencing entity in * the main document.*/ - sprintf(sl, "%" TCL_LL_MODIFIER "d", + sprintf(sl, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(parser)); Tcl_AppendResult(interp, ", referenced at line ", sl, NULL); - sprintf(sc, "%" TCL_LL_MODIFIER "d", + sprintf(sc, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(parser)); Tcl_AppendResult(interp, " character ", sc, NULL); } } XML_ParserFree(parser); Index: generic/tcldom.h ================================================================== --- generic/tcldom.h +++ generic/tcldom.h @@ -84,15 +84,15 @@ void tcldom_reportErrorLocation ( Tcl_Interp *interp, int before, int after, - domLength line, - domLength column, + XML_Size line, + XML_Size column, char *xmlstring, const char *entity, - domLength byteIndex, + XML_Index byteIndex, const char *errStr ); #ifdef __cplusplus } Index: generic/tclexpat.c ================================================================== --- generic/tclexpat.c +++ generic/tclexpat.c @@ -1122,16 +1122,16 @@ if (expat->status == ERROR_IN_EXTREFHANDLER) { Tcl_SetObjResult (interp, expat->result); } else { Tcl_ResetResult(interp); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(expat->parser)); Tcl_AppendResult(interp, "error \"", XML_ErrorString(XML_GetErrorCode(expat->parser)), "\" at line ", s, " character ", NULL); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(expat->parser)); Tcl_AppendResult(interp, s, NULL); } if (bufObj) { Tcl_DecrRefCount (bufObj); @@ -2522,12 +2522,12 @@ if (atList == NULL) { atList = Tcl_NewListObj(0, NULL); Tcl_IncrRefCount (atList); for (atPtr = atts; atPtr[0] && atPtr[1]; atPtr += 2) { - Tcl_ListObjAppendElement(expat->interp, atList, Tcl_NewStringObj((char *)atPtr[0], strlen(atPtr[0]))); - Tcl_ListObjAppendElement(expat->interp, atList, Tcl_NewStringObj((char *)atPtr[1], strlen(atPtr[1]))); + Tcl_ListObjAppendElement(expat->interp, atList, Tcl_NewStringObj((char *)atPtr[0], (domLength)strlen(atPtr[0]))); + Tcl_ListObjAppendElement(expat->interp, atList, Tcl_NewStringObj((char *)atPtr[1], (domLength)strlen(atPtr[1]))); } vector[2] = atList; } if (activeTclHandlerSet->elementstartObjProc != NULL) { @@ -2949,13 +2949,13 @@ if (!expat->cdata) { expat->cdata = Tcl_NewObj(); Tcl_IncrRefCount (expat->cdata); if (expat->keepTextStart) { if (!expat->cdataStartLine) { - expat->cdataStartLine = XML_GetCurrentLineNumber (expat->parser); - expat->cdataStartColumn = XML_GetCurrentColumnNumber (expat->parser); - expat->cdataStartByteIndex = XML_GetCurrentByteIndex (expat->parser); + expat->cdataStartLine = (domLength)XML_GetCurrentLineNumber (expat->parser); + expat->cdataStartColumn = (domLength)XML_GetCurrentColumnNumber (expat->parser); + expat->cdataStartByteIndex = (domLength)XML_GetCurrentByteIndex (expat->parser); } } } Tcl_AppendToObj (expat->cdata, s, len); return; @@ -3143,12 +3143,12 @@ cmdPtr = Tcl_DuplicateObj(activeTclHandlerSet->picommand); Tcl_IncrRefCount(cmdPtr); Tcl_Preserve((ClientData) expat->interp); - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)target, strlen(target))); - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)data, strlen(data))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)target, (domLength)strlen(target))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)data, (domLength)strlen(data))); result = Tcl_EvalObjEx(expat->interp, cmdPtr, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT); Tcl_DecrRefCount(cmdPtr); Tcl_Release((ClientData) expat->interp); @@ -3313,11 +3313,11 @@ cmdPtr = Tcl_DuplicateObj(activeTclHandlerSet->entityDeclCommand); Tcl_IncrRefCount(cmdPtr); Tcl_Preserve((ClientData) expat->interp); - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)entityname, strlen(entityname))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)entityname, (domLength)strlen(entityname))); Tcl_ListObjAppendElement (expat->interp, cmdPtr, Tcl_NewIntObj (is_param)); if (value == NULL) { Tcl_ListObjAppendElement (expat->interp, cmdPtr, Tcl_NewListObj (0, NULL)); } else { @@ -3325,26 +3325,26 @@ } if (base == NULL) { Tcl_ListObjAppendElement (expat->interp, cmdPtr, Tcl_NewListObj (0, NULL)); } else { - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)base, strlen(base))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)base, (domLength)strlen(base))); } if (systemId == NULL) { Tcl_ListObjAppendElement (expat->interp, cmdPtr, Tcl_NewListObj (0, NULL)); } else { - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)systemId, strlen(systemId))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)systemId, (domLength)strlen(systemId))); } if (publicId == NULL) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewListObj(0, NULL)); } else { - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)publicId, strlen(publicId))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)publicId, (domLength)strlen(publicId))); } if (notationName == NULL) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewListObj(0, NULL)); } else { - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)notationName, strlen(notationName))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)notationName, (domLength)strlen(notationName))); } result = Tcl_EvalObjEx(expat->interp, cmdPtr, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT); Tcl_DecrRefCount(cmdPtr); @@ -3425,21 +3425,21 @@ cmdPtr = Tcl_DuplicateObj(activeTclHandlerSet->notationcommand); Tcl_IncrRefCount(cmdPtr); Tcl_Preserve((ClientData) expat->interp); - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)notationName, strlen(notationName))); - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)base, strlen(base))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)notationName, (domLength)strlen(notationName))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)base, (domLength)strlen(base))); if (systemId == NULL) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewListObj(0, NULL)); } else { - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)systemId, strlen(systemId))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)systemId, (domLength)strlen(systemId))); } if (publicId == NULL) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewListObj(0, NULL)); } else { - Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)publicId, strlen(publicId))); + Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj((char *)publicId, (domLength)strlen(publicId))); } result = Tcl_EvalObjEx(expat->interp, cmdPtr, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT); Tcl_DecrRefCount(cmdPtr); @@ -3575,27 +3575,27 @@ Tcl_IncrRefCount(cmdPtr); Tcl_Preserve((ClientData) expat->interp); if (base) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)base, strlen(base))); + Tcl_NewStringObj((char *)base, (domLength)strlen(base))); } else { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj("", 0)); } if (systemId) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)systemId, strlen(systemId))); + Tcl_NewStringObj((char *)systemId, (domLength)strlen(systemId))); } else { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj("", 0)); } if (publicId) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)publicId, strlen(publicId))); + Tcl_NewStringObj((char *)publicId, (domLength)strlen(publicId))); } else { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj("", 0)); } @@ -3766,17 +3766,17 @@ } Tcl_DecrRefCount (resultObj); if (!result) { Tcl_ResetResult (expat->interp); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(extparser)); Tcl_AppendResult(expat->interp, "Not wellformed error \"", XML_ErrorString(XML_GetErrorCode(extparser)), "\" while parsing external entity: \n\t", systemId, "\nat line ", s, " character ", NULL); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(extparser)); Tcl_AppendResult(expat->interp, s, NULL); XML_ParserFree (extparser); expat->parser = oldparser; TclExpatHandlerResult(expat, activeTclHandlerSet, @@ -3891,11 +3891,11 @@ cmdPtr = Tcl_DuplicateObj(activeTclHandlerSet->commentCommand); Tcl_IncrRefCount(cmdPtr); Tcl_Preserve((ClientData) expat->interp); Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)data, strlen(data))); + Tcl_NewStringObj((char *)data, (domLength)strlen(data))); result = Tcl_EvalObjEx(expat->interp, cmdPtr, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT); Tcl_DecrRefCount(cmdPtr); @@ -4266,11 +4266,11 @@ } cmdPtr = Tcl_DuplicateObj(activeTclHandlerSet->elementDeclCommand); Tcl_IncrRefCount(cmdPtr); Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)name, strlen(name))); + Tcl_NewStringObj((char *)name, (domLength)strlen(name))); content = Tcl_NewListObj (0, NULL); generateModel (expat->interp, content, model); @@ -4355,22 +4355,22 @@ cmdPtr = Tcl_DuplicateObj(activeTclHandlerSet->attlistDeclCommand); Tcl_IncrRefCount(cmdPtr); Tcl_Preserve((ClientData) expat->interp); Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)elname, strlen (elname))); + Tcl_NewStringObj((char *)elname, (domLength)strlen (elname))); Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)name, strlen (name))); + Tcl_NewStringObj((char *)name, (domLength)strlen (name))); Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)type, strlen (type))); + Tcl_NewStringObj((char *)type, (domLength)strlen (type))); if (!dflt) { Tcl_ListObjAppendElement (expat->interp, cmdPtr, Tcl_NewStringObj ("", 0)); } else { Tcl_ListObjAppendElement (expat->interp, cmdPtr, - Tcl_NewStringObj ((char*)dflt, strlen (dflt))); + Tcl_NewStringObj ((char*)dflt, (domLength)strlen (dflt))); } Tcl_ListObjAppendElement (expat->interp, cmdPtr, Tcl_NewIntObj (isrequired)); result = Tcl_EvalObjEx(expat->interp, cmdPtr, @@ -4452,21 +4452,21 @@ cmdPtr = Tcl_DuplicateObj(activeTclHandlerSet->startDoctypeDeclCommand); Tcl_IncrRefCount(cmdPtr); Tcl_Preserve((ClientData) expat->interp); Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)doctypeName, strlen(doctypeName))); + Tcl_NewStringObj((char *)doctypeName, (domLength)strlen(doctypeName))); if (sysid != NULL) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)sysid, strlen(sysid))); + Tcl_NewStringObj((char *)sysid, (domLength)strlen(sysid))); } else { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj("NULL", 4)); } if (pubid != NULL) { Tcl_ListObjAppendElement(expat->interp, cmdPtr, - Tcl_NewStringObj((char *)pubid, strlen(sysid))); + Tcl_NewStringObj((char *)pubid, (domLength)strlen(sysid))); } else { Tcl_ListObjAppendElement(expat->interp, cmdPtr, Tcl_NewStringObj("NULL", 4)); } Tcl_ListObjAppendElement(expat->interp, cmdPtr, Index: generic/tclpull.c ================================================================== --- generic/tclpull.c +++ generic/tclpull.c @@ -374,17 +374,17 @@ ) { char s[255]; Tcl_ResetResult (interp); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentLineNumber(pullInfo->parser)); Tcl_AppendResult(interp, "error \"", XML_ErrorString( XML_GetErrorCode(pullInfo->parser)), "\" at line ", s, " column ", NULL); - sprintf(s, "%" TCL_LL_MODIFIER "d", + sprintf(s, "%" TDOM_LS_MODIFIER "d", XML_GetCurrentColumnNumber(pullInfo->parser)); Tcl_AppendResult(interp, s, NULL); } static void Index: generic/xmlsimple.c ================================================================== --- generic/xmlsimple.c +++ generic/xmlsimple.c @@ -401,16 +401,16 @@ tnode->nodeValue = REALLOC(tnode->nodeValue, tnode->valueLength + x - start + 1); memmove(tnode->nodeValue + tnode->valueLength, start, x - start); saved = tnode->valueLength; - tnode->valueLength += (x - start); + tnode->valueLength += (domLength)(x - start); *(tnode->nodeValue + tnode->valueLength) = 0; if (ampersandSeen) { if (!TranslateEntityRefs(tnode->nodeValue + saved, &(tnode->valueLength) )) { - RetError("Entity parsing error", (x - xml)); + RetError("Entity parsing error", (domLength)(x - xml)); } tnode->valueLength += saved; } } else { /*-------------------------------------------------------- @@ -419,11 +419,11 @@ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); - tnode->valueLength = (x - start); + tnode->valueLength = (domLength)(x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; tnode->parentNode = parent_node; if (parent_node->firstChild) { @@ -435,11 +435,11 @@ (domNode*)tnode; } if (ampersandSeen) { if (!TranslateEntityRefs(tnode->nodeValue, &(tnode->valueLength) )) { - RetError("Entity parsing error", (x - xml)); + RetError("Entity parsing error", (domLength)(x - xml)); } } } } @@ -447,27 +447,27 @@ /*------------------------------------------------------------ | read and check closing tag \-----------------------------------------------------------*/ node = parent_node; if (!parent_node) { - RetError("Syntax error",(x - xml)); + RetError("Syntax error", (domLength)(x - xml)); } parent_node = node->parentNode; pn = (char*)node->nodeName; x += 2; while (*x == *pn) { x++; pn++; } if ( *pn || (*x!='>' && !SPACE(*x) ) ) { - RetError("Unterminated element",(x - xml)); + RetError("Unterminated element", (domLength)(x - xml)); } while (SPACE(*x)) { x++; } if (*x=='>') { x++; } else { - RetError("Missing \">\"",(x - xml)-1); + RetError("Missing \">\"",((domLength)(x - xml))-1); } #ifdef TDOM_NS depth--; /* pop active namespaces */ while ( (activeNSpos >= 0) && @@ -506,11 +506,11 @@ memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = COMMENT_NODE; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; - tnode->valueLength = x - start - 4; + tnode->valueLength = (domLength)(x - start - 4); tnode->nodeValue = (char*)MALLOC(tnode->valueLength+1); memmove(tnode->nodeValue, start+4, tnode->valueLength); *(tnode->nodeValue + tnode->valueLength) = 0; if (parent_node == NULL) { if (doc->rootNode->lastChild) { @@ -531,11 +531,11 @@ parent_node->firstChild = parent_node->lastChild = (domNode*)tnode; } } x += 3; } else { - RetError("Unterminated comment",(start-xml)); + RetError("Unterminated comment",(domLength)(start-xml)); } continue; } else if (x[1]=='D' && x[2]=='O' && x[3]=='C' && x[4]=='T' && @@ -557,11 +557,12 @@ } } if (*x) { x++; } else { - RetError("Unterminated DOCTYPE definition",(start-xml)); + RetError("Unterminated DOCTYPE definition", + (domLength)(start-xml)); } continue; } else if (x[1]=='[' && x[2]=='C' && x[3]=='D' && x[4]=='A' && @@ -594,12 +595,12 @@ tnode = (domTextNode*)parent_node->lastChild; tnode->nodeValue = REALLOC(tnode->nodeValue, tnode->valueLength + x - start + 1); memmove(tnode->nodeValue + tnode->valueLength, - start, x - start); - tnode->valueLength += (x - start); + start, (x - start)); + tnode->valueLength += (domLength)(x - start); *(tnode->nodeValue + tnode->valueLength) = 0; } } else { if (!(only_whites && ignoreWhiteSpaces) && ((x - start) || keepCDATA)) { @@ -613,11 +614,11 @@ else tnode->nodeType = TEXT_NODE; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; - tnode->valueLength = (x - start); + tnode->valueLength = (domLength)(x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; if (parent_node->firstChild) { parent_node->lastChild->nextSibling = (domNode*)tnode; @@ -629,15 +630,15 @@ } } } x += 3; } else { - RetError("Unterminated CDATA definition",(start-xml) ); + RetError("Unterminated CDATA definition",(domLength)(start-xml) ); } continue; } else { - RetError("Incorrect ')) { piSep++; } *piSep = '\0'; /* temporarily terminate the string */ - pinode->targetLength = strlen(start); + pinode->targetLength = (domLength)strlen(start); pinode->targetValue = (char*)MALLOC(pinode->targetLength); memmove(pinode->targetValue, start, pinode->targetLength); *piSep = c; /* remove temporarily termination */ @@ -680,11 +681,11 @@ | extract PI data \------------------------------------------------*/ while (SPACE(*piSep)) { piSep++; } - pinode->dataLength = x - piSep; + pinode->dataLength = (domLength)(x - piSep); pinode->dataValue = (char*)MALLOC(pinode->dataLength); memmove(pinode->dataValue, piSep, pinode->dataLength); if (parent_node == NULL) { if (doc->rootNode->lastChild) { @@ -704,11 +705,11 @@ parent_node->firstChild = parent_node->lastChild = (domNode*)pinode; } } x += 2; } else { - RetError("Unterminated processing instruction(PI)",(start-xml) ); + RetError("Unterminated processing instruction(PI)",(domLength)(start-xml) ); } continue; } /*---------------------------------------------------------------- @@ -718,14 +719,14 @@ hasContent = 1; while ((c=*x)!=0 && c!='/' && c!='>' && !SPACE(c) ) { x++; } if (c==0) { - RetError("Missing \">\"",(start-xml) ); + RetError("Missing \">\"",(domLength)(start-xml) ); } if ( (x-start)==1) { - RetError("Null markup name",(start-xml) ); + RetError("Null markup name",(domLength)(start-xml) ); } *x = '\0'; /* temporarily terminate the string */ /*------------------------------------------------------ | create new DOM element node @@ -780,11 +781,11 @@ domLength nArgVal = 0; while ((c=*x)!=0 && c!='=' && c!='>' && !SPACE(c) ) { x++; } - nArgName = x - ArgName; + nArgName = (domLength)(x - ArgName); while (SPACE(*x)) { x++; } if (*x=='=') { x++; @@ -807,13 +808,13 @@ if (c=='&') { ampersandSeen = 1; } x++; } - nArgVal = x - ArgVal; + nArgVal = (domLength)(x - ArgVal); if (c==0) { - RetError("Unterminated string",(ArgVal - xml - 1) ); + RetError("Unterminated string",(domLength)(ArgVal - xml - 1)); } else { x++; } } else if (c!=0 && c!='>') { ArgVal = x; @@ -822,13 +823,13 @@ ampersandSeen = 1; } x++; } if (c==0) { - RetError("Missing \">\"",(start-xml)); + RetError("Missing \">\"",(domLength)(start-xml)); } - nArgVal = x - ArgVal; + nArgVal = (domLength)(x - ArgVal); } #ifdef TDOM_NS /*------------------------------------------------------------ @@ -851,11 +852,11 @@ memmove(attrnode->nodeValue, ArgVal, nArgVal); *(attrnode->nodeValue + nArgVal) = 0; if (ampersandSeen) { if (!TranslateEntityRefs(attrnode->nodeValue, &(attrnode->valueLength) )) { - RetError("Entity parsing error",(start-xml)); + RetError("Entity parsing error",(domLength)(start-xml)); } } if (xmlns[5] == ':') { if (domIsNamespaceInScope (activeNS, activeNSpos, @@ -912,11 +913,11 @@ memmove(attrnode->nodeValue, ArgVal, nArgVal); *(attrnode->nodeValue + nArgVal) = 0; if (ampersandSeen) { if (!TranslateEntityRefs(attrnode->nodeValue, &(attrnode->valueLength) )) { - RetError("Entity parsing error", (start - xml)); + RetError("Entity parsing error", (domLength)(start - xml)); } } if (attrList) { lastAttr->nextSibling = attrnode; } else { @@ -996,11 +997,11 @@ #endif if (*x=='/') { hasContent = 0; x++; if (*x!='>') { - RetError("Syntax Error",(x - xml - 1) ); + RetError("Syntax Error",(domLength)(x - xml - 1)); } #ifdef TDOM_NS /* pop active namespaces */ while ( (activeNSpos >= 0) && (activeNS[activeNSpos].depth == depth) ) @@ -1031,11 +1032,11 @@ } if (forest && parent_node == parent) { FREE ((char *) activeNS); return TCL_OK; } - RetError("Unexpected end",(x - xml) ); + RetError("Unexpected end",(domLength)(x - xml)); } /* XML_SimpleParse */ Index: tdom.m4 ================================================================== --- tdom.m4 +++ tdom.m4 @@ -711,45 +711,9 @@ AC_SUBST(TDOM_VERSION) AC_SUBST(TDOM_STUB_LIB_SPEC) AC_SUBST(TDOM_SRC_DIR) ]) -#------------------------------------------------------------------------ -# TDOM_EXPORT_CONFIG -- -# -# Define the data to insert into the ${PACKAGE_NAME}Config.sh file -# -# Arguments: -# None -# -# Results: -# Subst the following vars: -# -#------------------------------------------------------------------------ - -AC_DEFUN(TDOM_EXPORT_CONFIG, [ - #-------------------------------------------------------------------- - # These are for ${PACKAGE_NAME}Config.sh - #-------------------------------------------------------------------- - - # pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib) - eval pkglibdir="[$]{libdir}/${PACKAGE_NAME}${PACKAGE_VERSION}" - if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then - eval PKG_STUB_LIB_FLAG="-l${PACKAGE_NAME}stub${PACKAGE_VERSION}" - else - eval PKG_STUB_LIB_FLAG="-l${PACKAGE_NAME}stub`echo ${PACKAGE_VERSION} | tr -d .`" - fi - PKG_BUILD_STUB_LIB_SPEC="-L`pwd` ${PKG_STUB_LIB_FLAG}" - PKG_STUB_LIB_SPEC="-L${pkglibdir} ${PKG_STUB_LIB_FLAG}" - PKG_BUILD_STUB_LIB_PATH="`pwd`/[$]{PKG_STUB_LIB_FILE}" - PKG_STUB_LIB_PATH="${pkglibdir}/[$]{PKG_STUB_LIB_FILE}" - - AC_SUBST(PKG_BUILD_STUB_LIB_SPEC) - AC_SUBST(PKG_STUB_LIB_SPEC) - AC_SUBST(PKG_BUILD_STUB_LIB_PATH) - AC_SUBST(PKG_STUB_LIB_PATH) -]) - # Local Variables: # mode: autoconf # End: # EOF Index: tdomConfig.sh.in ================================================================== --- tdomConfig.sh.in +++ tdomConfig.sh.in @@ -31,27 +31,27 @@ # # String to pass to linker to pick up the tDOM library from # its build directory. # -TDOM_BUILD_STUB_LIB_SPEC='@PKG_BUILD_STUB_LIB_SPEC@' +TDOM_BUILD_STUB_LIB_SPEC='@tdom_BUILD_STUB_LIB_SPEC@' # # String to pass to linker to pick up the tDOM library from # its installed directory. # -TDOM_STUB_LIB_SPEC='@PKG_STUB_LIB_SPEC@' +TDOM_STUB_LIB_SPEC='@tdom_STUB_LIB_SPEC@' # String to pass to linker to pick up the TDOM stub library from its # build directory. # -TDOM_BUILD_STUB_LIB_PATH='@PKG_BUILD_STUB_LIB_PATH@' +TDOM_BUILD_STUB_LIB_PATH='@tdom_BUILD_STUB_LIB_PATH@' # String to pass to linker to pick up the TDOM stub library from its # installed directory. # -TDOM_STUB_LIB_PATH='@PKG_STUB_LIB_PATH@' +TDOM_STUB_LIB_PATH='@tdom_STUB_LIB_PATH@' # # Location of the top-level source directories from which tDOM # was built. This is the directory that contains generic, unix, # win etc. If tDOM was compiled in a different place than the