[Pkg-haskell-commits] [package-plan] 03/03: Add yi patches

Joachim Breitner nomeata at moszumanska.debian.org
Wed Sep 10 20:51:59 UTC 2014


This is an automated email from the git hooks/post-receive script.

nomeata pushed a commit to branch master
in repository package-plan.

commit c865e0573169310e5402aea2e672c74e457f3bf1
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Wed Sep 10 22:51:46 2014 +0200

    Add yi patches
---
 packages.txt                                       |   2 +-
 .../0.7.1/Yi.Syntax.Tree-quickcheck-2.7-patch.diff |  60 +++
 patches/yi/0.7.1/man-page.diff                     |  73 +++
 patches/yi/0.7.1/series                            |   4 +
 patches/yi/0.7.1/vty-5.1-compat                    | 329 ++++++++++++++
 patches/yi/0.7.1/xpm-icons.diff                    | 501 +++++++++++++++++++++
 6 files changed, 968 insertions(+), 1 deletion(-)

diff --git a/packages.txt b/packages.txt
index 03b7858..7a3248c 100644
--- a/packages.txt
+++ b/packages.txt
@@ -744,7 +744,7 @@ yesod-persistent 1.2.3 notest
 yesod-routes 1.2.0.7
 yesod-static 1.2.4
 yesod-test 1.2.3.2
-yi 0.7.1
+yi 0.7.1 -fvty
 zeromq4-haskell 0.6 notest
 zip-archive 0.2.3.4 group=new-binary
 zlib 0.5.4.1
diff --git a/patches/yi/0.7.1/Yi.Syntax.Tree-quickcheck-2.7-patch.diff b/patches/yi/0.7.1/Yi.Syntax.Tree-quickcheck-2.7-patch.diff
new file mode 100644
index 0000000..0d28ca3
--- /dev/null
+++ b/patches/yi/0.7.1/Yi.Syntax.Tree-quickcheck-2.7-patch.diff
@@ -0,0 +1,60 @@
+Index: yi-0.7.1/src/library/Yi/Syntax/Tree.hs
+===================================================================
+--- yi-0.7.1.orig/src/library/Yi/Syntax/Tree.hs	2014-08-04 11:25:59.621939411 +0200
++++ yi-0.7.1/src/library/Yi/Syntax/Tree.hs	2014-08-04 11:25:59.621939411 +0200
+@@ -25,6 +25,7 @@
+ import Data.Monoid (First(..), Last(..), getFirst, getLast, mempty)
+ #ifdef TESTING
+ import Test.QuickCheck
++import Test.QuickCheck.Property (unProperty)
+ #endif
+ 
+ import Yi.Buffer.Basic
+@@ -339,33 +340,35 @@
+    let final@(_, (_, finalSubtree)) = fromLeafAfterToFinal p n
+        finalRegion = subtreeRegion finalSubtree
+        initialRegion = nodeRegion n
+-       
++
+    whenFail (do putStrLn $ "final = " ++ show final
+                 putStrLn $ "final reg = " ++ show finalRegion
+                 putStrLn $ "initialReg = " ++ show initialRegion
+                 putStrLn $ "p = " ++ show p
+-            ) 
++            )
+      ((regionStart finalRegion <= p) && (initialRegion `includedRegion` finalRegion))
+ 
+ prop_allLeavesAfter :: NTTT -> Property
+-prop_allLeavesAfter (N n@(xs,t)) = do
++prop_allLeavesAfter (N n@(xs,t)) = property $ do
+   let after = allLeavesRelative afterChild n
+   (xs',t') <- elements after
+   let t'' = walkDown (xs',t)
+-  whenFail (do putStrLn $ "t' = " ++ show t'
+-               putStrLn $ "t'' = " ++ show t''
+-               putStrLn $ "xs' = " ++ show xs'
+-           ) (Just t' == t'' && xs <= xs')
++  unProperty $ whenFail (do
++      putStrLn $ "t' = " ++ show t'
++      putStrLn $ "t'' = " ++ show t''
++      putStrLn $ "xs' = " ++ show xs'
++    ) (Just t' == t'' && xs <= xs')
+ 
+ prop_allLeavesBefore :: NTTT -> Property
+-prop_allLeavesBefore (N n@(xs,t)) = do
++prop_allLeavesBefore (N n@(xs,t)) = property $ do
+   let after = allLeavesRelative beforeChild n
+   (xs',t') <- elements after
+   let t'' = walkDown (xs',t)
+-  whenFail (do putStrLn $ "t' = " ++ show t'
+-               putStrLn $ "t'' = " ++ show t''
+-               putStrLn $ "xs' = " ++ show xs'
+-           ) (Just t' == t'' && xs' <= xs)
++  unProperty $ whenFail (do
++      putStrLn $ "t' = " ++ show t'
++      putStrLn $ "t'' = " ++ show t''
++      putStrLn $ "xs' = " ++ show xs'
++    ) (Just t' == t'' && xs' <= xs)
+ 
+ prop_fromNodeToLeafAfter :: NTTT -> Property
+ prop_fromNodeToLeafAfter (N n) = forAll (pointInside (subtreeRegion $ snd n)) $ \p -> do
diff --git a/patches/yi/0.7.1/man-page.diff b/patches/yi/0.7.1/man-page.diff
new file mode 100644
index 0000000..f8ccc76
--- /dev/null
+++ b/patches/yi/0.7.1/man-page.diff
@@ -0,0 +1,73 @@
+--- /dev/null
++++ b/yi.1
+@@ -0,0 +1,69 @@
++.TH YI 1 2008-10-22 "yi version 0.1" "User Manual"
++
++.SH NAME
++yi \- text editor extensible in Haskell
++
++.SH SYNOPSIS
++.B yi
++[\fIOPTION\fR] [\fIFILENAME\fR]
++
++.SH DESCRIPTION
++.ds c \fIYi\fP
++\*c is a text editor written and extensible in Haskell. Consult the html
++documentation for a full description of its behaviour.
++.PP
++.TP
++.B \-\-selfcheck
++Run self-checks
++.TP
++.B \-f frontend \-\-frontend=frontend
++Select frontend (one of vty, gtk, pango, cocoa).
++.TP
++.B \-y config \-\-config\-file=config
++Specify a configuration file.
++.TP
++.B \-V \-\-version
++Show version information
++.TP
++.B \-h \-\-help
++Show help message.
++.TP
++.B \-\-debug
++Write debug information in a log file.
++.TP
++.B \-l num \-\-line=num
++Start on given line number
++.TP
++.B \-\-as=editor
++Start with key bindings of given editor.
++.TP
++.B \-\-recompile\-force
++Force recompile of custom Yi before starting.
++.TP
++.B \-\-resume
++Resume execution of Yi from previous state.
++.TP
++.B \-\-recompile
++Recompile custom Yi if required then exit.
++
++.SH FILES
++It can be configured in ~/.config/yi/yi.hs; consult the html
++documentation.
++
++.SH BUGS
++Bug reports should be posted to the Google issue tracker
++<http://code.google.com/p/yi-editor/issues/>. Other suggestions or ideas may
++be posted to the yi-devel <yi-devel at googlegroups.com> mailing list.
++.SH COPYRIGHT
++Copyright \(co 2004-2005 Don Stewart,
++except for components derived from Riot <http://iki.fi/tuomov/riot/>,
++Copyright \(co Tuomo Valkonen.
++.PP
++Yi is released under the terms of the GPL.
++.SH "SEE ALSO"
++.BR vi (1)
++
++.SH AUTHOR
++
++Yi is developed by a team of many developers, currently lead by Jean-Philippe
++Bernardy.
+\ No newline at end of file
diff --git a/patches/yi/0.7.1/series b/patches/yi/0.7.1/series
new file mode 100644
index 0000000..3f97071
--- /dev/null
+++ b/patches/yi/0.7.1/series
@@ -0,0 +1,4 @@
+xpm-icons.diff
+man-page.diff
+Yi.Syntax.Tree-quickcheck-2.7-patch.diff
+vty-5.1-compat
diff --git a/patches/yi/0.7.1/vty-5.1-compat b/patches/yi/0.7.1/vty-5.1-compat
new file mode 100644
index 0000000..332b74b
--- /dev/null
+++ b/patches/yi/0.7.1/vty-5.1-compat
@@ -0,0 +1,329 @@
+Description: Rework vty interface code like commit a42841dbeb4f716a50b82aa4c71c419f033806d5
+ This is a rework of a patch from upstream git to vty 5.1 API, adapted to yi 0.7.1 in Debian by Marcel Fourné.
+ .
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: upstream, https://github.com/yi-editor/yi/commit/a42841dbeb4f716a50b82aa4c71c419f033806d5#diff-68f4dd75b91abeba23f0417a614830e5
+
+Index: yi-0.7.1/src/library/Yi/Config.hs
+===================================================================
+--- yi-0.7.1.orig/src/library/Yi/Config.hs	2014-09-10 22:48:39.667336537 +0200
++++ yi-0.7.1/src/library/Yi/Config.hs	2014-09-10 22:48:39.663336537 +0200
+@@ -1,3 +1,4 @@
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE TemplateHaskell #-}
+ 
+ module Yi.Config where
+@@ -16,9 +17,14 @@
+ import Yi.Style.Library
+ import {-# source #-} Yi.UI.Common
+ import qualified Yi.Interact as I
++#ifdef FRONTEND_VTY
++import qualified Graphics.Vty as Vty
++#endif
+ 
+ data UIConfig = UIConfig {
+-   configVtyEscDelay :: Int,       
++#ifdef FRONTEND_VTY
++   configVty :: Vty.Config,
++#endif
+    configFontName :: Maybe String,  -- ^ Font name, for the UI that support it.
+    configFontSize :: Maybe Int,     -- ^ Font size, for the UI that support it.
+    configScrollStyle ::Maybe ScrollStyle,
+Index: yi-0.7.1/src/library/Yi/Config/Default.hs
+===================================================================
+--- yi-0.7.1.orig/src/library/Yi/Config/Default.hs	2014-09-10 22:48:39.667336537 +0200
++++ yi-0.7.1/src/library/Yi/Config/Default.hs	2014-09-10 22:48:39.663336537 +0200
+@@ -47,6 +47,7 @@
+ #endif
+ #ifdef FRONTEND_VTY
+ import qualified Yi.UI.Vty
++import qualified Graphics.Vty.Config as Vty
+ #endif
+ #ifdef FRONTEND_PANGO
+ import qualified Yi.UI.Pango
+@@ -145,7 +146,6 @@
+            , configAutoHideTabBar = True
+            , configWindowFill = ' '
+            , configTheme = defaultTheme
+-           , configVtyEscDelay = 0
+            }
+          , defaultKm        = modelessKeymapSet nilKeymap
+          , startActions     = []
+@@ -193,7 +193,9 @@
+ toEmacsStyleConfig, toVimStyleConfig, toVim2StyleConfig, toCuaStyleConfig :: Config -> Config
+ toEmacsStyleConfig cfg 
+     = cfg {
+-            configUI = (configUI cfg) { configVtyEscDelay = 1000 , configScrollStyle = Just SnapToCenter},
++            configUI = (configUI cfg)
++                       { configScrollStyle = Just SnapToCenter
++                       },
+             defaultKm = Emacs.keymap,
+             startActions = makeAction openScratchBuffer : startActions cfg,
+             configInputPreprocess = escToMeta,
+Index: yi-0.7.1/src/library/Yi/Config/Simple.hs
+===================================================================
+--- yi-0.7.1.orig/src/library/Yi/Config/Simple.hs	2014-09-10 22:48:39.667336537 +0200
++++ yi-0.7.1/src/library/Yi/Config/Simple.hs	2014-09-10 22:48:39.663336537 +0200
+@@ -108,7 +108,7 @@
+                  startFrontEndA, configUIA, startActionsA, initialActionsA, defaultKmA, 
+                  configInputPreprocessA, modeTableA, debugModeA,
+                  configRegionStyleA, configKillringAccumulateA, bufferUpdateHandlerA,
+-                 configVtyEscDelayA, configFontNameA, configFontSizeA, configScrollWheelAmountA,
++                 configVtyA, configFontNameA, configFontSizeA, configScrollWheelAmountA,
+                  configScrollStyleA, configCursorStyleA, CursorStyle(..),
+                  configLeftSideScrollBarA, configAutoHideScrollBarA, configAutoHideTabBarA,
+                  configLineWrapA, configWindowFillA, configThemeA, layoutManagersA, configVarsA,
+Index: yi-0.7.1/src/library/Yi/UI/Vty.hs
+===================================================================
+--- yi-0.7.1.orig/src/library/Yi/UI/Vty.hs	2014-09-10 22:48:39.667336537 +0200
++++ yi-0.7.1/src/library/Yi/UI/Vty.hs	2014-09-10 22:48:39.663336537 +0200
+@@ -34,7 +34,7 @@
+ import Yi.Config
+ import Yi.Window
+ import Yi.Style as Style
+-import Graphics.Vty as Vty hiding (refresh, Default)
++import Graphics.Vty as Vty hiding (Config(..), refresh, Default, text)
+ import qualified Graphics.Vty as Vty
+ import Yi.Keymap (makeAction, YiM)
+ 
+@@ -73,11 +73,11 @@
+ start cfg ch outCh editor = do
+   liftIO $ do 
+           oattr <- getTerminalAttributes stdInput
+-          v <- mkVtyEscDelay $ configVtyEscDelay $ configUI $ cfg
++          v <- mkVty $ configVty $ configUI $ cfg
+           nattr <- getTerminalAttributes stdInput
+           setTerminalAttributes stdInput (withoutMode nattr ExtendedFunctions) Immediately
+           -- remove the above call to setTerminalAttributes when vty does it.
+-          Vty.DisplayRegion x0 y0 <- Vty.display_bounds $ Vty.terminal v
++          (x0,y0) <- Vty.displayBounds $ Vty.outputIface v
+           sz <- newIORef (fromEnum y0, fromEnum x0)
+           -- fork input-reading thread. important to block *thread* on getKey
+           -- otherwise all threads will block waiting for input
+@@ -97,7 +97,7 @@
+               -- | Read a key. UIs need to define a method for getting events.
+               getKey :: IO Yi.Event.Event
+               getKey = do 
+-                event <- Vty.next_event v
++                event <- Vty.nextEvent v
+                 case event of 
+                   (EvResize x y) -> do
+                       logPutStrLn $ "UI: EvResize: " ++ show (x,y)
+@@ -146,28 +146,28 @@
+ 
+ 
+ fromVtyKey :: Vty.Key -> Yi.Event.Key
+-fromVtyKey (Vty.KEsc     ) = Yi.Event.KEsc      
+-fromVtyKey (Vty.KFun x   ) = Yi.Event.KFun x    
+-fromVtyKey (Vty.KPrtScr  ) = Yi.Event.KPrtScr   
+-fromVtyKey (Vty.KPause   ) = Yi.Event.KPause    
+-fromVtyKey (Vty.KASCII '\t') = Yi.Event.KTab
+-fromVtyKey (Vty.KASCII c ) = Yi.Event.KASCII c  
+-fromVtyKey (Vty.KBS      ) = Yi.Event.KBS       
+-fromVtyKey (Vty.KIns     ) = Yi.Event.KIns      
+-fromVtyKey (Vty.KHome    ) = Yi.Event.KHome     
+-fromVtyKey (Vty.KPageUp  ) = Yi.Event.KPageUp   
+-fromVtyKey (Vty.KDel     ) = Yi.Event.KDel      
+-fromVtyKey (Vty.KEnd     ) = Yi.Event.KEnd      
+-fromVtyKey (Vty.KPageDown) = Yi.Event.KPageDown 
+-fromVtyKey (Vty.KNP5     ) = Yi.Event.KNP5      
+-fromVtyKey (Vty.KUp      ) = Yi.Event.KUp       
+-fromVtyKey (Vty.KMenu    ) = Yi.Event.KMenu     
+-fromVtyKey (Vty.KLeft    ) = Yi.Event.KLeft     
+-fromVtyKey (Vty.KDown    ) = Yi.Event.KDown     
+-fromVtyKey (Vty.KRight   ) = Yi.Event.KRight    
+-fromVtyKey (Vty.KEnter   ) = Yi.Event.KEnter    
+-fromVtyKey (Vty.KBackTab ) = error "This should be handled in fromVtyEvent"
+-fromVtyKey (Vty.KBegin   ) = error "Yi.UI.Vty.fromVtyKey: can't handle KBegin"
++fromVtyKey (Vty.KEsc      ) = Yi.Event.KEsc      
++fromVtyKey (Vty.KFun x    ) = Yi.Event.KFun x    
++fromVtyKey (Vty.KPrtScr   ) = Yi.Event.KPrtScr   
++fromVtyKey (Vty.KPause    ) = Yi.Event.KPause    
++fromVtyKey (Vty.KChar '\t') = Yi.Event.KTab
++fromVtyKey (Vty.KChar c   ) = Yi.Event.KASCII c  
++fromVtyKey (Vty.KBS       ) = Yi.Event.KBS       
++fromVtyKey (Vty.KIns      ) = Yi.Event.KIns      
++fromVtyKey (Vty.KHome     ) = Yi.Event.KHome     
++fromVtyKey (Vty.KPageUp   ) = Yi.Event.KPageUp   
++fromVtyKey (Vty.KDel      ) = Yi.Event.KDel      
++fromVtyKey (Vty.KEnd      ) = Yi.Event.KEnd      
++fromVtyKey (Vty.KPageDown ) = Yi.Event.KPageDown 
++fromVtyKey (Vty.KCenter   ) = Yi.Event.KNP5      
++fromVtyKey (Vty.KUp       ) = Yi.Event.KUp       
++fromVtyKey (Vty.KMenu     ) = Yi.Event.KMenu     
++fromVtyKey (Vty.KLeft     ) = Yi.Event.KLeft     
++fromVtyKey (Vty.KDown     ) = Yi.Event.KDown     
++fromVtyKey (Vty.KRight    ) = Yi.Event.KRight    
++fromVtyKey (Vty.KEnter    ) = Yi.Event.KEnter    
++fromVtyKey (Vty.KBackTab  ) = error "This should be handled in fromVtyEvent"
++fromVtyKey (Vty.KBegin    ) = error "Yi.UI.Vty.fromVtyKey: can't handle KBegin"
+ 
+ fromVtyMod :: Vty.Modifier -> Yi.Event.Modifier
+ fromVtyMod Vty.MShift = Yi.Event.MShift
+@@ -229,13 +229,13 @@
+   logPutStrLn "refreshing screen."
+   logPutStrLn $ "startXs: " ++ show startXs
+   Vty.update (vty $ ui) 
+-      ( pic_for_image ( vert_cat tabBarImages
+-                        <->
+-                        vert_cat (toList wImages) 
+-                        <-> 
+-                        vert_cat (fmap formatCmdLine niceCmd)
+-                      )
+-      ) { pic_cursor = case cursor (PL._focus renders) of
++      ( picForImage ( vertCat tabBarImages
++                      <->
++                      vertCat (toList wImages) 
++                      <-> 
++                      vertCat (fmap formatCmdLine niceCmd)
++                    )
++      ) { picCursor = case cursor (PL._focus renders) of
+                         Just (y,x) -> Cursor (toEnum x) (toEnum $ y + PL._focus startXs)
+                         -- Add the position of the window to the position of the cursor
+                         Nothing -> NoCursor
+@@ -254,12 +254,12 @@
+   where tabImages       = foldr1 (<|>) $ fmap tabToVtyImage $ tabBarDescr e
+         extraImage      = withAttributes (tabBarAttributes uiStyle) (replicate (xss - fromEnum totalTabWidth) ' ')
+ 
+-        totalTabWidth   = Vty.image_width tabImages
++        totalTabWidth   = Vty.imageWidth tabImages
+         uiStyle         = configStyle $ configUI $ config ui
+         tabTitle text   = " " ++ text ++ " "
+         tabAttr b       = baseAttr b $ tabBarAttributes uiStyle
+-        baseAttr True  sty = attributesToAttr (appEndo (tabInFocusStyle uiStyle) sty) Vty.def_attr
+-        baseAttr False sty = attributesToAttr (appEndo (tabNotFocusedStyle uiStyle) sty) Vty.def_attr `Vty.with_style` Vty.underline
++        baseAttr True  sty = attributesToAttr (appEndo (tabInFocusStyle uiStyle) sty) Vty.defAttr
++        baseAttr False sty = attributesToAttr (appEndo (tabNotFocusedStyle uiStyle) sty) Vty.defAttr `Vty.withStyle` Vty.underline
+         tabToVtyImage _tab@(TabDescr text inFocus) = Vty.string (tabAttr inFocus) (tabTitle text)
+ 
+ -- | Determine whether it is necessary to render the tab bar
+@@ -303,7 +303,7 @@
+         off = if notMini then 1 else 0
+         h' = h - off
+         ground = baseAttributes sty
+-        wsty = attributesToAttr ground Vty.def_attr
++        wsty = attributesToAttr ground Vty.defAttr
+         eofsty = appEndo (eofStyle sty) ground
+         (point, _) = runBuffer win b pointB
+         (eofPoint, _) = runBuffer win b sizeB
+@@ -320,9 +320,9 @@
+         -- TODO: I suspect that this costs quite a lot of CPU in the "dry run" which determines the window size;
+         -- In that case, since attributes are also useless there, it might help to replace the call by a dummy value.
+         -- This is also approximately valid of the call to "indexedAnnotatedStreamB".
+-        colors = map (second (($ Vty.def_attr) . attributesToAttr)) attributes
++        colors = map (second (($ Vty.defAttr) . attributesToAttr)) attributes
+         bufData = -- trace (unlines (map show text) ++ unlines (map show $ concat strokes)) $ 
+-                  paintChars Vty.def_attr colors text
++                  paintChars Vty.defAttr colors text
+         tabWidth = tabSize . fst $ runBuffer win b indentSettingsB
+         prompt = if isMini win then miniIdentString b else ""
+ 
+@@ -338,7 +338,7 @@
+         modeStyle = (if focused then appEndo (modelineFocusStyle sty) else id) (modelineAttributes sty)
+         filler = take w (configWindowFill cfg : repeat ' ')
+     
+-        pict = vert_cat (take h' (rendered ++ repeat (withAttributes eofsty filler)) ++ modeLines)
++        pict = vertCat (take h' (rendered ++ repeat (withAttributes eofsty filler)) ++ modeLines)
+   
+ -- | Renders text in a rectangle.
+ -- This also returns 
+@@ -357,7 +357,7 @@
+          -> ([Image], Point, Maybe (Int,Int), Int)
+ drawText h w topPoint point tabWidth bufData
+     | h == 0 || w == 0 = ([], topPoint, Nothing, 0)
+-    | otherwise        = (rendered_lines, bottomPoint, pntpos, h - (length wrapped - h))
++    | otherwise        = (renderedLines, bottomPoint, pntpos, h - (length wrapped - h))
+   where 
+ 
+   -- the number of lines that taking wrapping into account,
+@@ -372,14 +372,14 @@
+   pntpos = listToMaybe [(y,x) | (y,l) <- zip [0..] lns0, (x,(_char,(_attr,p))) <- zip [0..] l, p == point]
+ 
+   -- fill lines with blanks, so the selection looks ok.
+-  rendered_lines = map fillColorLine lns0
++  renderedLines = map fillColorLine lns0
+   colorChar (c, (a, _aPoint)) = Vty.char a c
+ 
+   fillColorLine :: [(Char, (Vty.Attr, Point))] -> Image
+-  fillColorLine [] = char_fill Vty.def_attr ' ' w 1
+-  fillColorLine l = horiz_cat (map colorChar l) 
++  fillColorLine [] = charFill Vty.defAttr ' ' w 1
++  fillColorLine l = horizCat (map colorChar l) 
+                     <|>
+-                    char_fill a ' ' (w - length l) 1
++                    charFill a ' ' (w - length l) 1
+                     where (_,(a,_x)) = last l
+ 
+   -- | Cut a string in lines separated by a '\n' char. Note
+@@ -404,7 +404,7 @@
+     | otherwise = [(c,p)]
+ 
+ withAttributes :: Attributes -> String -> Image
+-withAttributes sty str = Vty.string (attributesToAttr sty Vty.def_attr) str
++withAttributes sty str = Vty.string (attributesToAttr sty Vty.defAttr) str
+ 
+ ------------------------------------------------------------------------
+ 
+@@ -432,31 +432,31 @@
+ colorToAttr set c =
+   case c of 
+     RGB 0 0 0         -> set Vty.black
+-    RGB 128 128 128   -> set Vty.bright_black
++    RGB 128 128 128   -> set Vty.brightBlack
+     RGB 139 0 0       -> set Vty.red
+-    RGB 255 0 0       -> set Vty.bright_red
++    RGB 255 0 0       -> set Vty.brightRed
+     RGB 0 100 0       -> set Vty.green
+-    RGB 0 128 0       -> set Vty.bright_green
++    RGB 0 128 0       -> set Vty.brightGreen
+     RGB 165 42 42     -> set Vty.yellow
+-    RGB 255 255 0     -> set Vty.bright_yellow
++    RGB 255 255 0     -> set Vty.brightYellow
+     RGB 0 0 139       -> set Vty.blue
+-    RGB 0 0 255       -> set Vty.bright_blue
++    RGB 0 0 255       -> set Vty.brightBlue
+     RGB 128 0 128     -> set Vty.magenta
+-    RGB 255 0 255     -> set Vty.bright_magenta
++    RGB 255 0 255     -> set Vty.brightMagenta
+     RGB 0 139 139     -> set Vty.cyan
+-    RGB 0 255 255     -> set Vty.bright_cyan
++    RGB 0 255 255     -> set Vty.brightCyan
+     RGB 165 165 165   -> set Vty.white
+-    RGB 255 255 255   -> set Vty.bright_white
++    RGB 255 255 255   -> set Vty.brightWhite
+     Default           -> id
+     _                 -> error $ "Color unsupported by Vty frontend: " ++ show c
+ 
+ attributesToAttr :: Attributes -> (Vty.Attr -> Vty.Attr)
+ attributesToAttr (Attributes fg bg reverse bd _itlc underline') =
+-    (if reverse then (flip Vty.with_style Vty.reverse_video)  else id) .
+-    (if bd then (flip Vty.with_style Vty.bold) else id) .
+-    (if underline' then (flip Vty.with_style Vty.underline) else id) .
+-    colorToAttr (flip Vty.with_fore_color) fg .
+-    colorToAttr (flip Vty.with_back_color) bg
++    (if reverse then (flip Vty.withStyle Vty.reverseVideo)  else id) .
++    (if bd then (flip Vty.withStyle Vty.bold) else id) .
++    (if underline' then (flip Vty.withStyle Vty.underline) else id) .
++    colorToAttr (flip Vty.withForeColor) fg .
++    colorToAttr (flip Vty.withBackColor) bg
+ 
+ 
+ ---------------------------------
+Index: yi-0.7.1/yi.cabal
+===================================================================
+--- yi-0.7.1.orig/yi.cabal	2014-09-10 22:48:39.667336537 +0200
++++ yi-0.7.1/yi.cabal	2014-09-10 22:48:39.663336537 +0200
+@@ -293,7 +293,7 @@
+       Yi.UI.Vty
+     build-depends:
+       unix-compat >=0.1 && <0.5,
+-      vty >= 4.7.0.0 && <5
++      vty >= 5.1.0.0 && <6
+     cpp-options: -DFRONTEND_VTY
+ 
+   if flag (scion)
diff --git a/patches/yi/0.7.1/xpm-icons.diff b/patches/yi/0.7.1/xpm-icons.diff
new file mode 100644
index 0000000..0b71a11
--- /dev/null
+++ b/patches/yi/0.7.1/xpm-icons.diff
@@ -0,0 +1,501 @@
+Index: yi-0.6.7.0/art/yi+lambda-fat-16.xpm
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ yi-0.6.7.0/art/yi+lambda-fat-16.xpm	2013-07-07 16:17:23.000000000 +0200
+@@ -0,0 +1,278 @@
++/* XPM */
++static char *yi_lambda_fat_16[] = {
++/* columns rows colors chars-per-pixel */
++"16 16 256 2 ",
++"   c None",
++".  c #ABABB2B2EFEF",
++"X  c #ABABB2B2EFEF",
++"o  c #ABD9B2E2F030",
++"O  c #A9F1B0E5ED85",
++"+  c #A966B055ECC2",
++"@  c #ADF7B516F324",
++"#  c #BC60C416FFFF",
++"$  c black",
++"%  c black",
++"&  c black",
++"*  c black",
++"=  c black",
++"-  c black",
++";  c black",
++":  c black",
++">  c #ABABB2B2EFEF",
++",  c #ABABB2B2EFEF",
++"<  c #ABABB2B2EFEF",
++"1  c #ACC2B3D4F174",
++"2  c #9AE6A13DD87E",
++"3  c #545857CC75E2",
++"4  c #86808C01BBFC",
++"5  c #8E68943CC709",
++"6  c black",
++"7  c black",
++"8  c black",
++"9  c black",
++"0  c black",
++"q  c black",
++"w  c black",
++"e  c black",
++"r  c #ABABB2B2EFEF",
++"t  c #ABABB2B2EFEF",
++"y  c #ABA7B2AFEFEE",
++"u  c #AF15B608F302",
++"i  c #D1CAD89CFFFF",
++"p  c #47B34AA063D1",
++"a  c #6C287096972E",
++"s  c #792E7E24A95F",
++"d  c #148D15641CB9",
++"f  c black",
++"g  c black",
++"h  c black",
++"j  c black",
++"k  c black",
++"l  c black",
++"z  c black",
++"x  c black",
++"c  c black",
++"v  c black",
++"b  c black",
++"n  c black",
++"m  c #12B313771A23",
++"M  c #309F329C43F5",
++"N  c #38D63B2A4F70",
++"B  c #3A253C875144",
++"V  c #002500270034",
++"C  c black",
++"Z  c black",
++"A  c black",
++"S  c black",
++"D  c black",
++"F  c black",
++"G  c black",
++"H  c black",
++"J  c black",
++"K  c black",
++"L  c black",
++"P  c #000E000F0014",
++"I  c black",
++"U  c #2FFD31F44312",
++"Y  c #521A557672C0",
++"T  c #27842922373A",
++"R  c #39C13C1F50B9",
++"E  c black",
++"W  c black",
++"Q  c black",
++"!  c black",
++"~  c black",
++"^  c black",
++"/  c black",
++"(  c black",
++")  c black",
++"_  c black",
++"`  c #00400043005A",
++"'  c #072E077A0A09",
++"]  c #4668494A6268",
++"[  c #704374DB9CE7",
++"{  c #369538D14C49",
++"}  c black",
++"|  c black",
++" . c black",
++".. c black",
++"X. c black",
++"o. c black",
++"O. c black",
++"+. c black",
++"@. c black",
++"#. c black",
++"$. c black",
++"%. c #0DF90E8B1387",
++"&. c #3D033F825546",
++"*. c #3F3441CA5856",
++"=. c #5B335EEF7F77",
++"-. c #52D9563D73CB",
++";. c #14FF15DB1D58",
++":. c black",
++">. c black",
++",. c black",
++"<. c black",
++"1. c black",
++"2. c black",
++"3. c black",
++"4. c black",
++"5. c black",
++"6. c black",
++"7. c #1D521E8528FA",
++"8. c #85ED8B69BB2F",
++"9. c #37C43A0D4DF1",
++"0. c #76167AECA50B",
++"q. c #B0CDB80AF718",
++"w. c #5C986062811F",
++"e. c black",
++"r. c black",
++"t. c black",
++"y. c black",
++"u. c black",
++"i. c black",
++"p. c black",
++"a. c black",
++"s. c black",
++"d. c #0641068208BE",
++"f. c #4F9352D56F38",
++"g. c #8A218FC8C10E",
++"h. c #1BC81CEB26D3",
++"j. c #307A327643C1",
++"k. c #563659BE787F",
++"l. c #69826DD49377",
++"z. c #00720076009F",
++"x. c black",
++"c. c black",
++"v. c black",
++"b. c black",
++"n. c black",
++"m. c black",
++"M. c black",
++"N. c black",
++"B. c #084D08A40B99",
++"V. c #3B2C3D9852B3",
++"C. c #3B403DAD52D0",
++"Z. c black",
++"A. c #1FC621132C69",
++"S. c #8E67943BC708",
++"D. c #5A1A5DCA7DEE",
++"F. c black",
++"G. c #04DE051106CE",
++"H. c black",
++"J. c black",
++"K. c black",
++"L. c black",
++"P. c black",
++"I. c black",
++"U. c #1BC31CE626CC",
++"Y. c #52A656087384",
++"T. c #235E24D0316E",
++"R. c #1BB11CD326B3",
++"E. c black",
++"W. c #0FF6109E164F",
++"Q. c #5DD261A98321",
++"!. c #29FB2BB33AAC",
++"~. c #39BD3C1A50B3",
++"^. c #2B5A2D203C97",
++"/. c #333735504795",
++"(. c black",
++"). c black",
++"_. c black",
++"`. c black",
++"'. c black",
++"]. c #5AD55E8D7EF4",
++"[. c #555458D27742",
++"{. c #0D4A0DD61293",
++"}. c black",
++"|. c black",
++" X c black",
++".X c #0EB70F511491",
++"XX c #75CA7A9DA4A1",
++"oX c #AD75B48FF26F",
++"OX c #9FECA678DF85",
++"+X c black",
++"@X c black",
++"#X c black",
++"$X c black",
++"%X c black",
++"&X c #12C013851A35",
++"*X c #50BC540970D6",
++"=X c #6C5570C49769",
++"-X c #0D720DFF12CB",
++";X c black",
++":X c black",
++">X c black",
++",X c #055D0595077E",
++"<X c #56CB5A59794F",
++"1X c #A9D6B0CAED5C",
++"2X c #7FFE853BB1E3",
++"3X c black",
++"4X c #00C400CC00E6",
++"5X c black",
++"6X c black",
++"7X c #2B152CD83C36",
++"8X c #7EF08423B16B",
++"9X c #80228561B317",
++"0X c #442D46F75F49",
++"qX c black",
++"wX c black",
++"eX c black",
++"rX c black",
++"tX c black",
++"yX c #0A900AFF0EC3",
++"uX c #4B924EAA69A0",
++"iX c #4C914FB46B04",
++"pX c black",
++"aX c #03B203D8052A",
++"sX c #ABB0B2B7EFF5",
++"dX c #B527BC92FBB3",
++"fX c #AEAEB5D4F413",
++"gX c #AE54B577F3A7",
++"hX c #857A8AF1BA8E",
++"jX c #057A05B307A7",
++"kX c black",
++"lX c black",
++"zX c black",
++"xX c black",
++"cX c #48E74BE265E4",
++"vX c #3ED4416757D0",
++"bX c #31C933D34595",
++"nX c #0B060B790F68",
++"mX c #295E2B0F39D1",
++"MX c #AE63B586F3BC",
++"NX c #ABB8B2C0F002",
++"BX c #ABABB2B2EFEF",
++"VX c #ABADB2B4EFF1",
++"CX c #ABBDB2C5F00B",
++"ZX c #AD71B480F178",
++"AX c black",
++"SX c black",
++"DX c black",
++"FX c black",
++"GX c black",
++"HX c #C734CE49FD7F",
++"JX c gray100",
++"KX c #9C8BA2EBD9CB",
++"LX c #720276AD9F5E",
++"PX c #71F876A39F4A",
++"IX c #AB6DB271EF98",
++"UX c #ABCFB2D7F021",
++/* pixels */
++"  . X o O + @ # $ % & * = - ; : ",
++"> , < 1 2 3 4 5 6 7 8 9 0 q w e ",
++"r t y u i p a s d f g h j k l z ",
++"x c v b n m M N B V C Z A S D F ",
++"G H J K L P I U Y T R E W Q ! ~ ",
++"^ / ( ) _ ` ' ] [ { } |  ...X.o.",
++"O.+. at .#.$.%.&.*.=.-.;.:.>.,.<.1.",
++"2.3.4.5.6.7.8.9.0.q.w.e.r.t.y.u.",
++"i.p.a.s.d.f.g.h.j.k.l.z.x.c.v.b.",
++"n.m.M.N.B.V.C.Z.A.S.D.F.G.H.J.K.",
++"L.P.I.U.Y.T.R.E.W.Q.!.~.^./.(.).",
++"_.`.'.].[.{.}.|. X.XXXoXOX+X at X#X",
++"$X%X&X*X=X-X;X:X>X,X<X1X2X3X4X5X",
++"6X7X8X9X0XqXwXeXrXtXyXuXiXpXaXsX",
++"dXfXgXhXjXkXlXzXxXcXvXbXnXmXMXNX",
++"BXVXCXZXAXSXDXFXGXHXJXKXLXPXIXUX"
++};
+Index: yi-0.6.7.0/art/yi+lambda-fat-32.xpm
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ yi-0.6.7.0/art/yi+lambda-fat-32.xpm	2013-07-07 16:17:23.000000000 +0200
+@@ -0,0 +1,201 @@
++/* XPM */
++static char *yi_lambda_fat_32[] = {
++/* columns rows colors chars-per-pixel */
++"32 32 163 2 ",
++"   c #000200020003",
++".  c #00700075009D",
++"X  c #00D700E0012C",
++"o  c #011C0128018E",
++"O  c #017D018C0214",
++"+  c #01B401C50261",
++"@  c #0219022F02EE",
++"#  c #02F703160425",
++"$  c #03B403DB052E",
++"%  c #0438046405E6",
++"&  c #04F8052C06F2",
++"*  c #05AC05E807EE",
++"=  c #06280669089B",
++"-  c #066706AA08F2",
++";  c #06BB07010968",
++":  c #06EE073709B0",
++">  c #07D308250AEF",
++",  c #086008B80BB5",
++"<  c #08BE091A0C38",
++"1  c #0B7F0BF81011",
++"2  c #0CA70D2B11AF",
++"3  c #0D5D0DE912AE",
++"4  c #0DEF0E81137A",
++"5  c #0E760F0D1436",
++"6  c #0FA6104A15DF",
++"7  c #102110CA168B",
++"8  c #10C21172176C",
++"9  c #114C1202182D",
++"0  c #135E14291B11",
++"q  c #1458152D1C6E",
++"w  c #150315DF1D5E",
++"e  c #156116411DCE",
++"r  c #16DE17CD1FF6",
++"t  c #1788187E20E3",
++"y  c #18A119A3226D",
++"u  c #18F919FE22E6",
++"i  c #19941AA023C0",
++"p  c #1A621B7724E0",
++"a  c #1AA31BBB253B",
++"s  c #1B211C3E25EB",
++"d  c #1BFE1D23271F",
++"f  c #1D491E7C28EE",
++"g  c #1E731FB32A8F",
++"h  c #1F0020452B55",
++"j  c #1F8A20D42C15",
++"k  c #1FF621452CAC",
++"l  c #20DE22362DEF",
++"z  c #220E23732F99",
++"x  c #23A5251B31D3",
++"c  c #265D27EF359E",
++"v  c #284029E63843",
++"b  c #29DD2B943A83",
++"n  c #2D122EEA3EFE",
++"m  c #2EAA30934138",
++"M  c #2F4531344210",
++"N  c #3090328D43E0",
++"B  c #30C032BF4423",
++"V  c #313E334244DA",
++"C  c #3356357047C0",
++"Z  c #349E36C6498B",
++"A  c #355737864A8D",
++"S  c #36DE391E4CB0",
++"D  c #375A399E4D5D",
++"F  c #38EF3B444F93",
++"G  c #3A883CED51CE",
++"H  c #3BD63E4953A1",
++"J  c #3CF93F785539",
++"K  c #3E3B40C756FA",
++"L  c #3F2041B5583C",
++"P  c #40A343495A58",
++"I  c #4543481960CE",
++"U  c #4555482B60E7",
++"Y  c #45FA48D861CE",
++"T  c #46A7498B62BF",
++"R  c #46E249C96312",
++"E  c #48694B606534",
++"W  c #48E04BDC65DB",
++"Q  c #498D4C9066CD",
++"!  c #49FF4D06676C",
++"~  c #4AC04DCF6879",
++"^  c #4BA94EC269C0",
++"/  c #4F1552526E87",
++"(  c #4FC453086F7C",
++")  c #54ED586776B2",
++"_  c #55A8592977B7",
++"`  c #56C75A547949",
++"'  c #574F5AE27A08",
++"]  c #59E65D937D8A",
++"[  c #5A275DD87E01",
++"{  c #5AA25E587EAD",
++"}  c #5B105ECA7F46",
++"|  c #5BDE5FA08066",
++" . c #5CAE60798188",
++".. c #5DA7617D82E6",
++"X. c #5E6F624C83FC",
++"o. c #606C645F86C4",
++"O. c #613A653487E3",
++"+. c #677A6BB790A0",
++"@. c #67EE6C2F9142",
++"#. c #6BEB705696D5",
++"$. c #6E2872AB99F7",
++"%. c #6F9174239BF0",
++"&. c #703774CF9CD6",
++"*. c #716B76109E86",
++"=. c #727A77299FFF",
++"-. c #7289773AA023",
++";. c #73B37870A1B5",
++":. c #73F878B7A216",
++">. c #756B7A39A41C",
++",. c #76A67B81A5D4",
++"<. c #78CB7DBCA8D4",
++"1. c #79997E93A9F4",
++"2. c #7AE37FE9ABB0",
++"3. c #7B108019AC00",
++"4. c #7E7483A1B0BC",
++"5. c #808A85CDB3A8",
++"6. c #8153869EB4C1",
++"7. c #83AD8911B80A",
++"8. c #86628BE2BBD2",
++"9. c #87518CDBBCF9",
++"0. c #87B28D40BD7C",
++"q. c #890A8EA6BF88",
++"w. c #8A71901BC17E",
++"e. c #8B4790FAC2A9",
++"r. c #8F399516C82D",
++"t. c #90859670C9FD",
++"y. c #928F988FCCD7",
++"u. c #92F098F4CD5E",
++"i. c #9372997BCE14",
++"p. c #96549C7BD21B",
++"a. c #96F49D22D2FC",
++"s. c #97B19DE7D403",
++"d. c #98A79EE7D55B",
++"f. c #993E9F84D62E",
++"g. c #9BC1A221D9B0",
++"h. c #9BF9A25CD9FF",
++"j. c #9C97A300DADC",
++"k. c #9DF0A467DCBE",
++"l. c #9EF6A577DE2C",
++"z. c #9F36A5BBDE94",
++"x. c #A081A713E055",
++"c. c #A092A724E06C",
++"v. c #A0E3A779E0DD",
++"b. c #A1BAA858E209",
++"n. c #A209A8ABE278",
++"m. c #A3F1AAA7E522",
++"M. c #A4B5AB73E635",
++"N. c #A527ABE9E6D3",
++"B. c #A62DACFAE842",
++"V. c #A79CAE79EA43",
++"C. c #A8C4AFACEBE0",
++"Z. c #A986B077ECF0",
++"A. c #ABAEB2B6EFF4",
++"S. c #AC17B323F086",
++"D. c #AC6DB37CF0FA",
++"F. c #ACD4B3E7F18E",
++"G. c #ADEBB50AF314",
++"H. c #AEB5B5DCF42B",
++"J. c #AF09B634F4A5",
++"K. c #AF17B642F4B7",
++"L. c #AF55B682F50E",
++"P. c #B09EB7D2F591",
++"I. c None",
++/* pixels */
++"I.I.I.I.I.I.I.I.A.A.A.A.A.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.A.A.D.D.H.H.A.A.I.I.I.    I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.A.A.A.D.p.} 4.N.D.A.I.I.    I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.A.A.A.A.I.I.p.m : P v.H...    I.I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.A.I.I.I.I.I.I.I.C 4 e.v.R I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.I.I.=.v.k.6.D       I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.I.I.o.! v 9 >       I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.            9 o.7.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.I.I.I.# 9 2.=.H I.I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.I.I.I.  $ p l m s I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.        p 8.v.A.I.I.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.I.I.I.w v r.2.` m   I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.I.I.w w 4 f 0 0 u 6   I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.        > R X.( ;.y.p.h.f.I.I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.I.I.H.k.c s $.A.D.H.I.      I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.I.  6 @.D.`   z v.H.H.I.I.      I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.  4 Z %.D.I.  h w.2.+.>.I.I.    I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.      =.D.H.h.I.  - w 4 u E I.I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.I.: H -.! w       P q.h.v.R I.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.I.# ,   f l I.I.I.  D H.L.8.4   I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.        s Z - } I.I.I.I.  , t.m.F   - I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.    R h.u.9 w I.  I.I.I.  R ~   x 2.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.P.k.#.4     I.I.I.I.  $ $ A u.H.I.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.I.I.~ l u -   I.I.I.I.I.    u u.L.A.A.I.I.I.I.I.I.I.I.",
++"I.I.I.I.I.  $ s } 5.6   I.I.I.        # ( C.S.A.I.I.I.I.I.I.I.I.",
++"I.        u ..f.H.0.    I.I.    I.I.I.  - | C.A.H.I.  I.I.I.I.I.",
++"I.I.  - E u.x.N.L.I.  I.I.I.I.I.I.I.I.I.  - ) m.L.K   I.I.I.I.I.",
++"I.I.I.,.A.H.;.N C     I.I.I.I.I.I.I.I.I.I.  $ m } w   I.I.I.I.I.",
++"I.I.I.H.A.A.V.)       I.I.I.I.I.I.I.I.I.I.I.d         I.I.I.I.I.",
++"I.I.A.A.A.A.S.m.      I.I.I.I.I.I.I.I.I.I.I.0.L >   - >.L.A.A.A.",
++"I.A.A.A.A.A.A.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.B.3.K l 4.H.A.I.I.",
++"A.A.A.A.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.H.Z.h.V.I.I.I.I."
++};
+Index: yi-0.6.7.0/yi.cabal
+===================================================================
+--- yi-0.6.7.0.orig/yi.cabal	2013-06-29 18:19:06.000000000 +0200
++++ yi-0.6.7.0/yi.cabal	2013-07-07 16:18:06.000000000 +0200
+@@ -17,6 +17,7 @@
+ data-files:
+   art/*.png
+   art/*.pdf
++  art/*.xpm
+   example-configs/*.hs
+ extra-source-files: src/library/Yi/Lexer/common.hsinc
+ 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-haskell/package-plan.git



More information about the Pkg-haskell-commits mailing list