From b80de325b75671fe923aac8834caedbe0c795b63 Mon Sep 17 00:00:00 2001
From: fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>
Date: Thu, 31 Dec 2009 01:11:49 +0000
Subject: [PATCH] Moved odt-styles -> odt. Changed ODT module to look at user
 data first.

So if the user has an odt-styles directory in ~/.pandoc, it
will be used instead of the default.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1694 788f1e2b-df1e-0410-8736-df70ead52e1b
---
 data/{odt-styles => odt}/META-INF/manifest.xml    |   0
 data/{odt-styles => odt}/Thumbnails/thumbnail.png | Bin
 data/{odt-styles => odt}/meta.xml                 |   0
 data/{odt-styles => odt}/mimetype                 |   0
 data/{odt-styles => odt}/settings.xml             |   0
 data/{odt-styles => odt}/styles.xml               |   0
 pandoc.cabal                                      |  12 ++++++------
 src/Text/Pandoc/ODT.hs                            |   8 +++++++-
 8 files changed, 13 insertions(+), 7 deletions(-)
 rename data/{odt-styles => odt}/META-INF/manifest.xml (100%)
 rename data/{odt-styles => odt}/Thumbnails/thumbnail.png (100%)
 rename data/{odt-styles => odt}/meta.xml (100%)
 rename data/{odt-styles => odt}/mimetype (100%)
 rename data/{odt-styles => odt}/settings.xml (100%)
 rename data/{odt-styles => odt}/styles.xml (100%)

diff --git a/data/odt-styles/META-INF/manifest.xml b/data/odt/META-INF/manifest.xml
similarity index 100%
rename from data/odt-styles/META-INF/manifest.xml
rename to data/odt/META-INF/manifest.xml
diff --git a/data/odt-styles/Thumbnails/thumbnail.png b/data/odt/Thumbnails/thumbnail.png
similarity index 100%
rename from data/odt-styles/Thumbnails/thumbnail.png
rename to data/odt/Thumbnails/thumbnail.png
diff --git a/data/odt-styles/meta.xml b/data/odt/meta.xml
similarity index 100%
rename from data/odt-styles/meta.xml
rename to data/odt/meta.xml
diff --git a/data/odt-styles/mimetype b/data/odt/mimetype
similarity index 100%
rename from data/odt-styles/mimetype
rename to data/odt/mimetype
diff --git a/data/odt-styles/settings.xml b/data/odt/settings.xml
similarity index 100%
rename from data/odt-styles/settings.xml
rename to data/odt/settings.xml
diff --git a/data/odt-styles/styles.xml b/data/odt/styles.xml
similarity index 100%
rename from data/odt-styles/styles.xml
rename to data/odt/styles.xml
diff --git a/pandoc.cabal b/pandoc.cabal
index 6c9189774..5f7cc791e 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -43,12 +43,12 @@ Data-Files:
                  templates/rst.template, templates/s5.template,
                  templates/mediawiki.template, templates/rtf.template,
                  -- data for ODT writer
-                 data/odt-styles/meta.xml,
-                 data/odt-styles/settings.xml,
-                 data/odt-styles/META-INF/manifest.xml,
-                 data/odt-styles/Thumbnails/thumbnail.png,
-                 data/odt-styles/styles.xml,
-                 data/odt-styles/mimetype,
+                 data/odt/meta.xml,
+                 data/odt/settings.xml,
+                 data/odt/META-INF/manifest.xml,
+                 data/odt/Thumbnails/thumbnail.png,
+                 data/odt/styles.xml,
+                 data/odt/mimetype,
                  -- data for LaTeXMathML writer
                  data/LaTeXMathML.js.comment,
                  data/LaTeXMathML.js.packed,
diff --git a/src/Text/Pandoc/ODT.hs b/src/Text/Pandoc/ODT.hs
index d2e8f45f8..01390cbbf 100644
--- a/src/Text/Pandoc/ODT.hs
+++ b/src/Text/Pandoc/ODT.hs
@@ -39,6 +39,7 @@ import Text.ParserCombinators.Parsec
 import System.Time
 import Text.Pandoc.Shared ( inDirectory )
 import Paths_pandoc ( getDataFileName )
+import System.Directory
 
 -- | Produce an ODT file from OpenDocument XML.
 saveOpenDocumentAsODT :: FilePath    -- ^ Pathname of ODT file to be produced.
@@ -46,7 +47,12 @@ saveOpenDocumentAsODT :: FilePath    -- ^ Pathname of ODT file to be produced.
                       -> String      -- ^ OpenDocument XML contents.
                       -> IO ()
 saveOpenDocumentAsODT destinationODTPath sourceDirRelative xml = do
-  refArchivePath <- getDataFileName $ "data" </> "odt-styles"
+  userDir <- getAppUserDataDirectory "pandoc"
+  userOdtExists <- doesFileExist $
+                      userDir </> "data" </> "odt" </> "styles.xml"
+  refArchivePath <- if userOdtExists
+                       then return $ userDir </> "data" </> "odt"
+                       else getDataFileName $ "data" </> "odt"
   refArchive <- inDirectory refArchivePath $
                   addFilesToArchive [OptRecursive] emptyArchive ["."]
   -- handle pictures