@@ -652,30 +652,45 @@ elemToParagraphStyle ns element
652652 }
653653elemToParagraphStyle _ _ = defaultParagraphStyle
654654
655+checkOnOff :: NameSpaces -> Element -> QName -> Bool
656+checkOnOff ns rPr tag
657+ | Just t <- findChild tag rPr
658+ , Just val <- findAttr (elemName ns "w" "val") t =
659+ case val of
660+ "true" -> True
661+ "false" -> False
662+ "on" -> True
663+ "off" -> False
664+ "1" -> True
665+ "0" -> False
666+ _ -> False
667+ | Just _ <- findChild tag rPr = True
668+checkOnOff _ _ _ = False
669+
655670
656671elemToRunStyle :: NameSpaces -> Element -> RunStyle
657672elemToRunStyle ns element
658673 | Just rPr <- findChild (elemName ns "w" "rPr") element =
659674 RunStyle
660675 {
661− isBold = isJust $ findChild (QName "b" (lookup "w" ns) (Just "w")) rPr
662− , isItalic = isJust $ findChild (QName "i" (lookup "w" ns) (Just "w")) rPr
663− , isSmallCaps = isJust $ findChild (QName "smallCaps" (lookup "w" ns) (Just "w")) rPr
664− , isStrike = isJust $ findChild (QName "strike" (lookup "w" ns) (Just "w")) rPr
676+ isBold = checkOnOff ns rPr (elemName ns "w" "b")
677+ , isItalic = checkOnOff ns rPr (elemName ns "w" "i")
678+ , isSmallCaps = checkOnOff ns rPr (elemName ns "w" "smallCaps")
679+ , isStrike = checkOnOff ns rPr (elemName ns "w" "strike")
665680 , isSuperScript =
666681 (Just "superscript" ==
667− (findChild (QName "vertAlign" (lookup "w" ns) (Just "w")) rPr >>=
668− findAttr (QName "val" (lookup "w" ns) (Just "w"))))
682+ (findChild (elemName ns "w" "vertAlign") rPr >>=
683+ findAttr (elemName ns "w" "val")))
669684 , isSubScript =
670685 (Just "subscript" ==
671− (findChild (QName "vertAlign" (lookup "w" ns) (Just "w")) rPr >>=
672− findAttr (QName "val" (lookup "w" ns) (Just "w"))))
686+ (findChild (elemName ns "w" "vertAlign") rPr >>=
687+ findAttr (elemName ns "w" "val")))
673688 , rUnderline =
674− findChild (QName "u" (lookup "w" ns) (Just "w")) rPr >>=
675− findAttr (QName "val" (lookup "w" ns) (Just "w"))
689+ findChild (elemName ns "w" "u") rPr >>=
690+ findAttr (elemName ns "w" "val")
676691 , rStyle =
677− findChild (QName "rStyle" (lookup "w" ns) (Just "w")) rPr >>=
678− findAttr (QName "val" (lookup "w" ns) (Just "w"))
692+ findChild (elemName ns "w" "rStyle") rPr >>=
693+ findAttr (elemName ns "w" "val")
679694 }
680695elemToRunStyle _ _ = defaultRunStyle
681696