Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Made code base C23 compliant. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
2db2c391674a7cc3594b504d3dbceda7 |
User & Date: | rolf 2025-02-24 17:14:07 |
Context
2025-02-24
| ||
22:31 | Some documentation improvements. Leaf check-in: 3f550753d8 user: rolf tags: trunk | |
17:14 | Made code base C23 compliant. check-in: 2db2c39167 user: rolf tags: trunk | |
17:10 | Again more variable renames because of clashes with new C23 keywords. Closed-Leaf check-in: 7c9109a481 user: rolf tags: c23 | |
2025-02-16
| ||
01:37 | Added the node creation command flag -notempty also to tdom::fsnewNode. check-in: c7c21fe726 user: rolf tags: trunk | |
Changes
Changes to generic/datatypes.c.
︙ | ︙ | |||
223 224 225 226 227 228 229 | tclImpl ( Tcl_Interp *interp, void *constraintData, char *text ) { tclTCData *tcdata = constraintData; | | | | | 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 | tclImpl ( Tcl_Interp *interp, void *constraintData, char *text ) { tclTCData *tcdata = constraintData; int result, boolVal; tcdata->evalStub[tcdata->nrArg-1] = Tcl_NewStringObj(text, -1); Tcl_IncrRefCount (tcdata->evalStub[tcdata->nrArg-1]); tcdata->sdata->currentEvals++; result = Tcl_EvalObjv (interp, tcdata->nrArg, tcdata->evalStub, TCL_EVAL_GLOBAL); tcdata->sdata->currentEvals--; Tcl_DecrRefCount (tcdata->evalStub[tcdata->nrArg-1]); if (result != TCL_OK) { tcdata->sdata->evalError = 1; return 0; } result = Tcl_GetBooleanFromObj (interp, Tcl_GetObjResult (interp), &boolVal); if (result != TCL_OK) { return 0; } if (boolVal) { return 1; } return 0; } static int tclTCObjCmd ( |
︙ | ︙ |
Changes to generic/dom.c.
︙ | ︙ | |||
5487 5488 5489 5490 5491 5492 5493 | ClientData UNUSED(dummy), Tcl_Interp *interp, int objc, Tcl_Obj *const objv[] ) { CHandlerSet *handlerSet; | | | 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 | ClientData UNUSED(dummy), Tcl_Interp *interp, int objc, Tcl_Obj *const objv[] ) { CHandlerSet *handlerSet; int methodIndex, result, boolVal; tdomCmdReadInfo *info; TclGenExpatInfo *expat; Tcl_Obj *newObjName = NULL; static const char *tdomMethods[] = { "enable", "getdoc", "setStoreLineColumn", |
︙ | ︙ | |||
5599 5600 5601 5602 5603 5604 5605 | info = CHandlerSetGetUserData (interp, objv[1], "tdom"); if (!info) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } Tcl_SetIntObj (Tcl_GetObjResult (interp), info->storeLineColumn); if (objc == 4) { | | | | 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 | info = CHandlerSetGetUserData (interp, objv[1], "tdom"); if (!info) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } Tcl_SetIntObj (Tcl_GetObjResult (interp), info->storeLineColumn); if (objc == 4) { if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { return TCL_ERROR; } info->storeLineColumn = boolVal; } info->tdomStatus = 1; break; case m_remove: result = CHandlerSetRemove (interp, objv[1], "tdom"); if (result == 2) { |
︙ | ︙ | |||
5654 5655 5656 5657 5658 5659 5660 | } info = handlerSet->userData; if (!info) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } Tcl_SetIntObj (Tcl_GetObjResult (interp), info->ignoreWhiteSpaces); | | | | | | | 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 | } info = handlerSet->userData; if (!info) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } Tcl_SetIntObj (Tcl_GetObjResult (interp), info->ignoreWhiteSpaces); if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { return TCL_ERROR; } info->ignoreWhiteSpaces = !boolVal; handlerSet->ignoreWhiteCDATAs = !boolVal; info->tdomStatus = 1; break; case m_keepCDATA: if (objc != 4) { Tcl_SetResult (interp, "wrong # of args for method keepCDATA.", NULL); return TCL_ERROR; } handlerSet = CHandlerSetGet (interp, objv[1], "tdom"); if (!handlerSet) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } info = handlerSet->userData; if (!info) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { return TCL_ERROR; } if (boolVal) { handlerSet->startCdataSectionCommand = tdom_startCDATA; handlerSet->endCdataSectionCommand = endCDATA; } else { handlerSet->startCdataSectionCommand = NULL; handlerSet->endCdataSectionCommand = NULL; } info->tdomStatus = 1; |
︙ | ︙ | |||
5707 5708 5709 5710 5711 5712 5713 | return TCL_ERROR; } info = handlerSet->userData; if (!info) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } | | | | | | 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 | return TCL_ERROR; } info = handlerSet->userData; if (!info) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { return TCL_ERROR; } expat = GetExpatInfo (interp, objv[1]); expat->keepTextStart = boolVal; expat->cdataStartLine = 0; break; case m_ignorexmlns: info = CHandlerSetGetUserData (interp, objv[1], "tdom"); if (!info) { Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); return TCL_ERROR; } Tcl_SetIntObj (Tcl_GetObjResult (interp), info->ignorexmlns); if (objc == 4) { if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { return TCL_ERROR; } info->ignorexmlns = boolVal; } info->tdomStatus = 1; break; } return TCL_OK; } |
Changes to generic/tcldom.c.
︙ | ︙ | |||
3174 3175 3176 3177 3178 3179 3180 | int outputFlags, int level, int inside ) { domTextNode *textNode; Tcl_Obj *valueObj; | | | 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 | int outputFlags, int level, int inside ) { domTextNode *textNode; Tcl_Obj *valueObj; int boolVal; switch (node->nodeType) { case TEXT_NODE: if (inside == JSON_OBJECT) { /* We're inside a JSON object. A text node can not be * meaningful interpreted as member of an object. Ignore * the node */ |
︙ | ︙ | |||
3211 3212 3213 3214 3215 3216 3217 | break; case JSON_FALSE: writeChars(jstring, channel, "false",5); break; case JSON_BOOLEAN: valueObj = Tcl_NewStringObj (textNode->nodeValue, textNode->valueLength); | | | | 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 | break; case JSON_FALSE: writeChars(jstring, channel, "false",5); break; case JSON_BOOLEAN: valueObj = Tcl_NewStringObj (textNode->nodeValue, textNode->valueLength); if (Tcl_GetBooleanFromObj(NULL, valueObj, &boolVal) == TCL_OK) { if (boolVal) { writeChars(jstring, channel, "true",4); } else { writeChars(jstring, channel, "false",5); } Tcl_DecrRefCount (valueObj); break; } |
︙ | ︙ | |||
3398 3399 3400 3401 3402 3403 3404 | } typedef struct { Tcl_Obj *object; Tcl_Obj *array; Tcl_Obj *null; | | | | 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 | } typedef struct { Tcl_Obj *object; Tcl_Obj *array; Tcl_Obj *null; Tcl_Obj *trueVal; Tcl_Obj *falseVal; Tcl_Obj *number; Tcl_Obj *string; } asTypedListTypes; /*---------------------------------------------------------------------------- | tcldom_treeAsTypedList |
︙ | ︙ | |||
3474 3475 3476 3477 3478 3479 3480 | } else { /* Text node */ switch (node->info) { case JSON_NULL: Tcl_ListObjAppendElement (NULL, resultObj, c->null); break; case JSON_TRUE: | | | | 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 | } else { /* Text node */ switch (node->info) { case JSON_NULL: Tcl_ListObjAppendElement (NULL, resultObj, c->null); break; case JSON_TRUE: Tcl_ListObjAppendElement (NULL, resultObj, c->trueVal); break; case JSON_FALSE: Tcl_ListObjAppendElement (NULL, resultObj, c->falseVal); break; case JSON_NUMBER: textNode = (domTextNode *)node; if (isJSONNumber (textNode->nodeValue, textNode->valueLength)) { Tcl_ListObjAppendElement(NULL, resultObj, c->number); Tcl_ListObjAppendElement( NULL, resultObj, Tcl_NewStringObj(textNode->nodeValue, |
︙ | ︙ | |||
3518 3519 3520 3521 3522 3523 3524 | Tcl_ResetResult (interp); return; } c.object = Tcl_NewStringObj ("OBJECT", 6); c.array = Tcl_NewStringObj ("ARRAY", 5); c.null = Tcl_NewStringObj ("NULL", 4); | | | | | | | | 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 | Tcl_ResetResult (interp); return; } c.object = Tcl_NewStringObj ("OBJECT", 6); c.array = Tcl_NewStringObj ("ARRAY", 5); c.null = Tcl_NewStringObj ("NULL", 4); c.trueVal = Tcl_NewStringObj ("TRUE", 4); c.falseVal = Tcl_NewStringObj ("FALSE", 5); c.number = Tcl_NewStringObj ("NUMBER", 6); c.string = Tcl_NewStringObj ("STRING", 6); Tcl_IncrRefCount (c.object); Tcl_IncrRefCount (c.array); Tcl_IncrRefCount (c.null); Tcl_IncrRefCount (c.trueVal); Tcl_IncrRefCount (c.falseVal); Tcl_IncrRefCount (c.number); Tcl_IncrRefCount (c.string); if (node->nodeType == ELEMENT_NODE && node->info == 0 && node->firstChild->nodeType == TEXT_NODE) { /* Either a value only json document or a OBJECT propertiy * element node.*/ node = node->firstChild; } Tcl_SetObjResult (interp, tcldom_treeAsTypedListWorker (node, &c)); Tcl_DecrRefCount (c.object); Tcl_DecrRefCount (c.array); Tcl_DecrRefCount (c.null); Tcl_DecrRefCount (c.trueVal); Tcl_DecrRefCount (c.falseVal); Tcl_DecrRefCount (c.number); Tcl_DecrRefCount (c.string); } /*---------------------------------------------------------------------------- | findBaseURI | |
︙ | ︙ | |||
3598 3599 3600 3601 3602 3603 3604 | Tcl_Interp *interp, int objc, Tcl_Obj *const objv[] ) { char *channelId, prefix[MAX_PREFIX_LEN]; const char *localName; | | | 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 | Tcl_Interp *interp, int objc, Tcl_Obj *const objv[] ) { char *channelId, prefix[MAX_PREFIX_LEN]; const char *localName; int indent, mode, boolVal; int outputFlags = 0; int optionIndex, cdataChild; Tcl_Obj *resultPtr, *encString = NULL; Tcl_Channel chan = (Tcl_Channel) NULL; Tcl_HashEntry *h; Tcl_DString dStr; int indentAttrs = -1; |
︙ | ︙ | |||
3714 3715 3716 3717 3718 3719 3720 | goto cleanup; } if (objc < 4) { SetResult("-doctypeDeclaration must have a boolean value " "as argument"); goto cleanup; } | | | | | | 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 | goto cleanup; } if (objc < 4) { SetResult("-doctypeDeclaration must have a boolean value " "as argument"); goto cleanup; } if (Tcl_GetBooleanFromObj(interp, objv[3], &boolVal) != TCL_OK) { goto cleanup; } if (boolVal) outputFlags |= SERIALIZE_DOCTYPE_DECLARATION; objc -= 2; objv += 2; break; case m_xmlDeclaration: if (objc < 4) { SetResult("-xmlDeclaration must have a boolean value " "as argument"); goto cleanup; } if (Tcl_GetBooleanFromObj(interp, objv[3], &boolVal) != TCL_OK) { goto cleanup; } if (boolVal) outputFlags |= SERIALIZE_XML_DECLARATION; objc -= 2; objv += 2; break; case m_encString: if (objc < 4) { SetResult("-encString must have a string " |
︙ | ︙ | |||
4931 4932 4933 4934 4935 4936 4937 | 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; XML_Size line, column; XML_Index byteIndex; | | | 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 | 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; XML_Size line, column; XML_Index byteIndex; int nsIndex, boolVal, hnew, legacy, jsonType; Tcl_Obj *namePtr, *resultPtr; Tcl_Obj *mobjv[MAX_REWRITE_ARGS], *storedErrMsg; Tcl_CmdInfo cmdInfo; Tcl_HashEntry *h; static const char *nodeMethods[] = { "firstChild", "nextSibling", "getAttribute", "nodeName", |
︙ | ︙ | |||
5943 5944 5945 5946 5947 5948 5949 | if (node->nodeType != TEXT_NODE) { SetResult("not a TEXT_NODE!"); return TCL_ERROR; } SetIntResult( (((node->nodeFlags & DISABLE_OUTPUT_ESCAPING) == 0) ? 0 : 1)); if (objc == 3) { | | | | 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 | if (node->nodeType != TEXT_NODE) { SetResult("not a TEXT_NODE!"); return TCL_ERROR; } SetIntResult( (((node->nodeFlags & DISABLE_OUTPUT_ESCAPING) == 0) ? 0 : 1)); if (objc == 3) { if (Tcl_GetBooleanFromObj(interp, objv[2], &boolVal) != TCL_OK) { return TCL_ERROR; } if (boolVal) { node->nodeFlags |= DISABLE_OUTPUT_ESCAPING; } else { node->nodeFlags &= (~DISABLE_OUTPUT_ESCAPING); } } break; |
︙ | ︙ | |||
5988 5989 5990 5991 5992 5993 5994 | str = xpathGetStringValue(node, &length); Tcl_SetStringObj(Tcl_GetObjResult(interp), str, length); FREE (str); return TCL_OK; case m_normalize: CheckArgs (2,3,2, "?-forXPath?"); | | | | | 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 | str = xpathGetStringValue(node, &length); Tcl_SetStringObj(Tcl_GetObjResult(interp), str, length); FREE (str); return TCL_OK; case m_normalize: CheckArgs (2,3,2, "?-forXPath?"); boolVal = 0; if (objc == 3) { if (strcmp (Tcl_GetString(objv[2]), "-forXPath") == 0) { boolVal = 1; } else { SetResult("unknown option! Options: ?-forXPath?"); return TCL_ERROR; } } domNormalize (node, boolVal, tcldom_deleteNode, interp); return TCL_OK; case m_jsonType: CheckArgs (2,3,2, "?jsonType?"); if (node->nodeType != ELEMENT_NODE && node->nodeType != TEXT_NODE) { SetResult("Only element and text nodes may have a JSON type."); |
︙ | ︙ | |||
6071 6072 6073 6074 6075 6076 6077 | { GetTcldomDATA; domDeleteInfo * dinfo; domDocument * doc; char * method, *tag, *data, *target, *uri, tmp[100]; char * str, *docName, *errMsg; | | | 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 | { GetTcldomDATA; domDeleteInfo * dinfo; domDocument * doc; char * method, *tag, *data, *target, *uri, tmp[100]; char * str, *docName, *errMsg; int methodIndex, result, i, nsIndex, forXPath, boolVal; int setDocumentElement = 0, restoreDomCreateCmdMode = 0; domLength data_length, target_length; domNode * n; Tcl_CmdInfo cmdInfo; Tcl_Obj * mobjv[MAX_REWRITE_ARGS], *storedErrMsg; static const char *docMethods[] = { |
︙ | ︙ | |||
6418 6419 6420 6421 6422 6423 6424 | CheckArgs(2,3,2, "?boolean?"); if (doc->nodeFlags & OUTPUT_DEFAULT_INDENT) { SetBooleanResult (1); } else { SetBooleanResult(0); } if (objc == 3) { | | | | 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 | CheckArgs(2,3,2, "?boolean?"); if (doc->nodeFlags & OUTPUT_DEFAULT_INDENT) { SetBooleanResult (1); } else { SetBooleanResult(0); } if (objc == 3) { if (Tcl_GetBooleanFromObj (interp, objv[2], &boolVal) != TCL_OK) { return TCL_ERROR; } if (boolVal) { doc->nodeFlags |= OUTPUT_DEFAULT_INDENT; } else { doc->nodeFlags &= ~OUTPUT_DEFAULT_INDENT; } } return TCL_OK; |
︙ | ︙ | |||
7829 7830 7831 7832 7833 7834 7835 | Tcl_Obj * const objv[] ) { GetTcldomDATA; char * method, tmp[300], *string, *option, *replacement; | | | 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 | Tcl_Obj * const objv[] ) { GetTcldomDATA; char * method, tmp[300], *string, *option, *replacement; int methodIndex, result, i, boolVal, changed; domLength repllen; Tcl_CmdInfo cmdInfo; Tcl_Obj * mobjv[MAX_REWRITE_ARGS], *newObj, *storedErrMsg; Tcl_DString cleardString, escapedStr; static const char *domMethods[] = { "createDocument", "createDocumentNS", "createNodeCmd", |
︙ | ︙ | |||
7990 7991 7992 7993 7994 7995 7996 | return TCL_OK; } break; #endif case m_setStoreLineColumn: if (objc == 3) { | | | | | | | | 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 | return TCL_OK; } break; #endif case m_setStoreLineColumn: if (objc == 3) { if (Tcl_GetBooleanFromObj(interp, objv[2], &boolVal) != TCL_OK) { return TCL_ERROR; } TcldomDATA(storeLineColumn) = boolVal; } SetBooleanResult(TcldomDATA(storeLineColumn)); return TCL_OK; case m_setNameCheck: if (objc == 3) { if (Tcl_GetBooleanFromObj(interp, objv[2], &boolVal) != TCL_OK) { return TCL_ERROR; } TcldomDATA(dontCheckName) = !boolVal; } SetBooleanResult(!TcldomDATA(dontCheckName)); return TCL_OK; case m_setTextCheck: if (objc == 3) { if (Tcl_GetBooleanFromObj(interp, objv[2], &boolVal) != TCL_OK) { return TCL_ERROR; } TcldomDATA(dontCheckCharData) = !boolVal; } SetBooleanResult(!TcldomDATA(dontCheckCharData)); return TCL_OK; case m_setObjectCommands: if (objc == 3) { if (Tcl_GetIndexFromObj (interp, objv[2], nodeModeValues, |
︙ | ︙ |
Changes to generic/tclexpat.c.
︙ | ︙ | |||
1263 1264 1265 1266 1267 1268 1269 | (char *) NULL }; enum paramEntityParsingValues { EXPAT_PARAMENTITYPARSINGALWAYS, EXPAT_PARAMENTITYPARSINGNEVER, EXPAT_PARAMENTITYPARSINGNOTSTANDALONE }; | | | 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 | (char *) NULL }; enum paramEntityParsingValues { EXPAT_PARAMENTITYPARSINGALWAYS, EXPAT_PARAMENTITYPARSINGNEVER, EXPAT_PARAMENTITYPARSINGNOTSTANDALONE }; int optionIndex, value, boolVal; Tcl_Obj *const *objPtr = objv; Tcl_CmdInfo cmdInfo; int rc; domLength len; char *handlerSetName = NULL; TclHandlerSet *tmpTclHandlerSet, *activeTclHandlerSet = NULL; Tcl_UniChar uniChar; |
︙ | ︙ | |||
1392 1393 1394 1395 1396 1397 1398 | expat->activationThreshold = activationThreshold; } #endif break; case EXPAT_FINAL: /* -final */ | | | | 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 | expat->activationThreshold = activationThreshold; } #endif break; case EXPAT_FINAL: /* -final */ if (Tcl_GetBooleanFromObj(interp, objPtr[1], &boolVal) != TCL_OK) { return TCL_ERROR; } expat->final = boolVal; break; case EXPAT_BASE: /* -baseurl */ if (expat->baseURI) { Tcl_DecrRefCount (expat->baseURI); expat->baseURI = NULL; |
︙ | ︙ | |||
1589 1590 1591 1592 1593 1594 1595 | if (activeTclHandlerSet->ignoreWhiteCDATAs) { expat->needWSCheck = 1; } break; case EXPAT_USEFOREIGNDTD: /* -useForeignDTD */ | | | | | | 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 | if (activeTclHandlerSet->ignoreWhiteCDATAs) { expat->needWSCheck = 1; } break; case EXPAT_USEFOREIGNDTD: /* -useForeignDTD */ if (Tcl_GetBooleanFromObj (interp, objPtr[1], &boolVal) != TCL_OK) { return TCL_ERROR; } if (expat->parser) { /* Cannot be changed after parsing as started (which is kind of understandable). */ if (XML_UseForeignDTD (expat->parser, (unsigned char)boolVal) != XML_ERROR_NONE) { expat->useForeignDTD = boolVal; } } else { expat->useForeignDTD = boolVal; } break; case EXPAT_COMMENTCMD: /* -commentcommand */ /* [email protected] */ CheckDefaultTclHandlerSet; if (activeTclHandlerSet->commentCommand != NULL) { |
︙ | ︙ | |||
1772 1773 1774 1775 1776 1777 1778 | } tmpTclHandlerSet->nextHandlerSet = activeTclHandlerSet; } } break; case EXPAT_NOEXPAND: | | | | | | | | | 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 | } tmpTclHandlerSet->nextHandlerSet = activeTclHandlerSet; } } break; case EXPAT_NOEXPAND: if (Tcl_GetBooleanFromObj (interp, objPtr[1], &boolVal) != TCL_OK) { return TCL_ERROR; } if (boolVal) { XML_SetDefaultHandler( expat->parser, TclGenExpatDefaultHandler); } else { XML_SetDefaultHandlerExpand( expat->parser, TclGenExpatDefaultHandler); } expat->noexpand = boolVal; break; case EXPAT_FASTCALL: if (Tcl_GetBooleanFromObj (interp, objPtr[1], &boolVal) != TCL_OK) { return TCL_ERROR; } CheckDefaultTclHandlerSet; activeTclHandlerSet->fastCall = boolVal; break; case EXPAT_KEEPTEXTSTART: if (Tcl_GetBooleanFromObj(interp, objPtr[1], &boolVal) != TCL_OK) { return TCL_ERROR; } expat->keepTextStart = boolVal; break; #ifndef TDOM_NO_SCHEMA case EXPAT_VALIDATECMD: schemacmd = Tcl_GetString (objv[1]); if (schemacmd[0] == '\0') { if (expat->sdata) { |
︙ | ︙ |