Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e4a792a038 | ||
|
98b3b016c7 | ||
|
0be1c97f27 | ||
|
276d271e84 | ||
|
75dbc0186d | ||
|
598d795170 | ||
|
f5c5c1ad7d | ||
|
35c8a755ee | ||
|
19b1af31af | ||
|
1a7bf41edd | ||
|
50f4ba5762 | ||
|
6c437b1394 | ||
|
6d55f3e7db | ||
|
88e31326d0 | ||
|
0a4ec21a58 |
@ -18,7 +18,7 @@ your own extensions.
|
|||||||
|
|
||||||
Name: ghc-%{pkg_name}
|
Name: ghc-%{pkg_name}
|
||||||
Version: 0.10
|
Version: 0.10
|
||||||
Release: 7%{?dist}
|
Release: 7.1%{?dist}
|
||||||
Summary: %{common_summary}
|
Summary: %{common_summary}
|
||||||
|
|
||||||
License: BSD
|
License: BSD
|
||||||
@ -31,6 +31,7 @@ Patch3: xmonad-contrib-0.10-BorderResize-smaller.patch
|
|||||||
Patch4: xmonad-contrib-0.10-PositionStore-dont-rescale-with-screen.patch
|
Patch4: xmonad-contrib-0.10-PositionStore-dont-rescale-with-screen.patch
|
||||||
Patch5: xmonad-contrib-0.10-X11-1.6.patch
|
Patch5: xmonad-contrib-0.10-X11-1.6.patch
|
||||||
Patch6: xmonad-contrib-0.10-takeFocus-core.patch
|
Patch6: xmonad-contrib-0.10-takeFocus-core.patch
|
||||||
|
Patch7: xmonad-contrib-DynamicLog-0.11.2.patch
|
||||||
|
|
||||||
BuildRequires: ghc-Cabal-devel
|
BuildRequires: ghc-Cabal-devel
|
||||||
BuildRequires: ghc-rpm-macros
|
BuildRequires: ghc-rpm-macros
|
||||||
@ -65,7 +66,7 @@ BuildRequires: ghc-xmonad-devel
|
|||||||
%patch5 -p1 -b .orig-X11
|
%patch5 -p1 -b .orig-X11
|
||||||
%endif
|
%endif
|
||||||
%patch6 -p1 -b .orig-Focus
|
%patch6 -p1 -b .orig-Focus
|
||||||
|
%patch7 -p1 -b .orig-sanitize
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%ghc_lib_build
|
%ghc_lib_build
|
||||||
@ -88,6 +89,10 @@ BuildRequires: ghc-xmonad-devel
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jul 22 2013 Jens Petersen <petersen@redhat.com> - 0.10-7.1
|
||||||
|
- backport patch from 0.11.2 to sanitize DynamicLog output
|
||||||
|
(potential vulnerability)
|
||||||
|
|
||||||
* Sat Nov 17 2012 Jens Petersen <petersen@redhat.com> - 0.10-7
|
* Sat Nov 17 2012 Jens Petersen <petersen@redhat.com> - 0.10-7
|
||||||
- add ICCCMFocus patch from upstream for WM_TAKE_FOCUS move to core (#874855)
|
- add ICCCMFocus patch from upstream for WM_TAKE_FOCUS move to core (#874855)
|
||||||
- use a patch for use_xft flag
|
- use a patch for use_xft flag
|
||||||
|
84
xmonad-contrib-DynamicLog-0.11.2.patch
Normal file
84
xmonad-contrib-DynamicLog-0.11.2.patch
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
diff --git a/XMonad/Hooks/DynamicLog.hs b/XMonad/Hooks/DynamicLog.hs
|
||||||
|
index 0547c80..1d256c6 100644
|
||||||
|
--- a/XMonad/Hooks/DynamicLog.hs
|
||||||
|
+++ b/XMonad/Hooks/DynamicLog.hs
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-{-# LANGUAGE FlexibleContexts #-}
|
||||||
|
+{-# LANGUAGE FlexibleContexts, PatternGuards #-}
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
-- |
|
||||||
|
@@ -57,10 +57,10 @@ module XMonad.Hooks.DynamicLog (
|
||||||
|
-- Useful imports
|
||||||
|
|
||||||
|
import Codec.Binary.UTF8.String (encodeString)
|
||||||
|
-import Control.Monad (liftM2)
|
||||||
|
+import Control.Monad (liftM2, msum)
|
||||||
|
import Data.Char ( isSpace, ord )
|
||||||
|
-import Data.List (intersperse, isPrefixOf, sortBy)
|
||||||
|
-import Data.Maybe ( isJust, catMaybes )
|
||||||
|
+import Data.List (intersperse, stripPrefix, isPrefixOf, sortBy)
|
||||||
|
+import Data.Maybe ( isJust, catMaybes, mapMaybe )
|
||||||
|
import Data.Ord ( comparing )
|
||||||
|
import qualified Data.Map as M
|
||||||
|
import qualified XMonad.StackSet as S
|
||||||
|
@@ -279,7 +279,7 @@ dynamicLogString pp = do
|
||||||
|
return $ encodeString . sepBy (ppSep pp) . ppOrder pp $
|
||||||
|
[ ws
|
||||||
|
, ppLayout pp ld
|
||||||
|
- , ppTitle pp wt
|
||||||
|
+ , ppTitle pp $ ppTitleSanitize pp wt
|
||||||
|
]
|
||||||
|
++ catMaybes extras
|
||||||
|
|
||||||
|
@@ -396,14 +396,26 @@ xmobarColor fg bg = wrap t "</fc>"
|
||||||
|
|
||||||
|
-- | Strip xmobar markup.
|
||||||
|
xmobarStrip :: String -> String
|
||||||
|
-xmobarStrip = strip [] where
|
||||||
|
+xmobarStrip = xmobarStripTags ["fc","icon","action"] where
|
||||||
|
+
|
||||||
|
+xmobarStripTags :: [String] -- ^ tags
|
||||||
|
+ -> String -> String -- ^ with all <tag>...</tag> removed
|
||||||
|
+xmobarStripTags tags = strip [] where
|
||||||
|
+ strip keep [] = keep
|
||||||
|
strip keep x
|
||||||
|
- | null x = keep
|
||||||
|
- | "<fc=" `isPrefixOf` x = strip keep (drop 1 . dropWhile (/= '>') $ x)
|
||||||
|
- | "</fc>" `isPrefixOf` x = strip keep (drop 5 x)
|
||||||
|
- | '<' == head x = strip (keep ++ "<") (tail x)
|
||||||
|
- | otherwise = let (good,x') = span (/= '<') x
|
||||||
|
- in strip (keep ++ good) x'
|
||||||
|
+ | rest: _ <- mapMaybe dropTag tags = strip keep rest
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ | '<':xs <- x = strip (keep ++ "<") xs
|
||||||
|
+ | (good,x') <- span (/= '<') x = strip (keep ++ good) x' -- this is n^2 bad... but titles have few tags
|
||||||
|
+ where dropTag :: String -> Maybe String
|
||||||
|
+ dropTag tag = msum [fmap dropTilClose (openTag tag `stripPrefix` x),
|
||||||
|
+ closeTag tag `stripPrefix` x]
|
||||||
|
+
|
||||||
|
+ dropTilClose, openTag, closeTag :: String -> String
|
||||||
|
+ dropTilClose = drop 1 . dropWhile (/= '>')
|
||||||
|
+ openTag str = "<" ++ str ++ "="
|
||||||
|
+ closeTag str = "</" ++ str ++ ">"
|
||||||
|
|
||||||
|
-- | The 'PP' type allows the user to customize the formatting of
|
||||||
|
-- status information.
|
||||||
|
@@ -427,6 +439,8 @@ data PP = PP { ppCurrent :: WorkspaceId -> String
|
||||||
|
-- ^ separator to use between workspace tags
|
||||||
|
, ppTitle :: String -> String
|
||||||
|
-- ^ window title format
|
||||||
|
+ , ppTitleSanitize :: String -> String
|
||||||
|
+ -- ^ escape / sanitizes input to 'ppTitle'
|
||||||
|
, ppLayout :: String -> String
|
||||||
|
-- ^ layout name format
|
||||||
|
, ppOrder :: [String] -> [String]
|
||||||
|
@@ -468,6 +482,7 @@ defaultPP = PP { ppCurrent = wrap "[" "]"
|
||||||
|
, ppSep = " : "
|
||||||
|
, ppWsSep = " "
|
||||||
|
, ppTitle = shorten 80
|
||||||
|
+ , ppTitleSanitize = xmobarStrip . dzenEscape
|
||||||
|
, ppLayout = id
|
||||||
|
, ppOrder = id
|
||||||
|
, ppOutput = putStrLn
|
Loading…
Reference in New Issue
Block a user