Permalink
Browse files

FFI branch squash-merged into master. Original commit history is pres…

…erved for posterity at http://github.com/mdalessio/nokogiri/tree/ffi

Squashed commit of the following:

commit 069c9055086d016080eda3973d48c442cbe148b9
Author: Mike Dalessio <mike@csa.net>
Date:   Fri May 1 01:55:08 2009 -0400

    fixing merge/rebase errors

commit 3686c78abac3c89c4d4cf67cac81ac5d69812b96
Author: Mike Dalessio <mike@csa.net>
Date:   Fri May 1 00:58:30 2009 -0400

    FFI: catching up with master: Reader.from_io(), reader source reference, node reparenting type check.

commit d515ba4b60bef74826306757e34bf9fd4cd0dab3
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Apr 30 19:04:52 2009 -0400

    FFI: updated TODO

commit ddff478ac9917540f419773599b6da6045321f53
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Apr 28 08:04:20 2009 -0400

    bringing FFI tests into line with master

commit baaf4e0ab78235f7e0459d505145ed7349a06ed2
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Apr 28 08:02:57 2009 -0400

    bringing FFI tests in line with master

commit 53e0622810486cb07074650f80a4952067ad8027
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Apr 28 07:44:50 2009 -0400

    memory leak tests are now only run if NOKOGIRI_GC is set.

commit 6cc03df30276a61f65807a3eb4f61eeda77b3dfa
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Apr 27 22:09:02 2009 -0400

    removing puts when FFI is initialized.

commit 8a176910fee538a7321f6cdd6e959e6c2a6316e4
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Apr 27 02:34:21 2009 -0400

    FFI: reviewed xslt_stylesheet. tweaked how documents are wrapped to be simpler and more accurate.

commit 319576314db15bd64f6992ca925f80a8465d6e1a
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 26 23:47:20 2009 -0400

    FFI: rooting all sorts of nodes

commit e2b4450bd83a672e95f6ebebc5a1313c8f914d46
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 26 23:46:12 2009 -0400

    FFI: implementing XML::Attr

commit dda2a6868b83830e6720c63d54665366ef0f8de1
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 26 23:44:33 2009 -0400

    FFI: tweaked VERSION_INFO for ffi

commit 190e0ad32f6fcdad5041deeb744d7cea3cc72e17
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 26 23:43:32 2009 -0400

    including LD_LIBRARY_PATH in the FFI libxml search path, primarily for multixml2 testing.

commit a28a6e52a9a0348a0c988f9baaf8aaf7bca80be6
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 26 22:46:46 2009 -0400

    updated Nokogiri::VERSION_INFO and added Nokogiri.ffi?

commit fe2cd048f0780aeb45d4a20cb9f3bf9004996b68
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Apr 24 00:03:57 2009 -0400

    FFI: fixing a memory leak when creating a new node and not adding it to the tree.  Thanks Julien Genestoux

commit 16a953f5e0ac5e6d45a4419b04fc469c63b3b26d
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Apr 23 23:49:51 2009 -0400

    Caught up with Aaron's latest codes. FFI branch is now synched with master. Wowzers.

commit e724619d102a248a6915e66403938dafbe42639a
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Apr 23 09:38:04 2009 -0400

    FFI: new VERSION_INFO hash populated and tested

commit 5b95fd1531fe66fb3e7df31e4572a8d55ae1a98f
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Apr 23 09:25:11 2009 -0400

    removing reference to old, obsolete cross-ffi.rb

commit f37adf55de5c5e8e87d6d1715987074b052a3347
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Apr 20 18:53:07 2009 -0400

    FFI: fixing xmlGetProp prototype

commit a65ffce9ce2237b2b4883ab31b25f327799dddf5
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Apr 20 18:26:04 2009 -0400

    FFI: updated TODO checklists

commit 187b9eb3c0d0d5d14331df638e2adc02a709e71f
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 19 23:56:05 2009 -0400

    added notes

commit 16a6a69c7604a4e61fece2a6dd740c0cc840b3f7
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 19 23:47:19 2009 -0400

    FFI: complete full review of all function prototypes. caught some errors.

commit e734ef9023dcd8a1808bd7403d813aa150b979d3
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 19 21:52:14 2009 -0400

    FFI: fixing function signature for xmlNewNode

commit dacb2f041528e89f6dc2d18c71d5c64d7f14ac3b
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 19 21:39:35 2009 -0400

    FFI: Fixing return type on xmlXPathRegisterFuncLookup, which JRuby correctly blew up on.

commit 16ae99e4800eb4622ecfb95984cbce5dbfdcc591
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 19 16:48:42 2009 -0400

    FFI: cleaned up some code

commit 1daaa2cb0803ae3574dfdd4416dfbe47b9d961ab
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Apr 17 07:39:12 2009 -0400

    updated FFI TODO

commit 4850199a504ddbb5d4a654372c8eda2095f2827d
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Apr 17 01:17:44 2009 -0400

    FFI: XML Processing Instructions now pass tests

commit 787cd609e69c6211685b5267df4faa4d180d7565
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Apr 17 01:03:01 2009 -0400

    FFI: SAX push parser now passes

commit b53d71358ecf6c9bee77031204098ef4480ad53e
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Apr 15 02:14:12 2009 -0400

    FFI: updated TODO

commit 2dc5fb10e9939f61ec8e28ed9d297165b46f987f
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Apr 15 02:07:39 2009 -0400

    FFI: fixing bug in inherited namespaces

commit 866502559e91452a48355da01ed8aed57bd503ad
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Apr 15 02:07:33 2009 -0400

    FFI: more xml entity reference

commit 0b5c46c19323364578a7689318b84bc4fbb34441
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Apr 15 01:49:53 2009 -0400

    FFI: xml entity reference

commit 48c8b6e1fe0492e8cfeea0e50944ae99368cf7da
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Apr 15 01:44:14 2009 -0400

    whoops, forgot to commit the node->_private code

commit 2ea032fe6656172de46b776428b64906fe9eb06a
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Apr 10 08:15:05 2009 -0400

    FFI: fixed node-object caching in node->_private

commit ef118e8ba49e0eb6022e19ac7128704f117b633e
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Apr 8 18:53:14 2009 -0400

    FFI: reviewed xml/cdata.rb

commit 4f0b9ff82980f9296d4b20dd160b718f61528a1f
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Apr 8 18:49:05 2009 -0400

    FFI: EntityLookup#get implemented

commit 408f74265e2d8d4e4048c438281b8bd2b4c740c3
Author: Aaron Patterson <aaron.patterson@gmail.com>
Date:   Mon Apr 6 10:19:53 2009 -0700

    implementing xml relax ng valiation

commit 4e587c8b645c21b759591bc6abb868fde96bac86
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 5 02:32:53 2009 -0400

    updated TODO

commit 821fe28a455263506402c66c265ba068eb5c1786
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 5 02:03:41 2009 -0400

    FFI: fixed ElementDescription.inline?

commit 403df608f969eebcf4c73b9703370f96a3ee2822
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 5 02:00:57 2009 -0400

    FFI: xml/schema.rb

commit d217575f77597c21ee3f7ad0a3045bbc4b7efb25
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 5 01:34:16 2009 -0400

    FFI: reviewed xml/reader.rb

commit 09dbaa9a28bcc2ecb9bc775df6ced710ee342f77
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Apr 5 01:03:55 2009 -0400

    FFI: implemented html element description

commit b93082cd649a7d62aea2c20154aeaaf900b4f3f8
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Apr 3 19:28:58 2009 -0400

    added to TODO

commit f2ddb30082e5f3ff8cddbc8d2cf62ff999019ea7
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Apr 3 08:23:01 2009 -0400

    FFI: reviewed XML and HTML parsers

commit df2448c96dd4fdc63c1aef8f03d03ae9e5ad554b
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Apr 3 07:43:16 2009 -0400

    FFI: updated TODO

commit fa939eb60cbb34972c6fdf21c757d96296c34e81
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Apr 2 22:31:26 2009 -0400

    FFI: document encoding changed back to a pointer (for now)

commit 74680fe5042ba462ea0015d593683a3268677d5b
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Apr 2 07:54:06 2009 -0400

    FFI: finished review of html/document.rb

commit cab8d374b2f57fda46c188b5f0bdb7bd0a3a8055
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Apr 1 08:24:44 2009 -0400

    FFI: finished implementation of custom xpath selectors. W00T!

commit 25d9796e7ff6f9ed9fe682cc388ff201ac1277fd
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Mar 31 18:35:16 2009 -0400

    FFI: finished code review of xml/node_set.rb

commit f28f24bd5e4c81232026f0da8ddf9a6773408a2c
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Mar 31 18:20:23 2009 -0400

    updated TODO

commit 55895f53addd6f16a2edde5986029198dec1f1c4
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Mar 31 18:20:12 2009 -0400

    FFI: finished code review of xml/document.rb

commit 900c094012f85b393a80d67ce9eeff91d6178152
Author: Aaron Patterson <aaron.patterson@gmail.com>
Date:   Tue Mar 31 14:39:38 2009 -0700

    searching for dylibs and so files

commit f6a81a3895b175b4ff7e85d98fccbf3f0e867c68
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 23:40:51 2009 -0400

    TODO file

commit 724421a6b7cc8ea067ab8892361297cb8b47fceb
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 23:39:28 2009 -0400

    FFI: making fragment ns code more robust

commit fe22ef557332cf70c5a9454562dcb46979225fae
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 23:22:36 2009 -0400

    FFI: fixing more node tests

commit a79c4a328d0f785c40766ecc457fe3655d53429b
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 22:48:57 2009 -0400

    FFI: finished reviewing node.rb

commit 4cfce7546b2729ff509a28fdae394d53c2d51db9
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 22:31:41 2009 -0400

    FFI: node.rb cleanup

commit 06560c174505f1730f85119a5eb25aea6944ba68
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 21:56:51 2009 -0400

    implementing node#pointer_id, and undoing the only change made to node.rb in the FFI branch.

commit 903502fc7396cff1a18560c5494a00364139cff5
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 18:55:51 2009 -0400

    FFI: reordered node.rb to closely match xml_node.c

commit 08460ace061d4f2e4a956b90c68d06fe2f874d89
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 18:55:36 2009 -0400

    FFI: added some comments and refactored core structs

commit 510ab7086cb2c6358fad6fc855536561ebf3a2d3
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 18:31:32 2009 -0400

    FFI: getting more tests to pass

commit 90f03e52b459ae3687d8fdb1f32e2ce32305fa68
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 14:06:05 2009 -0400

    FFI: dumping cross-ffi

commit 30cc527b4c16bceb10d0e46062ddb8c576b44bcb
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 13:27:12 2009 -0400

    FFI: jruby compatibility tweaks

commit 740916fe8c8201930e0b892c92b62e327f4189af
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 13:26:58 2009 -0400

    FFI: syntax error typing

commit 5a83d58d3c3eab62901fecd96dd57381f35ccc2a
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 30 07:29:29 2009 -0400

    still working on custom xpath selectors

commit 02e940246b9650faf6c02b67f4798668213bacd3
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 23 03:26:28 2009 -0400

    FFI: started implementing custom xpath handlers, but punting for now since FFI does not support callbacks as return types.

commit a02a6fd96887e2f15881a5bb882441e09aeea879
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Mar 19 18:25:10 2009 -0400

    FFI: passing more specs

commit fc0876c68390bae83097d64c976518edb2bb41d5
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Mar 19 16:59:08 2009 -0400

    FFI: fixing syntax errors in xpath context

commit a642fe35a04f1b2c02f1fc8480d36b6407878450
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Mar 19 16:32:09 2009 -0400

    FFI: supporting the document _private tuple referencing the ruby object and a node set of unlinked nodes

commit b2b851f1a479fe2566fb46f747c002c351ea1149
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Mar 19 15:20:20 2009 -0400

    FFI: adding a unit test for document internals, in preparation for conversion to the _private tuple

commit f6fb982422132db4f9c0e5a95d9563f7505ce563
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Mar 19 15:11:43 2009 -0400

    FFI: adding read_io and error handling to html doc parsing.

commit fbcc3b38f6ae2598230e2449e0db25b6f92331b9
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Mar 18 08:22:50 2009 -0400

    FFI: test/xml/test_node.rb now passes

commit a5d64b9d5cf2820c4f2d9c46041a91480719f1c9
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 9 07:39:53 2009 -0400

    adding binding for xmlSetTreeDoc

commit 33d24495499c40fb7848a37efbf161d96a55ed7a
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Mar 6 09:49:13 2009 -0500

    FFI: making NodeSet#unlink work using monkeypatches to FFI

    (monkeypatches submitted to jruby and ruby-ffi)

commit 9cc3ec29019d5fb23087bbef1cfeb7d7446a420a
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Mar 6 02:18:17 2009 -0500

    FFI: making the world safe for node unlinkers. node_set unlink is still broken.

commit e71c5d0053312fd24ccbc4b24ecac7c6cdd6660b
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Mar 4 02:07:59 2009 -0500

    FFI: refactored node-reparenting logic out of add_child, add_next_sibling and add_previous_sibling

commit 93c1f24adb9a3ee2b4569726b5f3e3a52648d660
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Mar 4 01:17:44 2009 -0500

    fixed versions strings

commit 4e3f168e7fcb91989374d5cdc689c868ec2d6dd9
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Mar 2 18:30:15 2009 -0500

    FFI: much improved syntax error handling. yay.

commit a7d1392698bc465feba8e28bf1857d17b23d020c
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Feb 23 15:33:20 2009 -0500

    working on syntax errors

commit 2a5d31347b0f50702b774cbca1e7625b764fc96f
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Feb 23 07:58:11 2009 -0500

    tweaking syntax error handling.

commit 70379b17e45d879aa75e0d7563799857df64f1d4
Author: Mike Dalessio <mike@csa.net>
Date:   Sat Feb 21 11:42:00 2009 -0500

    working on error handling

commit b2c74d2e5edfd0c665f0b8f9eefbe97a98dc9b49
Author: Mike Dalessio <mike@csa.net>
Date:   Sat Feb 21 11:37:23 2009 -0500

    temporarily at least, let's disable the error handling until i catch up with aaron and jmhodges.

commit 123a62b62d048b1afde44fcf2c792c313e8c1d18
Author: Mike Dalessio <mike@csa.net>
Date:   Sat Feb 21 11:34:07 2009 -0500

    fixing mechanical issues with 'require' dependencies and class inheritance.

commit 22e9197d20ccf6414f95b40f03c34b154f1f5914
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Feb 6 23:38:47 2009 -0500

    ffi: really making progress now. down to 19 fails.

commit 0999566ae73ae3d1e51f2c3d39c41635edb455c7
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Feb 6 20:51:46 2009 -0500

    ffi: xml/test_node is green

commit f0bcfaac77cce3efc03d246f6d583e6d14032eb5
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Feb 6 03:42:22 2009 -0500

    ffi: tweaking add_child

commit b8d8b73df42615738cbd515f72313536484881d5
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Feb 6 03:33:26 2009 -0500

    ffi: applying add_child fixes

commit 40cab0e195b1d51f5e10152284cbca90db5a9696
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Feb 6 03:07:11 2009 -0500

    jruby trunk fixed callback lookups. game back on for sax.

commit 775ee7e39e2fc0dfa0a21a9fc27a4dbeebd475c0
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Feb 4 11:05:25 2009 -0500

    ffi - Node.to_html() and htmlNodeDump()

commit 3febf0037101b39d8a9e7487c4df4f667f20c145
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Feb 3 15:56:57 2009 -0500

    unified pointer types between ruby and jruby ffi

commit 8d0c08d52ec4b8d4439c8f9e37f240f050f75c66
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Dec 19 17:02:11 2008 -0500

    some jruby-compatibility changes

commit 5b0a2f6c59175bfed89cf72b5008300e2b68eb16
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 17 01:00:21 2008 -0500

    FFI: porting exslt patches

commit d33bd5d1e9927a86770abb031f01b6f44804b3f0
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 17 00:49:41 2008 -0500

    FFI: more catch-up with aaron

commit 306906b6bd9a1dfe4c4ccb196b4091b6ac50819a
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 16 23:43:49 2008 -0500

    FFI: playing catch-up, porting Aaron's work on master to ffi

commit cde9e5e654945ba7a928d7f339a8d43d13b5f984
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 16 23:28:15 2008 -0500

    removing TODO comments

commit 29a276399c57ba00caa78cd1f4cfb9d10b984788
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 16 19:03:43 2008 -0500

    FFI: preventing people from shooting themselves in the foot by replacing a node with a document.

commit ee814d820e04cd6798793b0ef5f61cc7914e7811
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 16 08:29:52 2008 -0500

    cleanup

commit 3ac6b96aa8a9dddf5be34790e93ed85b940e6e51
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 16 08:08:45 2008 -0500

    finished implementation of XML and HTML SAX parsing

commit 40dcfc3f61f132066e237e747843113356c35ca0
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 16 08:07:22 2008 -0500

    removing syntax-warning-inducing ambiguity.

commit 37e7166e75065895db831e122cd042f9ba8c7044
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 16 08:03:16 2008 -0500

    properly freeing construct html doc tree in html sax parser (mem leak)

commit 7b45467a356e35b5ce355aea34676640a0751147
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Dec 15 19:28:24 2008 -0500

    FFI: initial SAX parser support.

commit 831ee8f22bd16c5793193f477e63637c1c9cceda
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Dec 15 07:56:20 2008 -0500

    FFI: requiring ruby-ffi gem 0.3.0, and removing monkeypatches

commit 4aaa73a2b145a3d6462fe668f469f8ad0d6254a2
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Dec 11 19:41:32 2008 -0500

    FFI: updating API to support varargs to evaluate() and to_xml().

commit 86e4224a10d59ea243dd1ab36d95b28c5ecc3ad3
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Dec 11 19:12:00 2008 -0500

    FFI: fixed segfault when freeing wrong pointer. ugh.

commit 58c9f0500bdb82c2cdeb2e2be2ddb6e2560f7db3
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 10 18:38:02 2008 -0500

    FFI: xslt support

commit 2b2f2b63acea4423c469957274d6cd9864ddd70a
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 9 09:01:11 2008 -0500

    FFI: reader is done. down to 18 fails!

commit 8a06899edb05f4f73a99355d30017865a7df4994
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Dec 8 23:52:09 2008 -0500

    FFI: DTD support. down to 37 fails!

commit 5b352c634027816c354b44dac4141ced303deafb
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Dec 8 19:41:27 2008 -0500

    FFI: changing struct :name from :pointer type to :string

commit 1a33d132d0331bb60fe7c10549fe4c2e0c65feea
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Dec 8 19:39:30 2008 -0500

    FFI: more API work. down to 41 fails!

commit 36d7533e0cafeda3081415717b02499fd4f5ed29
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Dec 8 09:10:56 2008 -0500

    FFI: more work on the API, more tests pass.

commit 257f0b5a525f75631530d66dfd800a60e6c6d4c9
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Dec 8 01:18:58 2008 -0500

    some null pointer checks.

commit de37c5f4e4c42acb0c1a16d4f67331b47f2490c9
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Dec 8 01:18:28 2008 -0500

    an additional test of FFI primitives

commit 3b6aa50e57387a52df778db6fdeab1c5a7a1d253
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Dec 5 18:51:38 2008 -0500

    permanently referencing the error handler wrapper to avoid nasty GC issues.

commit 60689985c84ae65e975695230962233a56a86a78
Author: Mike Dalessio <mike@csa.net>
Date:   Fri Dec 5 17:29:55 2008 -0500

    extending LibXML module with the CrossFFI mixin

commit 4aa3fa69c119cbd794b8e7f251793d942fe6055a
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Dec 4 12:47:28 2008 -0500

    cross-ffi no longer pollutes Module, but is used to 'extend' modules. additional methods and members to xml_document. xml_node no longer a managed struct. some additional node methods.

commit 9264080229e531da00fd408f0f7aed3daa18b637
Author: Mike Dalessio <mike@csa.net>
Date:   Thu Dec 4 00:01:28 2008 -0500

    FFI: support for read_io

commit 4c5f2d0a3221ec2692875af556fd88c2290a15c0
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 17:17:14 2008 -0500

    added syntax error support.

commit 774773c8b4bcb486c4ad849a511a8bbe7fcd25a9
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 17:16:34 2008 -0500

    changed autopointer finalization error message to a warning requiring $DEBUG. also added ffi_callback().

commit 4adbdd398234faf491bc0724f721dcb9d4b40041
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 17:15:58 2008 -0500

    properly handling node finalization with a pointer cast.

commit cb4cb5e8561fc07c029157b4da77c82d60fc6be2
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 17:15:17 2008 -0500

    refactored document structs. cast version no longer is a managed struct.

commit f4968ca36cc38356192aa14b214dc55a1ff51c17
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 15:21:25 2008 -0500

    added output if an autopointer finalize raises an exception. previously FFI failed silently.

commit 8e891e7167bc25267fad15b42e38da5c75e9312c
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 13:58:20 2008 -0500

    FFI: more document, node, node_set and xpath_context support. all of test_document passes (except for read_io).

commit 33cbf83c23febe8d99ef7f7295b4511c87b88a5f
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 12:33:17 2008 -0500

    Node.to_xml() and XmlBuffer structs

commit d497083717ae729016b72927725bee28f49c28dc
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 12:01:41 2008 -0500

    Document#wrap and Node#wrap. doc->_private.

commit 17527911d9e76eeafb1c3bcfb61dc40fd3dcc957
Author: Mike Dalessio <mike@csa.net>
Date:   Wed Dec 3 10:24:41 2008 -0500

    cleaning up FFI code to follow a common style for readability

commit 5cedbc12e5d0f75ba0f3d6ba211f42074b36fcf0
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 22:37:18 2008 -0500

    can switch between FFI or native library based on envvar NOKOGIRI_FFI

commit 64ca0c21b15a39371f7611dfcc04fe38dd939889
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 22:31:51 2008 -0500

    reverted ffi-related changes to native library.

commit b5d369fae4f5a14dacf1248b95f7b7b2edd03310
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 21:57:42 2008 -0500

    added some node, node_set, xpath, xpath context support. lots of cleanup.

commit 7fa76a6b81c64c48aa53cd41c79597e4ed94dde9
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 20:18:09 2008 -0500

    test cleanup

commit d65bc58507275d4a66dc7eae9a09d1cb3905f855
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 10:38:40 2008 -0500

    making read_memory() a constructor, by allocating a new object without calling new().

commit 47d006e6239030a14e57480197f146633329583d
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 10:35:22 2008 -0500

    got basic xml document handling working.

commit 33c401aeddc8daf62bba00a3200b983e4f4ac62c
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 09:24:18 2008 -0500

    renamed test library module to avoid clashing with CrossFFI module

commit ea79fd648655fe8ee9e5b68ceb8663c8533ed42d
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 03:11:59 2008 -0500

    using XmlAlloc struct to automate GC

commit b1236d2c80e3a995ce3ab57fa3435cfcdcacdb2d
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 02:44:46 2008 -0500

    testing how to use returned pointer-to-struct

commit d9496aba84662b2f657b5630d340357d934efb39
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 01:24:32 2008 -0500

    bringing HTML::Document FFI API in line with current.
    we hates the tricksy hoops FFI makes us jump through, precioussss

commit c32f94fd27fb6531a43fa0a0c7083bcb0b3e2ac8
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 01:23:42 2008 -0500

    struct.pointer test

commit 04e7a8653b3d3e1ce214d26f04aacb8a9d282e95
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 01:11:57 2008 -0500

    whoops, removing binary files from cross-ffi test clib

commit 6a60cc26211bd71a83bfe87f22d877ac7a333600
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 01:10:53 2008 -0500

    some additional testing of ffi primitives

commit c0c6cdd7fead403c9c1535855423e2b92998cde9
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Dec 2 01:05:25 2008 -0500

    bringing cross-ffi.rb up to date with current (not-yet-released) ruby-ffi

commit 371577e46a912e13d045adec8ab78f7267395652
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Nov 30 00:51:20 2008 -0500

    bringing cross-ffi up-to-date with accepted ruby-ffi patches.
    also making sure we're using an abstraction layer for FFI.

commit 55cd223d82ceb09e8e62d04a288a229d1bd5e52c
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Nov 25 15:42:55 2008 -0500

    updated with comment about removal

commit ecb926b8904c147cd4c6a18a1d3be88c8e41f978
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Nov 25 14:43:27 2008 -0500

    a basic test case for FFI.

    also, mocha is now required for tests.

commit da1fac4e3cfd7dbda57e5ea2f4e315e39940acc0
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Nov 25 14:35:40 2008 -0500

    updated libxml ffi code to use FFI::ManagedStruct and new XmlAlloc struct to simplify cleanup.

commit 5d937449d928388f83759085db720b537c35b6eb
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Nov 25 14:35:06 2008 -0500

    moved some files around in cross-ffi test cases

commit 6afbe0086e9d9fa05a9e62d76aa1903f6246f911
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Nov 25 14:30:45 2008 -0500

    updating CrossFFI::Struct to be named FFI::ManagedStruct and use new AutoPointer Method parameter.
    also updated some tests.

commit c01dc1b2a47ead30d679ab84c2c41b6ea527e07d
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Nov 25 14:22:19 2008 -0500

    autopointer!

commit 5f269bd8e626302736b2547a42c56839c674eb6f
Author: Mike Dalessio <mike@csa.net>
Date:   Tue Nov 25 10:42:29 2008 -0500

    removed .gitignore file

commit d2a443570c902e9823eaf6a38dd57b204781422e
Author: Mike Dalessio <mike@csa.net>
Date:   Mon Nov 24 15:47:19 2008 -0500

    the beginnings of a cross-ffi abstraction layer.
    includes primitives test (verify underlying library behavior) and a cross-ffi test (verify abstraction layer behavior).

commit 9113347332c5f2ec6e7c21cd35d56c573bf8edf5
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Nov 23 21:51:32 2008 -0500

    adding lifecycle management to new class CrossFFI::Struct, which uses autopointers when appropriate.

commit dfa5fc6d41e36d5982c7ee69b655e6cca7cbc51e
Author: Mike Dalessio <mike@csa.net>
Date:   Sun Nov 23 11:29:09 2008 -0500

    adding FFI versions of some methods to HTML::Document, and commenting out same methods in html_document.c

commit dac52dd2aa3cacff15f9ae5925ca66d7fbab4c03
Author: Mike Dalessio <mike@csa.net>
Date:   Sat Nov 22 16:47:25 2008 -0500

    first FFI struct, and rake task to build it. cross-platform abstraction in cross-ffi.
  • Loading branch information...
1 parent 557b0ee commit 836e526ae864f83060c506426a812b2fbbabeb85 @flavorjones flavorjones committed May 1, 2009
Showing with 2,724 additions and 2 deletions.
  1. +1 −0 .gitignore
  2. +68 −0 FFI-TODO
  3. +2 −0 Rakefile
  4. +7 −1 lib/nokogiri.rb
  5. +41 −0 lib/nokogiri/ffi/html/document.rb
  6. +85 −0 lib/nokogiri/ffi/html/element_description.rb
  7. +16 −0 lib/nokogiri/ffi/html/entity_lookup.rb
  8. +21 −0 lib/nokogiri/ffi/html/sax/parser.rb
  9. +320 −0 lib/nokogiri/ffi/libxml.rb
  10. +1 −0 lib/nokogiri/ffi/structs/.gitignore
  11. +23 −0 lib/nokogiri/ffi/structs/common_node.rb.ffi
  12. +26 −0 lib/nokogiri/ffi/structs/html_elem_desc.rb.ffi
  13. +15 −0 lib/nokogiri/ffi/structs/html_entity_desc.rb.ffi
  14. +18 −0 lib/nokogiri/ffi/structs/xml_alloc.rb.ffi
  15. +22 −0 lib/nokogiri/ffi/structs/xml_attr.rb.ffi
  16. +21 −0 lib/nokogiri/ffi/structs/xml_buffer.rb.ffi
  17. +98 −0 lib/nokogiri/ffi/structs/xml_document.rb.ffi
  18. +31 −0 lib/nokogiri/ffi/structs/xml_dtd.rb.ffi
  19. +32 −0 lib/nokogiri/ffi/structs/xml_node.rb.ffi
  20. +56 −0 lib/nokogiri/ffi/structs/xml_node_set.rb.ffi
  21. +17 −0 lib/nokogiri/ffi/structs/xml_notation.rb.ffi
  22. +18 −0 lib/nokogiri/ffi/structs/xml_ns.rb.ffi
  23. +15 −0 lib/nokogiri/ffi/structs/xml_relax_ng.rb.ffi
  24. +47 −0 lib/nokogiri/ffi/structs/xml_sax_handler.rb.ffi
  25. +16 −0 lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb.ffi
  26. +14 −0 lib/nokogiri/ffi/structs/xml_schema.rb.ffi
  27. +37 −0 lib/nokogiri/ffi/structs/xml_syntax_error.rb.ffi
  28. +21 −0 lib/nokogiri/ffi/structs/xml_text_reader.rb.ffi
  29. +22 −0 lib/nokogiri/ffi/structs/xml_xpath.rb.ffi
  30. +41 −0 lib/nokogiri/ffi/structs/xml_xpath_context.rb.ffi
  31. +36 −0 lib/nokogiri/ffi/structs/xml_xpath_object.rb.ffi
  32. +22 −0 lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb.ffi
  33. +15 −0 lib/nokogiri/ffi/structs/xslt_stylesheet.rb.ffi
  34. +42 −0 lib/nokogiri/ffi/xml/attr.rb
  35. +21 −0 lib/nokogiri/ffi/xml/cdata.rb
  36. +20 −0 lib/nokogiri/ffi/xml/comment.rb
  37. +115 −0 lib/nokogiri/ffi/xml/document.rb
  38. +28 −0 lib/nokogiri/ffi/xml/document_fragment.rb
  39. +46 −0 lib/nokogiri/ffi/xml/dtd.rb
  40. +23 −0 lib/nokogiri/ffi/xml/entity_reference.rb
  41. +375 −0 lib/nokogiri/ffi/xml/node.rb
  42. +64 −0 lib/nokogiri/ffi/xml/node_set.rb
  43. +21 −0 lib/nokogiri/ffi/xml/processing_instruction.rb
  44. +181 −0 lib/nokogiri/ffi/xml/reader.rb
  45. +51 −0 lib/nokogiri/ffi/xml/relax_ng.rb
  46. +76 −0 lib/nokogiri/ffi/xml/sax/parser.rb
  47. +38 −0 lib/nokogiri/ffi/xml/sax/push_parser.rb
  48. +55 −0 lib/nokogiri/ffi/xml/schema.rb
  49. +74 −0 lib/nokogiri/ffi/xml/syntax_error.rb
  50. +16 −0 lib/nokogiri/ffi/xml/text.rb
  51. +19 −0 lib/nokogiri/ffi/xml/xpath.rb
  52. +136 −0 lib/nokogiri/ffi/xml/xpath_context.rb
  53. +37 −0 lib/nokogiri/ffi/xslt/stylesheet.rb
  54. +1 −1 lib/nokogiri/version.rb
  55. +25 −0 tasks/ffi.rb
  56. +35 −0 test/ffi/test_document.rb
View
@@ -13,6 +13,7 @@ lib/nokogiri/css/generated_tokenizer.rb
mkmf.log
cross
tags
+*.rbc
stash
.rake_tasks
tmp
View
@@ -0,0 +1,68 @@
+-*- org -*-
+
+* DONE implement xpath custom handlers
+* [9/9] code review (compare C to FFI side by side)
+ - [X] xml/node.rb
+ - [X] xml/document.rb
+ - [X] xml/node_set.rb
+ - [X] xml/xpath_context.rb
+ - [X] xml/cdata.rb
+ - [X] html/document.rb
+ - [X] html/entity_lookup.rb
+ - [X] reader.rb
+ - [X] xslt.rb, xslt/stylesheet.rb
+* DONE code review of function prototypes
+* [7/7] implement classes:
+ - [X] HTML::ElementDescription
+ - [X] XML::Schema
+ - [X] HTML::EntityLookup
+ - [X] XML::EntityReference
+ - [X] XML::RelaxNG
+ - [X] SAX::PushParser
+ - [X] ProcessingInstruction
+* miscellaneous issues
+*** DONE blanks being escaped in output
+ CLOSED: [2009-04-30 Thu 19:03]
+*** TODO heisenbug:
+test_attribute_roundtrip(TestReader):
+NoMethodError: undefined method `attribute_nodes' for [-617503368]:Array
+ /home/mike/code/nokogiri/lib/nokogiri/ffi/xml/reader.rb:42:in `attribute_nodes'
+ /home/mike/code/nokogiri/lib/nokogiri/xml/reader.rb:14:in `attributes'
+ ./test/test_reader.rb:81:in `test_attribute_roundtrip'
+ /home/mike/code/nokogiri/lib/nokogiri/xml/reader.rb:21:in `call'
+ /home/mike/code/nokogiri/lib/nokogiri/xml/reader.rb:21:in `each'
+ ./test/test_reader.rb:80:in `test_attribute_roundtrip'
+ /usr/lib/ruby/gems/1.8/gems/mocha-0.9.3/lib/mocha/test_case_adapter.rb:69:in `__send__'
+ /usr/lib/ruby/gems/1.8/gems/mocha-0.9.3/lib/mocha/test_case_adapter.rb:69:in `run'
+
+test_attributes(TestReader):
+RangeError: 0xdb387178 is recycled object
+ /home/mike/code/nokogiri/lib/nokogiri/ffi/structs/common_node.rb:15:in `_id2ref'
+ /home/mike/code/nokogiri/lib/nokogiri/ffi/structs/common_node.rb:15:in `ruby_node'
+ /home/mike/code/nokogiri/lib/nokogiri/ffi/xml/node.rb:252:in `wrap'
+ /home/mike/code/nokogiri/lib/nokogiri/ffi/xml/reader.rb:41:in `attribute_nodes'
+ /home/mike/code/nokogiri/lib/nokogiri/xml/reader.rb:14:in `attributes'
+ ./test/test_reader.rb:69:in `test_attributes'
+ /home/mike/code/nokogiri/lib/nokogiri/xml/node.rb:288:in `map'
+ /home/mike/code/nokogiri/lib/nokogiri/xml/reader.rb:21:in `call'
+ /home/mike/code/nokogiri/lib/nokogiri/xml/reader.rb:21:in `each'
+ ./test/test_reader.rb:69:in `map'
+ ./test/test_reader.rb:69:in `test_attributes'
+ /usr/lib/ruby/gems/1.8/gems/mocha-0.9.3/lib/mocha/test_case_adapter.rb:69:in `__send__'
+ /usr/lib/ruby/gems/1.8/gems/mocha-0.9.3/lib/mocha/test_case_adapter.rb:69:in `run'
+
+* jruby-only bugs
+*** DONE annoying "warning: too many arguments for format string" messages everywhere
+*** TODO lingering syntax error issues. try test/xml/test_document.rb
+*** TODO how to lookup and find libxml2.so and libxslt.so?
+
+* TODO convert structs to using layout() instead of FFI::Generator stubs
+*** TODO then remove the 'rake ffi' task and supporting functions
+
+* TODO open jira tickets: support varags in callbacks (needed for syntax error and sax error)
+* figure out how to cache the ruby objects (nodes and documents) without using Objectspace.
+
+* use (new) nested struct support in FFI?
+* do we have string encoding issues?
+* i feel like we should refactor reader/writer/closer io callbacks
+* rdoc documentation? shit.
View
@@ -186,4 +186,6 @@ namespace :libxml do
end
end
+require 'tasks/ffi'
+
# vim: syntax=Ruby
View
@@ -4,7 +4,13 @@
File.join(File.dirname(__FILE__), "..", "ext", "nokogiri")
), ENV['PATH']].compact.join(';') if RUBY_PLATFORM =~ /mswin/i
-require 'nokogiri/nokogiri' unless RUBY_PLATFORM =~ /java/
+if ENV['NOKOGIRI_FFI'] || RUBY_PLATFORM =~ /java/
+ gem 'ffi', '>=0.3.2' unless RUBY_PLATFORM =~ /java/
+ require 'ffi'
+ require 'nokogiri/ffi/libxml'
+else
+ require 'nokogiri/nokogiri'
+end
require 'nokogiri/version'
require 'nokogiri/syntax_error'
@@ -0,0 +1,41 @@
+module Nokogiri
+ module HTML
+ class Document < XML::Document
+
+ attr_accessor :cstruct
+
+ def self.new(uri=nil, external_id=nil)
+ Document.wrap(LibXML.htmlNewDoc(uri, external_id))
+ end
+
+ def self.read_io(io, url, encoding, options)
+ wrap_with_error_handling(HTML_DOCUMENT_NODE) do
+ reader = lambda do |ctx, buffer, len|
+ string = io.read(len)
+ return 0 if string.nil?
+ LibXML.memcpy(buffer, string, string.length)
+ string.length
+ end
+ closer = lambda { |ctx| 0 } # coffee is for closers.
+
+ LibXML.htmlReadIO(reader, closer, nil, url, encoding, options)
+ end
+ end
+
+ def self.read_memory(string, url, encoding, options)
+ wrap_with_error_handling(HTML_DOCUMENT_NODE) do
+ LibXML.htmlReadMemory(string, string.length, url, encoding, options)
+ end
+ end
+
+ def meta_encoding=(encoding)
+ LibXML.htmlSetMetaEncoding(cstruct, encoding)
+ encoding
+ end
+
+ def meta_encoding
+ LibXML.htmlGetMetaEncoding(cstruct)
+ end
+ end
+ end
+end
@@ -0,0 +1,85 @@
+module Nokogiri
+ module HTML
+ class ElementDescription
+
+ attr_accessor :cstruct
+
+ def required_attributes
+ get_string_array_from :attrs_req
+ end
+
+ def deprecated_attributes
+ get_string_array_from :attrs_depr
+ end
+
+ def optional_attributes
+ get_string_array_from :attrs_opt
+ end
+
+ def default_sub_element
+ cstruct[:defaultsubelt]
+ end
+
+ def sub_elements
+ get_string_array_from :subelts
+ end
+
+ def description
+ cstruct[:desc]
+ end
+
+ def inline?
+ cstruct[:isinline] != 0
+ end
+
+ def deprecated?
+ cstruct[:depr] != 0
+ end
+
+ def empty?
+ cstruct[:empty] != 0
+ end
+
+ def save_end_tag?
+ cstruct[:saveEndTag] != 0
+ end
+
+ def implied_end_tag?
+ cstruct[:endTag] != 0
+ end
+
+ def implied_start_tag?
+ cstruct[:startTag] != 0
+ end
+
+ def name
+ cstruct[:name]
+ end
+
+ def self.[](tag_name)
+ ptr = LibXML.htmlTagLookup(tag_name)
+ return nil if ptr.null?
+
+ desc = allocate
+ desc.cstruct = LibXML::HtmlElemDesc.new(ptr)
+ desc
+ end
+
+ private
+
+ def get_string_array_from(sym)
+ list = []
+ return list if cstruct[sym].null?
+
+ j = 0
+ while (ptr = cstruct[sym].get_pointer(j * FFI.type_size(:pointer))) && ! ptr.null?
+ list << ptr.read_string
+ j += 1
+ end
+
+ list
+ end
+
+ end
+ end
+end
@@ -0,0 +1,16 @@
+module Nokogiri
+ module HTML
+ class EntityLookup
+
+ def get(key)
+ ptr = LibXML.htmlEntityLookup(key.to_s)
+ return nil if ptr.null?
+
+ cstruct = LibXML::HtmlEntityDesc.new(ptr)
+ EntityDescription.new cstruct[:value], cstruct[:name], cstruct[:desc]
+ end
+
+ end
+ end
+end
+
@@ -0,0 +1,21 @@
+module Nokogiri
+ module HTML
+ module SAX
+ class Parser < XML::SAX::Parser
+
+ def native_parse_file(data, encoding)
+ docptr = LibXML.htmlSAXParseFile(data, encoding, cstruct, nil)
+ LibXML.xmlFreeDoc docptr
+ data
+ end
+
+ def native_parse_memory(data, encoding)
+ docptr = LibXML.htmlSAXParseDoc(data, encoding, cstruct, nil)
+ LibXML.xmlFreeDoc docptr
+ data
+ end
+
+ end
+ end
+ end
+end
Oops, something went wrong.

0 comments on commit 836e526

Please sign in to comment.