From 11945ea5ec0a9ed42b0c24f6f9ecff69e86784a1 Mon Sep 17 00:00:00 2001
From: Jesse Rosenthal <jrosenthal@jhu.edu>
Date: Sun, 3 Nov 2019 21:25:56 -0500
Subject: Docx reader: Only use LTR when it is overriding BiDi setting

The left-to-right direction setting in docx is used in the spec only
for overriding an explicit right-to-left setting. We only process it
when it happens in a paragraph set with BiDi.

This is especially important for docs exported from Google Docs, which
explicitly (and unnecessarily) set "rtl=0" for every paragraph.

Closes: #5723
---
 src/Text/Pandoc/Readers/Docx/Parse.hs        | 3 +++
 src/Text/Pandoc/Readers/Docx/Parse/Styles.hs | 1 +
 2 files changed, 4 insertions(+)

(limited to 'src/Text/Pandoc/Readers/Docx')

diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs
index 8c5c94bb9..889bd80fc 100644
--- a/src/Text/Pandoc/Readers/Docx/Parse.hs
+++ b/src/Text/Pandoc/Readers/Docx/Parse.hs
@@ -224,6 +224,7 @@ data ParagraphStyle = ParagraphStyle { pStyle      :: [ParStyle]
                                      , indentation :: Maybe ParIndentation
                                      , dropCap     :: Bool
                                      , pChange     :: Maybe TrackedChange
+                                     , pBidi       :: Maybe Bool
                                      }
                       deriving Show
 
@@ -232,6 +233,7 @@ defaultParagraphStyle = ParagraphStyle { pStyle = []
                                        , indentation = Nothing
                                        , dropCap     = False
                                        , pChange     = Nothing
+                                       , pBidi       = Just False
                                        }
 
 
@@ -998,6 +1000,7 @@ elemToParagraphStyle ns element sty
                                          isElem ns "w" "moveFrom" e
                                   ) >>=
                       getTrackedChange ns
+      , pBidi = checkOnOff ns pPr (elemName ns "w" "bidi")
       }
 elemToParagraphStyle _ _ _ =  defaultParagraphStyle
 
diff --git a/src/Text/Pandoc/Readers/Docx/Parse/Styles.hs b/src/Text/Pandoc/Readers/Docx/Parse/Styles.hs
index c2d27e7fb..ac2d6fa07 100644
--- a/src/Text/Pandoc/Readers/Docx/Parse/Styles.hs
+++ b/src/Text/Pandoc/Readers/Docx/Parse/Styles.hs
@@ -40,6 +40,7 @@ module Text.Pandoc.Readers.Docx.Parse.Styles (
   , getNumInfo
   , elemToRunStyle
   , defaultRunStyle
+  , checkOnOff
   ) where
 import Prelude
 import Codec.Archive.Zip
-- 
cgit v1.2.3