<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -14,4 +14,5 @@ mkmf.log
 cross
 tags
 stash
+.rake_tasks
 </diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -34,7 +34,13 @@ else
                '/opt/local/lib',
                '/usr/local/lib',
                '/usr/lib'
-              )
+    )
+  find_library('exslt', 'exsltFuncRegister',
+               LIBDIR,
+               '/opt/local/lib',
+               '/usr/local/lib',
+               '/usr/lib'
+    )
 end
 
 
@@ -70,6 +76,14 @@ else
                     )
     abort &quot;need libxslt&quot;
   end
+  unless find_header('libexslt/exslt.h',
+                     INCLUDEDIR,
+                     '/usr/include',
+                     '/opt/local/include',
+                     '/usr/local/include'
+                    )
+    abort &quot;need libxslt&quot;
+  end
 
   version = try_constant('LIBXML_VERSION', 'libxml/xmlversion.h')
 end</diff>
      <filename>ext/nokogiri/extconf.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,7 @@
 #include &lt;libxslt/xsltInternals.h&gt;
 #include &lt;libxslt/xsltutils.h&gt;
 #include &lt;libxslt/transform.h&gt;
+#include &lt;libexslt/exslt.h&gt;
 
 static void dealloc(xsltStylesheetPtr doc)
 {
@@ -22,6 +23,7 @@ static VALUE parse_stylesheet_doc(VALUE klass, VALUE xmldocobj)
     xmlDocPtr xml ;
     xsltStylesheetPtr ss ;
     Data_Get_Struct(xmldocobj, xmlDoc, xml);
+    exsltRegisterAll();
     ss = xsltParseStylesheetDoc(xmlCopyDoc(xml, 1)); /* 1 =&gt; recursive */
     return Data_Wrap_Struct(klass, NULL, dealloc, ss);
 }</diff>
      <filename>ext/nokogiri/xslt_stylesheet.c</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,8 @@ module Nokogiri
     ASSETS_DIR = File.join(File.dirname(__FILE__), 'files')
     XML_FILE = File.join(ASSETS_DIR, 'staff.xml')
     XSLT_FILE = File.join(ASSETS_DIR, 'staff.xslt')
+    EXSLT_FILE = File.join(ASSETS_DIR, 'exslt.xslt')
+    EXML_FILE = File.join(ASSETS_DIR, 'exslt.xml')
     HTML_FILE = File.join(ASSETS_DIR, 'tlm.html')
 
     unless RUBY_VERSION &gt;= '1.9'</diff>
      <filename>test/helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,4 +26,19 @@ class TestXsltTransforms &lt; Nokogiri::TestCase
     assert result = style.apply_to(doc)
     assert_match %r{&lt;h1&gt;&lt;/h1&gt;}, result
   end
+  
+  def test_exslt
+    assert doc = Nokogiri::XML.parse(File.read(EXML_FILE))
+    assert doc.xml?
+    
+    assert style = Nokogiri::XSLT.parse(File.read(EXSLT_FILE))
+    result_doc = Nokogiri::XML.parse(style.apply_to(doc))
+    
+    assert_equal 'func-result', result_doc.at('/root/function').content
+    assert_equal 3, result_doc.at('/root/max').content.to_i
+    assert_match(
+      /\d{4}-\d\d-\d\d-\d\d:\d\d/, 
+      result_doc.at('/root/date').content
+      )
+  end
 end</diff>
      <filename>test/test_xslt_transforms.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>db4ab120bdef14ec09c5dd61247e860492a9afc7</id>
    </parent>
  </parents>
  <author>
    <name>Rick Frankel</name>
    <email>rick@RafBook.local</email>
  </author>
  <url>http://github.com/tenderlove/nokogiri/commit/00ce67a6dc3b0fe1015033aa18616440cdf804d9</url>
  <id>00ce67a6dc3b0fe1015033aa18616440cdf804d9</id>
  <committed-date>2008-12-16T16:11:22-08:00</committed-date>
  <authored-date>2008-12-12T18:58:48-08:00</authored-date>
  <message>add exslt support</message>
  <tree>86a456676b6703b35a6711263d2d6274e75f0b42</tree>
  <committer>
    <name>Mike Dalessio</name>
    <email>mike@csa.net</email>
  </committer>
</commit>
