From 43ee4d4b17dcd36d903572e62b756d6db9828846 Mon Sep 17 00:00:00 2001
From: Keith Fahlgren <abdelazer@users.sourceforge.net>
Date: Wed, 8 Oct 2008 18:09:13 +0000
Subject: [PATCH] Better dc:publisher (ALWAYS WRITE TESTS FIRST!)

---
 xsl/epub/bin/spec/epub_realbook_spec.rb  | 4 ++++
 xsl/epub/bin/spec/files/orm.book.001.xml | 3 +--
 xsl/epub/docbook.xsl                     | 6 +++++-
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/xsl/epub/bin/spec/epub_realbook_spec.rb b/xsl/epub/bin/spec/epub_realbook_spec.rb
index 8f89e4799..6167a3d9d 100755
--- a/xsl/epub/bin/spec/epub_realbook_spec.rb
+++ b/xsl/epub/bin/spec/epub_realbook_spec.rb
@@ -74,6 +74,10 @@ describe DocBook::Epub do
     @opf_lines.to_s.should =~ /rights[^>]+>Copyright © dddd O/
   end
 
+  it "should use the <publishername> as dc:publisher for the 'Real Book' test document #{@xml_file}" do
+    @opf_lines.to_s.should =~ /publisher[^>]+>O'Rxxxxx Mxxxx, Ixx.</
+  end
+
   after(:all) do
     FileUtils.rm_r(@tmpdir, :force => true)
     FileUtils.rm_r(@tmpdir2, :force => true)
diff --git a/xsl/epub/bin/spec/files/orm.book.001.xml b/xsl/epub/bin/spec/files/orm.book.001.xml
index ae8767bb6..c63ab7742 100644
--- a/xsl/epub/bin/spec/files/orm.book.001.xml
+++ b/xsl/epub/bin/spec/files/orm.book.001.xml
@@ -61,8 +61,7 @@
     <!-- All rights reserved. -->
     <!-- Published by -->
     <publisher>
-      <publishername>
-O’Rxxxxx Mxxxx, Ixx.    </publishername>
+      <publishername>O'Rxxxxx Mxxxx, Ixx.</publishername>
       <address format="linespecific">
         <street>dddd Gxxxxxxxxxx Hxxxxxx Nxxxx</street>
         <city>Sxxxxxxxxx</city>
diff --git a/xsl/epub/docbook.xsl b/xsl/epub/docbook.xsl
index 8ecd18374..e87ca70d7 100644
--- a/xsl/epub/docbook.xsl
+++ b/xsl/epub/docbook.xsl
@@ -550,7 +550,11 @@
     </xsl:element>
   </xsl:template>
 
-  <xsl:template match="publisher/publishername|publishername" mode="opf.metadata">
+  <xsl:template match="publisher" mode="opf.metadata">
+    <xsl:apply-templates select="publishername" mode="opf.metadata"/>
+  </xsl:template>
+  
+  <xsl:template match="publishername" mode="opf.metadata">
     <xsl:element name="dc:publisher">
       <xsl:value-of select="normalize-space(string(.))"/>
     </xsl:element>
-- 
2.40.0