@@ -159,7 +159,7 @@ optionLine = try $ do
159159 "seq_todo" -> todoSequence >>= updateState . registerTodoSequence
160160 "typ_todo" -> todoSequence >>= updateState . registerTodoSequence
161161 "macro" -> macroDefinition >>= updateState . registerMacro
162− "exclude_tags" -> excludedTagSet >>= updateState . setExcludedTags
162+ "exclude_tags" -> excludedTagList >>= updateState . setExcludedTags
163163 "pandoc-emphasis-pre" -> emphChars >>= updateState . setEmphasisPreChar
164164 "pandoc-emphasis-post" -> emphChars >>= updateState . setEmphasisPostChar
165165 _ -> mzero
@@ -192,14 +192,17 @@ parseFormat = try $ replacePlain <|> replaceUrl <|> justAppend
192192 rest = manyTill anyChar (eof <|> () <$ oneOf "\n\r")
193193 tillSpecifier c = manyTill (noneOf "\n\r") (try $ string ('%':c:""))
194194
195−excludedTagSet :: Monad m => OrgParser m (Set.Set Tag)
196−excludedTagSet = do
195+excludedTagList :: Monad m => OrgParser m [Tag]
196+excludedTagList = do
197197 skipSpaces
198− Set.fromList . map Tag <$>
199− many (orgTagWord <* skipSpaces) <* newline
200−
201−setExcludedTags :: Set.Set Tag -> OrgParserState -> OrgParserState
202−setExcludedTags tagSet st = st { orgStateExcludedTags = tagSet }
198+ map Tag <$> many (orgTagWord <* skipSpaces) <* newline
199+
200+setExcludedTags :: [Tag] -> OrgParserState -> OrgParserState
201+setExcludedTags tagList st =
202+ let finalSet = if orgStateExcludedTagsChanged st
203+ then foldr Set.insert (orgStateExcludedTags st) tagList
204+ else Set.fromList tagList
205+ in st { orgStateExcludedTags = finalSet, orgStateExcludedTagsChanged = True}
203206
204207setEmphasisPreChar :: Maybe [Char] -> OrgParserState -> OrgParserState
205208setEmphasisPreChar csMb st =