From b594d97604d470997201c5061597540af23ab3b3 Mon Sep 17 00:00:00 2001 From: Victor Nawothnig Date: Fri, 11 Dec 2020 02:41:59 +0100 Subject: [PATCH] Check for text encoding correctly and avoid crash (#422) --- CHANGES.md | 9 ++++++--- XMonad/Util/DebugWindow.hs | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c509a548..6434dd51 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -254,7 +254,7 @@ * `XMonad.Util.EZConfig` - Added support for XF86Bluetooth. - + * `XMonad.Util.Loggers` - Make `battery` and `loadAvg` distro-independent. @@ -294,10 +294,13 @@ - Added `workspaceHistoryModify` to modify the workspace history with a pure function. - + * `XMonad.Hooks.DynamicLog` - - Add the -dock argument to the dzen spawn arguments + - Add the -dock argument to the dzen spawn arguments + + * `XMonad.Util.DebugWindow` + Fixed a bottom in `debugWindow` when used on windows with UTF8 encoded titles. ## 0.16 diff --git a/XMonad/Util/DebugWindow.hs b/XMonad/Util/DebugWindow.hs index 965e9bba..04cd4ef7 100644 --- a/XMonad/Util/DebugWindow.hs +++ b/XMonad/Util/DebugWindow.hs @@ -120,13 +120,13 @@ getDecodedStringProp w a = do tryUTF8 :: TextProperty -> X [String] tryUTF8 (TextProperty s enc _ _) = do uTF8_STRING <- getAtom "UTF8_STRING" - when (enc == uTF8_STRING) $ error "String is not UTF8_STRING" + when (enc /= uTF8_STRING) $ error "String is not UTF8_STRING" (map decodeString . splitNul) <$> io (peekCString s) tryCompound :: TextProperty -> X [String] tryCompound t@(TextProperty _ enc _ _) = do cOMPOUND_TEXT <- getAtom "COMPOUND_TEXT" - when (enc == cOMPOUND_TEXT) $ error "String is not COMPOUND_TEXT" + when (enc /= cOMPOUND_TEXT) $ error "String is not COMPOUND_TEXT" withDisplay $ \d -> io $ wcTextPropertyToTextList d t splitNul :: String -> [String]