Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merged from trunk. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | schema |
Files: | files | file ages | folders |
SHA3-256: |
05a6175f4899bb87acc42dd873289604 |
User & Date: | rolf 2019-05-09 18:33:00.807 |
Context
2019-05-09
| ||
18:34 | Test added. check-in: 968b411fd1 user: rolf tags: schema | |
18:33 | Merged from trunk. check-in: 05a6175f48 user: rolf tags: schema | |
18:31 | Reworked (and renamed) selectNodesNamespaces to make it usable from elsewhere and made it public. check-in: 4ca5de8963 user: rolf tags: trunk | |
2019-05-06
| ||
23:18 | Added text constrain cmd base64. check-in: 68cd47d57c user: rolf tags: schema | |
Changes
Changes to generic/tcldom.c.
︙ | ︙ | |||
3944 3945 3946 3947 3948 3949 3950 | return TCL_OK; } /*---------------------------------------------------------------------------- | selectNodesNamespaces | \---------------------------------------------------------------------------*/ | | | | > > < < < < < < < | < < < < < < | < < < < < < < | < < < | < | > > | < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 | return TCL_OK; } /*---------------------------------------------------------------------------- | selectNodesNamespaces | \---------------------------------------------------------------------------*/ int tcldom_prefixNSlist ( char ***prefixnsPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], const char *methodName ) { char **prefixns = *prefixnsPtr; int len, i, result; Tcl_Obj *objPtr, *listPtr; CheckArgs (2,3,2, "?prefixUriList?"); i = 0; if (objc == 2) { if (!prefixns) return TCL_OK; listPtr = Tcl_NewListObj (0, NULL); i = 0; while (prefixns[i]) { Tcl_ListObjAppendElement ( interp, listPtr, Tcl_NewStringObj (prefixns[i], -1) ); i++; } Tcl_SetObjResult (interp, listPtr); return TCL_OK; } result = Tcl_ListObjLength (interp, objv[2], &len); if (result != TCL_OK || (len % 2) != 0) { SetResult3 ("The optional argument to the ", methodName, " method must be a 'prefix namespace' pairs list"); return TCL_ERROR; } if (prefixns) { while (prefixns[i]) { FREE (prefixns[i]); i++; } } if (len == 0) { FREE (prefixns); *prefixnsPtr = NULL; return TCL_OK; } if (i < len + 1) { if (prefixns) FREE (prefixns); prefixns = MALLOC (sizeof (char*) * (len+1)); *prefixnsPtr = prefixns; } for (i = 0; i < len; i++) { Tcl_ListObjIndex (interp, objv[2], i, &objPtr); prefixns[i] = tdomstrdup (Tcl_GetString (objPtr)); } prefixns[len] = NULL; Tcl_SetObjResult (interp, objv[2]); return TCL_OK; } /*---------------------------------------------------------------------------- | renameNodes | \---------------------------------------------------------------------------*/ |
︙ | ︙ | |||
5923 5924 5925 5926 5927 5928 5929 | SetResult("DOCUMENT_NODE"); return TCL_OK; case m_cdataSectionElements: return cdataSectionElements (doc, interp, objc, objv); case m_selectNodesNamespaces: | > | | | 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 | SetResult("DOCUMENT_NODE"); return TCL_OK; case m_cdataSectionElements: return cdataSectionElements (doc, interp, objc, objv); case m_selectNodesNamespaces: return tcldom_prefixNSlist (&(doc->prefixNSMappings), interp, objc, objv, "selectNodesNamespaces"); case m_renameNode: return renameNodes (doc, interp, objc, objv); case m_deleteXPathCache: return deleteXPathCache (doc, interp, objc, objv); case m_appendChild: |
︙ | ︙ |
Changes to generic/tcldom.h.
︙ | ︙ | |||
50 51 52 53 54 55 56 | int tcldom_nameCheck(Tcl_Interp *interp, char *name, char *nameType, int isFQName); void tcldom_createNodeObj(Tcl_Interp * interp, domNode *node, char *objCmdName); domNode * tcldom_getNodeFromObj(Tcl_Interp *interp, Tcl_Obj *nodeObj); domDocument * tcldom_getDocumentFromName(Tcl_Interp *interp, char *docName, | > | | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | int tcldom_nameCheck(Tcl_Interp *interp, char *name, char *nameType, int isFQName); void tcldom_createNodeObj(Tcl_Interp * interp, domNode *node, char *objCmdName); domNode * tcldom_getNodeFromObj(Tcl_Interp *interp, Tcl_Obj *nodeObj); domDocument * tcldom_getDocumentFromName(Tcl_Interp *interp, char *docName, int tcldom_prefixNSlist (char ***prefixnsPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], const char *methodName); void tcldom_initialize(void); Tcl_ObjCmdProc tcldom_DomObjCmd; Tcl_ObjCmdProc tcldom_DocObjCmd; Tcl_ObjCmdProc tcldom_NodeObjCmd; Tcl_ObjCmdProc TclExpatObjCmd; |
︙ | ︙ |
Changes to tests/dom.test.
︙ | ︙ | |||
176 177 178 179 180 181 182 183 184 185 186 187 188 189 | dom createDocument test doc set result [catch {set doc foo} errMsg] lappend result $errMsg $doc delete unset doc set result } {1 {can't set "doc": var is read-only}} test dom-2.1 {Don't quash white space at start or end of non white space content} { set doc [dom parse {<root> some content </root>}] set root [$doc documentElement] $root text | > > > > > > > > > > > > > | 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 | dom createDocument test doc set result [catch {set doc foo} errMsg] lappend result $errMsg $doc delete unset doc set result } {1 {can't set "doc": var is read-only}} test dom-1.25 {Doc var} { dom parse <test/> doc dom parse <test/> doc unset doc } {} test dom-1.26 {Doc var} { dom parse <test/> doc set result [catch {$doc documentElement doc}] unset doc set result } {1} test dom-2.1 {Don't quash white space at start or end of non white space content} { set doc [dom parse {<root> some content </root>}] set root [$doc documentElement] $root text |
︙ | ︙ |
Changes to tests/loadtdom.tcl.
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # We still support 8.4 to some degree package require Tcl 8.4 } else { package require Tcl 8.4- } package require tcltest 2.2 namespace import ::tcltest::* if {[catch {package require -exact tdom 0.9.2}]} { if {[catch {load [file join [file dir [info script]] ../unix/libtdom0.9.2.so]}]} { error "Unable to load the appropriate tDOM version!" } } if {[info commands ::tdom::xmlReadFile] == ""} { # tcldomsh without the script library. Source the lib. | > > | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # We still support 8.4 to some degree package require Tcl 8.4 } else { package require Tcl 8.4- } package require tcltest 2.2 namespace import ::tcltest::* catch {tcltest::loadTestedCommands} if {[catch {package require -exact tdom 0.9.2}]} { if {[catch {load [file join [file dir [info script]] ../unix/libtdom0.9.2.so]}]} { error "Unable to load the appropriate tDOM version!" } } if {[info commands ::tdom::xmlReadFile] == ""} { # tcldomsh without the script library. Source the lib. |
︙ | ︙ |