@@ -1332,9 +1332,9 @@ textualCite = try $ do
13321332 spnl
13331333 char '['
13341334 spnl
1335− bareloc <- option "" locator
1335+ bareloc <- option "" $ notFollowedBy (oneOf "-@") >> locator
13361336 rest <- many $ try $ do
1337− char ';'
1337+ optional $ char ';'
13381338 spnl
13391339 citation
13401340 spnl
@@ -1366,10 +1366,10 @@ locator = try $ do
13661366 (char '\n' >> notFollowedBy blankline >> return ' ')
13671367
13681368prefix :: GenParser Char st String
1369−prefix = try $ liftM removeLeadingTrailingSpace $
1370− many $ (char '\\' >> anyChar) <|> noneOf "@]\n" <|>
1371− (char '-' >> notFollowedBy (char '@') >> return '-') <|>
1372− (char '\n' >> notFollowedBy blankline >> return ' ')
1369+prefix = liftM removeLeadingTrailingSpace $
1370+ many $ (char '\\' >> anyChar) <|> noneOf "-@]\n" <|>
1371+ (try $ char '-' >> notFollowedBy (char '@') >> return '-') <|>
1372+ (try $ char '\n' >> notFollowedBy blankline >> return ' ')
13731373
13741374citeList :: GenParser Char st [Citation]
13751375citeList = try $ do
@@ -1387,10 +1387,10 @@ citeList = try $ do
13871387
13881388citation :: GenParser Char st Citation
13891389citation = try $ do
1390− suppress_auth <- option False (char '-' >> return True)
13911390 pref <- prefix
1391+ suppress_auth <- option False (char '-' >> return True)
13921392 key <- citeKey
1393− loc <- locator
1393+ loc <- option "" locator
13941394 return $ Citation{ citationId = key
13951395 , citationPrefix = pref
13961396 , citationLocator = loc