From c74c5fdd97e8bf4c160a42dff72e3a521294bcda Mon Sep 17 00:00:00 2001
From: Hubert Plociniczak <hubert.plociniczak@gmail.com>
Date: Tue, 18 Oct 2016 10:50:37 +0200
Subject: [PATCH] Issue 3143: Don't duplicate text for anchors

When creating an anchor element we were adding its representation
as well as the original content, leading to text duplication.
---
 src/Text/Pandoc/Readers/Odt/ContentReader.hs |   5 ++---
 tests/odt/native/referenceToText.native      |   2 +-
 tests/odt/odt/referenceToText.odt            | Bin 10179 -> 10208 bytes
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/Text/Pandoc/Readers/Odt/ContentReader.hs b/src/Text/Pandoc/Readers/Odt/ContentReader.hs
index 8c475eefc..ffd2f61d1 100644
--- a/src/Text/Pandoc/Readers/Odt/ContentReader.hs
+++ b/src/Text/Pandoc/Readers/Odt/ContentReader.hs
@@ -713,9 +713,8 @@ maybeAddAnchorFrom anchorReader =
   >>>
   proc (inlines, fAnchorElem) -> do
   case fAnchorElem of
-    Right anchorElem ->
-      arr (anchorElem <>) -<< inlines
-    Left _ -> returnA -< inlines
+    Right anchorElem -> returnA -< anchorElem
+    Left _           -> returnA -< inlines
   where
     toAnchorElem :: Anchor -> Inlines
     toAnchorElem anchorID = spanWith (anchorID, [], []) mempty
diff --git a/tests/odt/native/referenceToText.native b/tests/odt/native/referenceToText.native
index 1d80e2d0d..a2c3e588d 100644
--- a/tests/odt/native/referenceToText.native
+++ b/tests/odt/native/referenceToText.native
@@ -1 +1 @@
-[Para [Span ("an anchor",[],[]) [],Str "Some",Space,Str "text."],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Link ("",[],[]) [Str "Some",Space,Str "text"] ("#an anchor",""),Str "."]]
+[Para [Span ("an anchor",[],[]) [],Str "Some",Space,Str "text."],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Link ("",[],[]) [Str "Some",Space,Str "text"] ("#an anchor",""),Str "."],Para [Str "Some",Space,Str "text",LineBreak,Str "Another",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "link",Span ("anchor",[],[]) []]]
diff --git a/tests/odt/odt/referenceToText.odt b/tests/odt/odt/referenceToText.odt
index 281055aa0fa17d563498495ff129ef0446be283a..19237e6f179ac80ec482c73b0b82527e45568c81 100644
GIT binary patch
delta 1269
zcmZ`(e>jtS6o2>5+<veryIRY-bvLVq-MTC*mzGH3)uftQOlfABHHIr<DKhh`-EU3h
zauw>CF7eou>#AJTBdsgSEhM6nRTEQsp3;5wf9E{UInVi=&pGF>^J&>OxD8m@kk!RJ
z@EAi>r{F;wn#^)QfQew0gB57Tkbnpi2&ga(W%z+FC<bt(x{2io2F6+d0-aoU9Ja+O
zun;r{V&n#GeR+koDFm%Z)(|uwf}n^)(s-dXo|zOQsp268y{m1SKJY@c5BTF<1Z@%g
zuySXGU*lN%uCWA}WzD$nL3fLpREq60Xo;7;sit*u;O^vPZe4(<seBpVRTIrZZk07=
zl<r^u@*oRI`}|3h7U21B7-Ck$wJ(lrh^+8_zWw6qNkz8Ev50b^yWEx09o}FdZqc2M
zILqWxcJE$P{7_H6o{$nd-{V-LB+K0`Apemq(@9!s-yE7KEhW=^|8&#)3&!~E?v7m*
z@2fjt`whXhwtHhPw)ZytSf;D244RUb8&vrwlS!<sKeju^(T@r<L<%CVr_G5{aLcSb
zJsKV&Xiap`ZfAD(ORU+~*gG3Ttta_W1uTj63(bIXuzNVQkN~Ll9j6C-JVX;}&yV5L
zNy)iQ;UlstrAMu5aah03pnN-_@2PrlPDbin_TkNwCn?EEZ%Z#<9={{Yx`-9=hO8{2
zDgRA$>5eW5F4z*Q;9nK@P3srbXN_x4$SnH)cAGL?y1kBHmNDl=%it+TBgaP+FjW28
zjAeyH4eyE2Tos&|(GAr1_5`X1VhQ)D@xqC{X2}R8^nUVqm-FqhsrJ;QrXSvlA$?v)
zkZbV5T0^3YS2{Em$a#==($9#<qvF**i7sx|F4uEDX+#P`&L#04|GvzMUCdCp#nqSo
zTC$LN@>;+@^3F9#38#vaYy0ewis~I#yJ7Rf<l--79M;p0OuNEW`(>*Qi)@bUn-=Di
z#G`98)!g$#X&I8XDhlIWID4-u*SP6bqw<*h3sa3VX(|3lsX3xO34Z{8=Qn}MrFhuI
zYk+h9%_W7XChKNGc8ZaU7u!oS20W(;55)q-S|fM8b91cb#4pA9VWUT$db0Z)9+%JD
zb(&cf)aG57LvwoGZwJ5EGK&Z21*h}PEsDYnS;Wm>m-`v5*ws6|1ZQ50nqC!(-U$T1
zj~It;T$aI~tH1xwPv+@i^Af)UPv1sXHanc-oKl3ZojG~)nshnWg2;~^_BZHTZBjHU
zhKZU_R<}9-wRB6-88&h+`s1Myi8jrYUPPaY>$2>YQz)O!Kfk(>EeX5=CEyaIA?$mZ
z8y|H(KHeqGI}w#x{!EG-ogR<$>T5;vGJA@8pH^R$Gv}v|kS6fHZ_EcSjJDU@FZqL2
zhvg|SK#e2UsqGP*+7bbUIAR@P?m=77NL`76)Fljnr`dx7DjvfFB~&WV(ujaT!(;Nm
zI$8jH2Lf5Nwcv>Z9s>b8hjpL{ZLz^!+EzFY0~WwbK^cwwb-EISIrv}((YOc*;5k6D
zV&!5I3_*y`j*ZS+12_K^vrj6H6w1FoJeW&oz^Pb}4wId@{up=zmiSGbK&1k;Wk+@C
zT1${Zr+|4Y$S`9bps!$CiBTbm5ytPE6%pV;Wmx49P(X}Ahh;*bM2|co03Dr8Guc6q
bJpQmmD4(Tr{c)DFOBbLnvw)yI)Y<BPRNX0H

delta 1228
zcmaFhf7pL=H-GSCHb#+&PedlaRpy$=ls|EK@#G*zzsY)xDwB^edQDycq<a`eCNEHB
zVJk??OU=>WT+3|8Jdstjo|}PzAvr&<BsH%@uOc^RX}E9yEdznQ-@{#2UWxv|w06sq
z16fyB1ub>8-Jtz7ONRN{FXgSWO#k;Kx3e5p6X-mxS8;E4<vhv$vtKgxE4D1YWuTh=
zvEYM%dx+3f!<{pa=C9vB>G+S#f0?VUWxHj}(hTCz%5|Eu<%2!bHj~WMxku|;r>#8H
zHZvs2(KpL;RgqS9nAD<R`PET|-wsq?wzWu!-nG5<BwzKhqpSZ-1ai}*rUSX$p1d!!
zuTI}%ZWF0}V%Ld{sp4AS=A8T<xo4}Hzo6FXqJTbjulx%IMl%)ib6F;{O&6b49pWbN
z^a`tShK0l;DeV<UYrk6NXn2Yxxz?Ayzmm{xA9D4L*<S0U?JqreZzkQ{ZEo{p&z{F?
z>MM^&o)Eo}XPxz_LoDG-y_o*;xC@K&b=qycMK9{S-+Puz_S4j$-VpZ{d@H6~S5^Gz
zTJ@fB*B&l?)6F651x2EM2I{`Yre=6cJ!s<);JmxjELZBj>Y)+=w-rX_36o2A{o7qp
zA2~@^^ao4Y_Jf?0k0n)}>M3)5ap$G^lFW5ma)ma(vo}~6wb<?UHLiQLcjj(w%PX0-
z)yeUk#KDX0&C}mV=-SUed-(NV14p?lCVGqa*s1b<+abH_{K~XE^%=X}JX#u;I2Nz4
z;k^;6FE{gGtV!4NuSbJT*E*g(B&D|?rI*v!$ZJRaO#ju4mvr2(mM>2h)8B9>!LCPn
zhKQ+)LEQ>n!(He8GfPLy9r5}oCf@k5ZMOW3%~R8K?fj-qc$ags&Fh4sjAF1+a$al2
zHJ<IAYp&<-<QKHu%#wD4kNLXjAGa6Nn>O&cd+YdqQIp)Gn9)5!-y-~3HTO27nCTS;
z)4Hln<WAqcS<n96-97eiWz6x`&;oOVNfq{v?(0L!GWP8#KUMQ8Uc2p|_5;sr7Qc2#
z{9M{IbIxPuMO@tBcD@!o-WGofHtpHzbs+y7cd{u*z@?LWPv6Ym`||gm1IKsI{j(-6
zd>_-@$kW<g=WBulryCqJUbFcJ$Hfxgt?FEB?l1KCpvJ+RD0%Qiz<n*=h10wO^0Sv7
zl6bGg*QfN^Zr8lU#|l$IOC-7NT*bZL-8)<$y7TD{L$&EvOn+Z2z8s)p_1dfC+J+U6
zmmmCNAK=Z-;q+t6Uu|XvhG-rJh6z%eKk;V?Ph^tV?84>CI+0Cevk{XoBMT#w2*c!l
zekn0venSGenYpPYl?ADjFQ~{&j#J@d^qqW5S$T4jvJzwSL}{(b>y>5r<&o4gFx;A~
zpyI<M&Nw+w#cc8$u#Vp<o=okGlVup?CcCI;Fz%n+tLn=1m2q+(SU_sBnJOQXF4N>b
zRk6vhRQV=1GfMy+3InN3ljGIoOhp((7&tgM7*vZ+x*_`qR6ZcUL{^m2VseDK7SmUb
z$t~&@Ts#5{48<jtIjO~y*Qx0-mCH=Nr)I&kO_qTH=)*)%*)sWqsut4?#mO>ik|L~Z
RAVUR#uz-bu!B!c>0|1$g?u7sV