@@ -1133,6 +1133,7 @@ htmlTag :: (HasReaderOptions st, Monad m)
11331133 -> ParserT [Char] st m (Tag String, String)
11341134htmlTag f = try $ do
11351135 lookAhead (char '<')
1136+ startpos <- getPosition
11361137 inp <- getInput
11371138 let ts = canonicalizeTags $ parseTagsOptions
11381139 parseOptions{ optTagWarning = False
@@ -1153,11 +1154,17 @@ htmlTag f = try $ do
11531154 [] -> False
11541155 (c:cs) -> isLetter c && all isNameChar cs
11551156
1156− let endAngle = try $ do char '>'
1157− pos <- getPosition
1158− guard $ (sourceLine pos == ln &&
1159− sourceColumn pos >= col) ||
1160− sourceLine pos > ln
1157+ let endpos = if ln == 1
1158+ then setSourceColumn startpos
1159+ (sourceColumn startpos + (col - 1))
1160+ else setSourceColumn (setSourceLine startpos
1161+ (sourceLine startpos + (ln - 1)))
1162+ col
1163+ let endAngle = try $
1164+ do char '>'
1165+ pos <- getPosition
1166+ guard $ pos >= endpos
1167+
11611168 let handleTag tagname = do
11621169 -- basic sanity check, since the parser is very forgiving
11631170 -- and finds tags in stuff like x<y)