Org reader: fix parsing of empty comment lines

Comment lines in Org-mode can be completely empty; both of these line
should produce no output:

    # a comment
    #

The reader used to produce a wrong result for the latter, but ignores
that line as well now.

Fixes: #5856
This commit is contained in:
Albert Krewinkel 2019-10-27 22:39:32 +01:00
parent bef124c98c
commit 909083090a
No known key found for this signature in database
GPG key ID: 388DC0B21F631124
2 changed files with 14 additions and 2 deletions

View file

@ -92,7 +92,9 @@ metaLineStart :: Monad m => OrgParser m ()
metaLineStart = try $ skipSpaces <* string "#+"
commentLineStart :: Monad m => OrgParser m ()
commentLineStart = try $ skipSpaces <* string "# "
commentLineStart = try $
-- the first char after '#' must be a plain space character or a newline
skipSpaces <* string "#" <* lookAhead (oneOf " \n")
exampleLineStart :: Monad m => OrgParser m ()
exampleLineStart = () <$ try (skipSpaces *> string ": ")

View file

@ -73,13 +73,23 @@ tests =
"----- em and en dash" =?>
para "\8212\8211 em and en dash"
, "Comment Block" =:
, testGroup "Comments"
[ "Comment Block" =:
T.unlines [ "#+BEGIN_COMMENT"
, "stuff"
, "bla"
, "#+END_COMMENT"] =?>
(mempty::Blocks)
, "Comment line" =:
T.unlines [ "# this is a comment" ] =?>
(mempty :: Blocks)
, "Empty comment line" =:
T.unlines [ " #" ] =?>
(mempty :: Blocks)
]
, testGroup "Blocks and fragments"
[ "HTML block" =:
T.unlines [ "#+BEGIN_HTML"