@@ -530,10 +530,16 @@ verbTok stopchar = do
530530 : totoks (incSourceColumn pos (i + 1)) (T.drop 1 t2) ++ inp
531531 return $ Tok pos toktype t1
532532
533+listingsLanguage :: [(String, String)] -> Maybe String
534+listingsLanguage opts =
535+ case lookup "language" opts of
536+ Nothing -> Nothing
537+ Just l -> fromListingsLanguage l `mplus` Just l
538+
533539dolstinline :: PandocMonad m => LP m Inlines
534540dolstinline = do
535541 options <- option [] keyvals
536− let classes = maybeToList $ lookup "language" options >>= fromListingsLanguage
542+ let classes = maybeToList $ listingsLanguage options
537543 doinlinecode classes
538544
539545domintinline :: PandocMonad m => LP m Inlines
@@ -2041,8 +2047,7 @@ parseListingsOptions options =
20412047 else k, v) | (k,v) <- options ]
20422048 classes = [ "numberLines" |
20432049 lookup "numbers" options == Just "left" ]
2044− ++ maybeToList (lookup "language" options
2045− >>= fromListingsLanguage)
2050+ ++ maybeToList (listingsLanguage options)
20462051 in (fromMaybe "" (lookup "label" options), classes, kvs)
20472052
20482053inputListing :: PandocMonad m => LP m Blocks
@@ -2058,15 +2063,16 @@ inputListing = do
20582063 report $ CouldNotLoadIncludeFile f pos
20592064 return []
20602065 let (ident,classes,kvs) = parseListingsOptions options
2061− let language = case lookup "language" options >>= fromListingsLanguage of
2062− Just l -> [l]
2063− Nothing -> take 1 $ languagesByExtension (takeExtension f)
2066+ let classes' =
2067+ (case listingsLanguage options of
2068+ Nothing -> (take 1 (languagesByExtension (takeExtension f)) ++)
2069+ Just _ -> id) classes
20642070 let firstline = fromMaybe 1 $ lookup "firstline" options >>= safeRead
20652071 let lastline = fromMaybe (length codeLines) $
20662072 lookup "lastline" options >>= safeRead
20672073 let codeContents = intercalate "\n" $ take (1 + lastline - firstline) $
20682074 drop (firstline - 1) codeLines
2069− return $ codeBlockWith (ident,ordNub (classes ++ language),kvs) codeContents
2075+ return $ codeBlockWith (ident,classes',kvs) codeContents
20702076
20712077-- lists
20722078