Changeset 20949
- Timestamp:
- 10/08/08 09:16:42 (3 months ago)
- Location:
- lang/cplusplus/llv8call/trunk
- Files:
-
- 5 modified
-
ext/libxml/SConscript (modified) (1 diff)
-
ext/libxml/document.cc (modified) (5 diffs)
-
ext/libxml/libxml.cc (modified) (2 diffs)
-
ext/libxml/libxml.h (modified) (2 diffs)
-
t/070_libxml/02_dom.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/cplusplus/llv8call/trunk/ext/libxml/SConscript
r20881 r20949 12 12 env.SharedLibrary( 13 13 "libxml", 14 [Split('libxml.cc document.cc node.cc dom.c element.cc attr.cc ')],14 [Split('libxml.cc document.cc node.cc dom.c element.cc attr.cc cdata.cc')], 15 15 LIBS=['v8'] + env['LIBS'], 16 16 ) -
lang/cplusplus/llv8call/trunk/ext/libxml/document.cc
r20947 r20949 100 100 END 101 101 102 FUNCTION( _createElement)102 FUNCTION(createElement) 103 103 ARG_COUNT(1); 104 104 ARG_str(elname, 0); … … 110 110 xmlAddChild(fragment, node_raw); 111 111 return createElem( doc, node_raw ); 112 END 113 114 FUNCTION(createCDATASection) 115 ARG_COUNT(1); 116 ARG_str(elname, 0); 117 EXTERNAL_DOC(); 118 EXTERNAL_FRAGMENT(); 119 120 xmlNodePtr node_raw = xmlNewCDataBlock(doc, (const xmlChar*)*elname, elname.length()); 121 assert(node_raw); 122 xmlAddChild(fragment, node_raw); 123 return createCDATA( doc, node_raw ); 112 124 END 113 125 … … 184 196 BIND_IM("documentElement", _documentElement); 185 197 BIND_IM("setDocumentElement", setDocumentElement); 186 BIND_IM("createElement", _createElement); 198 BIND_IM("createElement", createElement); 199 BIND_IM("createCDATASection", createCDATASection); 187 200 BIND_IM("createAttribute", createAttribute); 188 201 BIND_IM("createTextNode", createTextNode); … … 194 207 ENDSUBMODULE 195 208 196 // REST: 1 2/51209 // REST: 13/51 197 210 198 211 // TODO: doc.actualEncoding … … 216 229 // TODO: doc.createAttributeNS 217 230 // TODO: doc.createDocumentFragment 218 // TODO: doc.createCDATASection219 231 // TODO: doc.createProcessingInstruction 220 232 // TODO: doc.createEntityReference -
lang/cplusplus/llv8call/trunk/ext/libxml/libxml.cc
r20881 r20949 37 37 extern void init_attr(Handle<Object> target); 38 38 extern void init_elem(Handle<Object> target); 39 extern void init_cdata(Handle<Object> target); 39 40 40 41 V8EXTINIT_FUNC … … 47 48 init_attr(target); 48 49 init_elem(target); 50 init_cdata(target); 49 51 50 52 return target; -
lang/cplusplus/llv8call/trunk/ext/libxml/libxml.h
r20947 r20949 35 35 } 36 36 37 inline v8::Handle<v8::Function> cdata_class() { 38 return Handle<Function>::Cast( libxml_namespace()->Get(String::New("CDATASection")) ); 39 } 40 37 41 static inline Handle<Object> createNode(xmlDocPtr doc, xmlNodePtr node_raw) { 38 42 Handle<Value> consarg[2]; … … 56 60 } 57 61 62 static inline Handle<Object> createCDATA(xmlDocPtr doc, xmlNodePtr attr_raw) { 63 Handle<Value> consarg[2]; 64 consarg[0] = External::New(attr_raw); 65 consarg[1] = External::New(doc); 66 return cdata_class()->NewInstance(2, consarg); 67 } 68 58 69 #define ARG_node(name, n) EXTERNAL(xmlNodePtr, name, args[n]->ToObject(), 0) 59 70 #define ARG_attr(name, n) EXTERNAL(xmlAttrPtr, name, args[n]->ToObject(), 0) -
lang/cplusplus/llv8call/trunk/t/070_libxml/02_dom.js
r20947 r20949 1 1 require('t/util.js'); 2 2 3 plan({tests:2 2});3 plan({tests:23}); 4 4 5 5 check_lib("org.coderepos.libxml"); … … 103 103 }); 104 104 105 test(function () { 106 var cdata = doc.createCDATASection("foo"); 107 root.appendChild(cdata); 108 is(root.toString(), '<foo foo="baz"><![CDATA[foo]]></foo>', 'doc.createCDATASection()'); 109 }); 110 105 111 doc.close(); 106 112
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)