git.iko.soy/typeable/pandoc
on master help sign in
LaTeX reader: don't let `\egroup` match `{`.
e752669John MacFarlane
src/Text/Pandoc/Readers/LaTeX/Parsing.hs+3−3
@@ -612,19 +612,19 @@ braced' :: PandocMonad m => LP m Tok -> Int -> LP m [Tok]
612braced' getTok n =
612braced' getTok n =
613 handleEgroup <|> handleBgroup <|> handleOther
613 handleEgroup <|> handleBgroup <|> handleOther
614 where handleEgroup = do
614 where handleEgroup = do
615− t <- egroup
615+ t <- symbol '}'
616 if n == 1
616 if n == 1
617 then return []
617 then return []
618 else (t:) <$> braced' getTok (n - 1)
618 else (t:) <$> braced' getTok (n - 1)
619 handleBgroup = do
619 handleBgroup = do
620− t <- bgroup
620+ t <- symbol '{'
621 (t:) <$> braced' getTok (n + 1)
621 (t:) <$> braced' getTok (n + 1)
622 handleOther = do
622 handleOther = do
623 t <- getTok
623 t <- getTok
624 (t:) <$> braced' getTok n
624 (t:) <$> braced' getTok n
625
625
626braced :: PandocMonad m => LP m [Tok]
626braced :: PandocMonad m => LP m [Tok]
627−braced = bgroup *> braced' anyTok 1
627+braced = symbol '{' *> braced' anyTok 1
628
628
629-- URLs require special handling, because they can contain %
629-- URLs require special handling, because they can contain %
630-- characters. So we retonenize comments as we go...
630-- characters. So we retonenize comments as we go...
test/command/tex-group.mdnew file+12
@@ -0,0 +1,12 @@
1+```
2+% pandoc -f latex -t html
3+\newenvironment{foo}%
4+{\emph\bgroup}%
5+{\egroup}
6+
7+\begin{foo}
8+hi
9+\end{foo}
10+^D
11+<p><em>hi</em></p>
12+```