From 465c28d28e1017040a41653edb6248056f178d3b Mon Sep 17 00:00:00 2001
From: Milan Bracke <mbracke@antidot.net>
Date: Thu, 24 Jun 2021 09:27:28 +0200
Subject: [PATCH] Docx reader: fix handling of empty fields

Some fields only have an instrText and no content, Pandoc didn't
understand these, causing other fields to be misunderstood because it
seemed like a field was still open when it wasn't.
---
 src/Text/Pandoc/Readers/Docx/Parse.hs |   4 ++++
 test/Tests/Readers/Docx.hs            |   4 ++++
 test/docx/empty_field.docx            | Bin 0 -> 14312 bytes
 test/docx/empty_field.native          |   7 +++++++
 4 files changed, 15 insertions(+)
 create mode 100644 test/docx/empty_field.docx
 create mode 100644 test/docx/empty_field.native

diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs
index a97d4b3d1..0021741ed 100644
--- a/src/Text/Pandoc/Readers/Docx/Parse.hs
+++ b/src/Text/Pandoc/Readers/Docx/Parse.hs
@@ -844,6 +844,10 @@ elemToParPart ns element
         FldCharFieldInfo info : ancestors | fldCharType == "separate" -> do
           modify $ \st -> st {stateFldCharState = FldCharContent info [] : ancestors}
           return NullParPart
+        -- Some fields have no content, since Pandoc doesn't understand any of those fields, we can just close it.
+        FldCharFieldInfo _ : ancestors | fldCharType == "end" -> do
+          modify $ \st -> st {stateFldCharState = ancestors}
+          return NullParPart
         [FldCharContent info children] | fldCharType == "end" -> do
           modify $ \st -> st {stateFldCharState = []}
           return $ Field info $ reverse children
diff --git a/test/Tests/Readers/Docx.hs b/test/Tests/Readers/Docx.hs
index ea4094c82..be5b89b88 100644
--- a/test/Tests/Readers/Docx.hs
+++ b/test/Tests/Readers/Docx.hs
@@ -151,6 +151,10 @@ tests = [ testGroup "document"
             "nested fields with <w:instrText> tag"
             "docx/nested_instrText.docx"
             "docx/nested_instrText.native"
+          , testCompare
+            "empty fields with <w:instrText> tag"
+            "docx/empty_field.docx"
+            "docx/empty_field.native"
           , testCompare
             "pageref hyperlinks in <w:instrText> tag"
             "docx/pageref.docx"
diff --git a/test/docx/empty_field.docx b/test/docx/empty_field.docx
new file mode 100644
index 0000000000000000000000000000000000000000..fb3830b0dfad5d1884474de36dcab52187d53b1a
GIT binary patch
literal 14312
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

literal 0
HcmV?d00001

diff --git a/test/docx/empty_field.native b/test/docx/empty_field.native
new file mode 100644
index 000000000..18d892454
--- /dev/null
+++ b/test/docx/empty_field.native
@@ -0,0 +1,7 @@
+[Para
+    [Str "\24076\26395\28145\20837\20102\35299\30340\35835\32773\21487\20197\21435\30475David",Space,Str "French",Space,Str "Belding\21644Kevin",Space,Str "J.",Space,Str "Mitchell\30340"
+    ,Link ("",[],[]) [Str "Foundations",Space,Str "of",Space,Str "Analysis,",Space,Str "2nd",Space,Str "Edition"] ("https://books.google.com/books?id=sp_Zcb9ot90C&lpg=PR4&hl=zh-CN&pg=PA19#v=onepage&q&f=true",""),Str ",\21487\20174\&19\39029\30475\36215\65292\25110D.C.",Space,Str "Goldrei\30340",Space
+    ,Link ("",[],[]) [Str "Classic",Space,Str "Set",Space,Str "Theory:",Space,Str "For",Space,Str "Guided",Space,Str "Independent",Space,Str "Study"] ("https://books.google.ae/books?id=dlc0DwAAQBAJ&lpg=PT29&hl=zh-CN&pg=PT26#v=onepage&q&f=true","")
+    ,Str "\65292\20174\31532\20108\31456\30475\36215\65292\38405\35835\26102\35201\27880\24847\26412\25991\19982\36825\20123\20070\25152\19981\21516\30340\26159\24182\27809\26377\25226\23454\25968\30475\20316\26159\26377\29702\25968\38598\30340\20998\21106\12290"]
+,Para [Str "Index:"]
+,Para [Str "French,",Space,Str "1"]]