summaryrefslogtreecommitdiff
path: root/p/yi
diff options
context:
space:
mode:
authorMasayuki Hatta <mhatta@debian.org>2013-02-24 17:55:16 +0400
committerMasayuki Hatta <mhatta@debian.org>2013-02-24 17:55:16 +0400
commitb803ef3414c9d7f54b6d2e5601de611c973c5ba9 (patch)
tree574bb97df280bbb1dfbbc98e56523eb25c5b628d /p/yi
parent35f4e56745859b46859182bfe8f98073c87a47ce (diff)
downloadDHG_packages-b803ef3414c9d7f54b6d2e5601de611c973c5ba9.tar.gz
yi: Initial Check-In
Diffstat (limited to 'p/yi')
-rw-r--r--p/yi/debian/changelog6
-rw-r--r--p/yi/debian/compat1
-rw-r--r--p/yi/debian/control200
-rw-r--r--p/yi/debian/copyright27
-rw-r--r--p/yi/debian/patches/man-page.diff69
-rw-r--r--p/yi/debian/patches/series4
-rw-r--r--p/yi/debian/patches/use-pointedlist-0.4.diff207
-rw-r--r--p/yi/debian/patches/workaround-unicode.diff22
-rw-r--r--p/yi/debian/patches/xpm-icons.diff485
-rwxr-xr-xp/yi/debian/rules16
-rw-r--r--p/yi/debian/source/format1
-rw-r--r--p/yi/debian/watch5
-rw-r--r--p/yi/debian/yi-emacs.desktop12
-rw-r--r--p/yi/debian/yi-vim.desktop12
-rw-r--r--p/yi/debian/yi.dirs3
-rw-r--r--p/yi/debian/yi.manpages1
-rw-r--r--p/yi/debian/yi.menu35
17 files changed, 1106 insertions, 0 deletions
diff --git a/p/yi/debian/changelog b/p/yi/debian/changelog
new file mode 100644
index 000000000..6f72c366c
--- /dev/null
+++ b/p/yi/debian/changelog
@@ -0,0 +1,6 @@
+yi (0.6.6.0-1) UNRELEASED; urgency=low
+
+ * Initial release. (closes: #701527)
+ * Debianization generated by cabal-debian
+
+ -- Masayuki Hatta (mhatta) <mhatta@debian.org> Sun, 24 Feb 2013 01:30:08 +0900
diff --git a/p/yi/debian/compat b/p/yi/debian/compat
new file mode 100644
index 000000000..c7930257d
--- /dev/null
+++ b/p/yi/debian/compat
@@ -0,0 +1 @@
+7 \ No newline at end of file
diff --git a/p/yi/debian/control b/p/yi/debian/control
new file mode 100644
index 000000000..9864b235e
--- /dev/null
+++ b/p/yi/debian/control
@@ -0,0 +1,200 @@
+Source: yi
+Priority: extra
+Section: haskell
+Maintainer: Debian Haskell Group <pkg-haskell-maintainers@lists.alioth.debian.org>
+Uploaders: Masayuki Hatta (mhatta) <mhatta@debian.org>
+Build-Depends: debhelper (>= 7.0)
+ , haskell-devscripts (>= 0.8)
+ , cdbs
+ , ghc
+ , ghc-prof
+ , libghc-diff-dev (>= 0.1)
+ , libghc-diff-dev (<< 0.2)
+ , libghc-diff-prof (>= 0.1)
+ , libghc-diff-prof (<< 0.2)
+ , libghc-quickcheck2-dev (>= 2.1.0.2)
+ , libghc-quickcheck2-prof (>= 2.1.0.2)
+ , libghc-cautious-file-dev (>= 1.0.1)
+ , libghc-cautious-file-prof (>= 1.0.1)
+ , libghc-concrete-typerep-dev (>= 0.1)
+ , libghc-concrete-typerep-dev (<< 0.2)
+ , libghc-concrete-typerep-prof (>= 0.1)
+ , libghc-concrete-typerep-prof (<< 0.2)
+ , libghc-data-accessor-dev (>= 0.2.1.4)
+ , libghc-data-accessor-dev (<< 0.3)
+ , libghc-data-accessor-prof (>= 0.2.1.4)
+ , libghc-data-accessor-prof (<< 0.3)
+ , libghc-data-accessor-mtl-dev (>= 0.2)
+ , libghc-data-accessor-mtl-dev (<< 0.3)
+ , libghc-data-accessor-mtl-prof (>= 0.2)
+ , libghc-data-accessor-mtl-prof (<< 0.3)
+ , libghc-data-accessor-template-dev (>= 0.2.1.3)
+ , libghc-data-accessor-template-dev (<< 0.2.2)
+ , libghc-data-accessor-template-prof (>= 0.2.1.3)
+ , libghc-data-accessor-template-prof (<< 0.2.2)
+ , libghc-derive-dev (>= 2.4)
+ , libghc-derive-dev (<< 2.7)
+ , libghc-derive-prof (>= 2.4)
+ , libghc-derive-prof (<< 2.7)
+ , libghc-dlist-dev (>= 0.4.1)
+ , libghc-dlist-prof (>= 0.4.1)
+ , libghc-dyre-dev (>= 0.7)
+ , libghc-dyre-prof (>= 0.7)
+ , libghc-fingertree-dev (<< 0.1)
+ , libghc-fingertree-prof (<< 0.1)
+ , libghc-ghc-paths-dev (>= 0.1)
+ , libghc-ghc-paths-dev (<< 0.2)
+ , libghc-ghc-paths-prof (>= 0.1)
+ , libghc-ghc-paths-prof (<< 0.2)
+ , libghc-hashable-dev (<< 1.2)
+ , libghc-hashable-prof (<< 1.2)
+ , libghc-hint-dev (>> 0.3.1)
+ , libghc-hint-prof (>> 0.3.1)
+ , libghc-mtl-dev (>= 0.1.0.1)
+ , libghc-mtl-prof (>= 0.1.0.1)
+ , libghc-pointedlist-dev (>= 0.4)
+ , libghc-pointedlist-dev (<< 0.5)
+ , libghc-pointedlist-prof (>= 0.4)
+ , libghc-pointedlist-prof (<< 0.5)
+ , libghc-puremd5-dev (>= 0.2.3)
+ , libghc-puremd5-prof (>= 0.2.3)
+ , libghc-random-dev
+ , libghc-random-prof
+ , libghc-regex-base-dev (>= 0.93)
+ , libghc-regex-base-dev (<< 0.94)
+ , libghc-regex-base-prof (>= 0.93)
+ , libghc-regex-base-prof (<< 0.94)
+ , libghc-regex-tdfa-dev (>= 1.1)
+ , libghc-regex-tdfa-dev (<< 1.2)
+ , libghc-regex-tdfa-prof (>= 1.1)
+ , libghc-regex-tdfa-prof (<< 1.2)
+ , libghc-rosezipper-dev (>= 0.1)
+ , libghc-rosezipper-dev (<< 0.3)
+ , libghc-rosezipper-prof (>= 0.1)
+ , libghc-rosezipper-prof (<< 0.3)
+ , libghc-split-dev (>= 0.1)
+ , libghc-split-dev (<< 0.2)
+ , libghc-split-prof (>= 0.1)
+ , libghc-split-prof (<< 0.2)
+ , libghc-uniplate-dev
+ , libghc-uniplate-prof
+ , libghc-unix-compat-dev (>= 0.1)
+ , libghc-unix-compat-dev (<< 0.4)
+ , libghc-unix-compat-prof (>= 0.1)
+ , libghc-unix-compat-prof (<< 0.4)
+ , libghc-unordered-containers-dev (>= 0.1.3)
+ , libghc-unordered-containers-dev (<< 0.3)
+ , libghc-unordered-containers-prof (>= 0.1.3)
+ , libghc-unordered-containers-prof (<< 0.3)
+ , libghc-utf8-string-dev (>= 0.3.1)
+ , libghc-utf8-string-prof (>= 0.3.1)
+ , libghc-vty-dev (>= 4.7.0.0)
+ , libghc-vty-dev (<< 5)
+ , libghc-vty-prof (>= 4.7.0.0)
+ , libghc-vty-prof (<< 5)
+ , alex
+ , libghc-gtk-dev
+ , libghc-gtk-prof
+ , libghc-vte-dev
+ , libghc-vte-prof
+Build-Depends-Indep: ghc-doc
+ , libghc-diff-doc (>= 0.1)
+ , libghc-diff-doc (<< 0.2)
+ , libghc-quickcheck2-doc (>= 2.1.0.2)
+ , libghc-cautious-file-doc (>= 1.0.1)
+ , libghc-concrete-typerep-doc (>= 0.1)
+ , libghc-concrete-typerep-doc (<< 0.2)
+ , libghc-data-accessor-doc (>= 0.2.1.4)
+ , libghc-data-accessor-doc (<< 0.3)
+ , libghc-data-accessor-mtl-doc (>= 0.2)
+ , libghc-data-accessor-mtl-doc (<< 0.3)
+ , libghc-data-accessor-template-doc (>= 0.2.1.3)
+ , libghc-data-accessor-template-doc (<< 0.2.2)
+ , libghc-derive-doc (>= 2.4)
+ , libghc-derive-doc (<< 2.7)
+ , libghc-dlist-doc (>= 0.4.1)
+ , libghc-dyre-doc (>= 0.7)
+ , libghc-fingertree-doc (<< 0.1)
+ , libghc-ghc-paths-doc (>= 0.1)
+ , libghc-ghc-paths-doc (<< 0.2)
+ , libghc-hashable-doc (<< 1.2)
+ , libghc-hint-doc (>> 0.3.1)
+ , libghc-mtl-doc (>= 0.1.0.1)
+ , libghc-pointedlist-doc (>= 0.4)
+ , libghc-pointedlist-doc (<< 0.5)
+ , libghc-puremd5-doc (>= 0.2.3)
+ , libghc-random-doc
+ , libghc-regex-base-doc (>= 0.93)
+ , libghc-regex-base-doc (<< 0.94)
+ , libghc-regex-tdfa-doc (>= 1.1)
+ , libghc-regex-tdfa-doc (<< 1.2)
+ , libghc-rosezipper-doc (>= 0.1)
+ , libghc-rosezipper-doc (<< 0.3)
+ , libghc-split-doc (>= 0.1)
+ , libghc-split-doc (<< 0.2)
+ , libghc-uniplate-doc
+ , libghc-unix-compat-doc (>= 0.1)
+ , libghc-unix-compat-doc (<< 0.4)
+ , libghc-unordered-containers-doc (>= 0.1.3)
+ , libghc-unordered-containers-doc (<< 0.3)
+ , libghc-utf8-string-doc (>= 0.3.1)
+ , libghc-vty-doc (>= 4.7.0.0)
+ , libghc-vty-doc (<< 5)
+ , libghc-gtk-doc
+ , libghc-vte-doc
+Standards-Version: 3.9.3
+Homepage: http://haskell.org/haskellwiki/Yi
+Vcs-Darcs: http://darcs.debian.org/darcs/pkg-haskell/yi
+Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/yi
+
+Package: libghc-yi-dev
+Architecture: any
+Depends: ${shlibs:Depends}
+ , ${haskell:Depends}
+ , ${misc:Depends}
+Recommends: ${haskell:Recommends}
+Suggests: ${haskell:Suggests}
+Provides: ${haskell:Provides}
+Description: Haskell-Scriptable Editor
+ Yi is a text editor written in Haskell and extensible in Haskell. The goal
+ of the Yi project is to provide a flexible, powerful, and correct editor
+ for haskell hacking.
+ .
+ This package contains the normal library files.
+
+Package: libghc-yi-prof
+Architecture: any
+Depends: ${haskell:Depends}
+ , ${misc:Depends}
+Recommends: ${haskell:Recommends}
+Suggests: ${haskell:Suggests}
+Provides: ${haskell:Provides}
+Description: Haskell-Scriptable Editor
+ Yi is a text editor written in Haskell and extensible in Haskell. The goal
+ of the Yi project is to provide a flexible, powerful, and correct editor
+ for haskell hacking.
+ .
+ This package contains the libraries compiled with profiling enabled.
+
+Package: libghc-yi-doc
+Architecture: all
+Section: doc
+Depends: ${haskell:Depends}
+ , ${misc:Depends}
+Recommends: ${haskell:Recommends}
+Suggests: ${haskell:Suggests}
+Description: Haskell-Scriptable Editor
+ Yi is a text editor written in Haskell and extensible in Haskell. The goal
+ of the Yi project is to provide a flexible, powerful, and correct editor
+ for haskell hacking.
+ .
+ This package contains the documentation files.
+
+Package: yi
+Architecture: any
+Section: misc
+Depends: ${shlibs:Depends}, ${haskell:Depends}, ${misc:Depends}
+Description: Haskell-Scriptable Editor
+ Yi is a text editor written in Haskell and extensible in Haskell. The goal
+ of the Yi project is to provide a flexible, powerful, and correct editor
+ for haskell hacking.
diff --git a/p/yi/debian/copyright b/p/yi/debian/copyright
new file mode 100644
index 000000000..5bc4a9725
--- /dev/null
+++ b/p/yi/debian/copyright
@@ -0,0 +1,27 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: yi
+Upstream-Contact: Yi development team <yi-devel@googlegroups.com>
+Source: http://hackage.haskell.org/package/yi
+
+Files: *
+Copyright: Copyright 2013 Yi development team <yi-devel@googlegroups.com>
+License: GPL-2
+ This program is free software; you can redistribute it
+ and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation;
+ version 2 of the License.
+ .
+ This program is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the GNU General Public License for more
+ details.
+ .
+ You should have received a copy of the GNU General Public
+ License along with this package; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
diff --git a/p/yi/debian/patches/man-page.diff b/p/yi/debian/patches/man-page.diff
new file mode 100644
index 000000000..e738e380d
--- /dev/null
+++ b/p/yi/debian/patches/man-page.diff
@@ -0,0 +1,69 @@
+--- /dev/null
++++ b/yi.1
+@@ -0,0 +1,65 @@
++.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 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@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/p/yi/debian/patches/series b/p/yi/debian/patches/series
new file mode 100644
index 000000000..70a8ac917
--- /dev/null
+++ b/p/yi/debian/patches/series
@@ -0,0 +1,4 @@
+xpm-icons.diff
+workaround-unicode.diff
+man-page.diff
+use-pointedlist-0.4.diff
diff --git a/p/yi/debian/patches/use-pointedlist-0.4.diff b/p/yi/debian/patches/use-pointedlist-0.4.diff
new file mode 100644
index 000000000..1d19d1094
--- /dev/null
+++ b/p/yi/debian/patches/use-pointedlist-0.4.diff
@@ -0,0 +1,207 @@
+--- a/src/library/Yi/Editor.hs
++++ b/src/library/Yi/Editor.hs
+@@ -32,7 +32,7 @@
+ import Yi.Window
+ import qualified Data.Rope as R
+ import qualified Data.DelayList as DelayList
+-import qualified Data.List.PointedList as PL (atEnd)
++import qualified Data.List.PointedList as PL (atEnd, moveTo)
+ import qualified Data.List.PointedList.Circular as PL
+ import qualified Data.Map as M
+ import {-# source #-} Yi.Keymap (extractTopKeymap)
+@@ -142,7 +142,7 @@
+ tabsA = tabs_A . fixCurrentBufferA_
+
+ currentTabA :: Accessor Editor Tab
+-currentTabA = PL.focusA . tabsA
++currentTabA = focusA . tabsA
+
+ dynA :: YiVariable a => Accessor Editor a
+ dynA = dynamicValueA . dynamicA
+@@ -314,7 +314,7 @@
+ withGivenBufferAndWindow0 w (bufkey w) f
+
+ currentWindowA :: Accessor Editor Window
+-currentWindowA = PL.focusA . windowsA
++currentWindowA = focusA . windowsA
+
+ -- | Return the current buffer
+ currentBuffer :: Editor -> BufferRef
+@@ -460,7 +460,7 @@
+ -- | Attach the specified buffer to the current window
+ switchToBufferE :: BufferRef -> EditorM ()
+ switchToBufferE bk = do
+- modA (PL.focusA . windowsA) (\w ->
++ modA (focusA . windowsA) (\w ->
+ w { bufkey = bk,
+ bufAccessList = forceFold1 $ ((bufkey w):) . filter (bk/=) $ bufAccessList w })
+
+@@ -506,7 +506,7 @@
+
+ -- | Swaps the focused window with the first window. Useful for layouts such as 'HPairOneStack', for which the first window is the largest.
+ swapWinWithFirstE :: EditorM ()
+-swapWinWithFirstE = modA windowsA (swapFocus (fromJust . PL.move 0))
++swapWinWithFirstE = modA windowsA (swapFocus (fromJust . PL.moveTo 0))
+
+ -- | Moves the focused window to the first window, and moves all other windows down the stack.
+ pushWinToFirstE :: EditorM ()
+@@ -514,7 +514,7 @@
+ where
+ pushToFirst ws = case PL.delete ws of
+ Nothing -> ws
+- Just ws' -> PL.insertLeft (ws ^. PL.focusA) (fromJust $ PL.move 0 ws')
++ Just ws' -> PL.insertLeft (ws ^. focusA) (fromJust $ PL.moveTo 0 ws')
+
+ -- | Swap focused window with the next one
+ moveWinNextE :: EditorM ()
+@@ -530,7 +530,7 @@
+ fixCurrentBufferA_ :: Accessor Editor Editor
+ fixCurrentBufferA_ = fromSetGet (\new _old -> let
+ ws = windows new
+- b = findBufferWith (bufkey $ PL.focus ws) new
++ b = findBufferWith (bufkey $ PL._focus ws) new
+ newBufferStack = nub (bkey b : bufferStack new)
+ -- make sure we do not hold to old versions by seqing the length.
+ in length newBufferStack `seq` new { bufferStack = newBufferStack } ) id
+@@ -541,7 +541,7 @@
+ fixCurrentWindow :: EditorM ()
+ fixCurrentWindow = do
+ b <- gets currentBuffer
+- modA (PL.focusA . windowsA) (\w -> w {bufkey = b})
++ modA (focusA . windowsA) (\w -> w {bufkey = b})
+
+ withWindowE :: Window -> BufferM a -> EditorM a
+ withWindowE w = withGivenBufferAndWindow0 w (bufkey w)
+@@ -577,8 +577,8 @@
+ case foldl searchWindowSet (False, 0, 0) ts of
+ (False, _, _) -> fail $ "No window with key " ++ show wkey ++ "found. (focusWindowE)"
+ (True, tabIndex, winIndex) -> do
+- putA tabsA (fromJust $ PL.move tabIndex ts)
+- modA windowsA (\ws -> fromJust $ PL.move winIndex ws)
++ putA tabsA (fromJust $ PL.moveTo tabIndex ts)
++ modA windowsA (\ws -> fromJust $ PL.moveTo winIndex ws)
+
+ -- | Split the current window, opening a second window onto current buffer.
+ -- TODO: unfold newWindowE here?
+@@ -604,7 +604,7 @@
+ go lms lm =
+ case findPL (layoutManagerSameType lm) lms of
+ Nothing -> head lms
+- Just lmsPL -> f lmsPL ^. PL.focusA
++ Just lmsPL -> f lmsPL ^. focusA
+
+ -- | Next variant of the current layout manager, as given by 'nextVariant'
+ layoutManagerNextVariantE :: EditorM ()
+@@ -645,8 +645,8 @@
+ -- | Moves the focused tab to the given index, or to the end if the index is not specified.
+ moveTab :: Maybe Int -> EditorM ()
+ moveTab Nothing = do count <- getsA tabsA PL.length
+- modA tabsA $ fromJust . PL.move (pred count)
+-moveTab (Just n) = do newTabs <- getsA tabsA (PL.move n)
++ modA tabsA $ fromJust . PL.moveTo (pred count)
++moveTab (Just n) = do newTabs <- getsA tabsA (PL.moveTo n)
+ when (isNothing newTabs) failure
+ putA tabsA $ fromJust newTabs
+ where failure = fail $ "moveTab " ++ show n ++ ": no such tab"
+--- a/src/library/Yi/Prelude.hs
++++ b/src/library/Yi/Prelude.hs
+@@ -37,6 +37,7 @@
+ dummyGet,
+ every,
+ findPL,
++focusA,
+ fromIntegral,
+ fst,
+ fst3,
+@@ -232,9 +233,14 @@
+ go ls (f:rs) | p f = Just (PL.PointedList ls f rs)
+ | otherwise = go (f:ls) rs
+
++focusA :: Accessor (PL.PointedList a) a
++focusA = accessor getter setter where
++ getter (PL.PointedList _ x _) = x
++ setter y (PL.PointedList x _ z) = PL.PointedList x y z
++
+ -- | Given a function which moves the focus from index A to index B, return a function which swaps the elements at indexes A and B and then moves the focus. See Yi.Editor.swapWinWithFirstE for an example.
+ swapFocus :: (PL.PointedList a -> PL.PointedList a) -> (PL.PointedList a -> PL.PointedList a)
+-swapFocus moveFocus xs = PL.focusA ^= (xs ^. PL.focusA) $ moveFocus $ PL.focusA ^= (moveFocus xs ^. PL.focusA) $ xs
++swapFocus moveFocus xs = focusA ^= (xs ^. focusA) $ moveFocus $ focusA ^= (moveFocus xs ^. focusA) $ xs
+ ----------------------
+ -- Acessor stuff
+
+--- a/src/library/Yi/Tab.hs
++++ b/src/library/Yi/Tab.hs
+@@ -40,7 +40,7 @@
+ deriving Typeable
+
+ tabFocus :: Tab -> Window
+-tabFocus = PL.focus . tabWindows
++tabFocus = PL._focus . tabWindows
+
+ -- | Returns a list of all mini windows associated with the given tab
+ tabMiniWindows :: Tab -> [Window]
+--- a/src/library/Yi/UI/Pango.hs
++++ b/src/library/Yi/UI/Pango.hs
+@@ -13,6 +13,7 @@
+ import Data.Prototype
+ import Data.IORef
+ import Data.List (drop, intercalate, zip)
++import qualified Data.List.PointedList as PL (moveTo)
+ import qualified Data.List.PointedList.Circular as PL
+ import Data.Maybe
+ import qualified Data.Map as M
+@@ -198,7 +199,7 @@
+ let ui = UI win tabs status tc actionCh (configUI cfg) fontRef im
+
+ -- Keep the current tab focus up to date
+- let move n pl = maybe pl id (PL.move n pl)
++ let move n pl = maybe pl id (PL.moveTo n pl)
+ runAction = uiActionCh ui . makeAction
+ -- why does this cause a hang without postGUIAsync?
+ simpleNotebookOnSwitchPage (uiNotebook ui) $ \n -> postGUIAsync $
+--- a/src/library/Yi/UI/Pango/Layouts.hs
++++ b/src/library/Yi/UI/Pango/Layouts.hs
+@@ -369,7 +369,7 @@
+ forM_ tsList $ \(w,s) -> update nb (notebookChildTabLabel w) s
+
+ -- now set the focus
+- p <- notebookPageNum nb (fst $ PL.focus ts)
++ p <- notebookPageNum nb (fst $ PL._focus ts)
+ maybe (return ()) (update nb notebookPage) p
+
+ -- write the new status
+--- a/src/library/Yi/UI/TabBar.hs
++++ b/src/library/Yi/UI/TabBar.hs
+@@ -22,7 +22,7 @@
+ tabBarDescr :: Editor -> TabBarDescr
+ tabBarDescr editor =
+ let prefix = commonNamePrefix editor
+- hintForTab tab = tabAbbrevTitle $ shortIdentString prefix $ findBufferWith (bufkey $ PL.focus (tab ^. tabWindowsA)) editor
++ hintForTab tab = tabAbbrevTitle $ shortIdentString prefix $ findBufferWith (bufkey $ PL._focus (tab ^. tabWindowsA)) editor
+ tabDescr (tab,True) = TabDescr (hintForTab tab) True
+ tabDescr (tab,False) = TabDescr (hintForTab tab) False
+ in fmap tabDescr (PL.withFocus $ editor ^. tabsA)
+--- a/src/library/Yi/UI/Vty.hs
++++ b/src/library/Yi/UI/Vty.hs
+@@ -216,8 +216,8 @@
+ <->
+ vert_cat (fmap formatCmdLine niceCmd)
+ )
+- ) { pic_cursor = case cursor (PL.focus renders) of
+- Just (y,x) -> Cursor (toEnum x) (toEnum $ y + PL.focus startXs)
++ ) { pic_cursor = 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
+ -- This case can occur if the user resizes the window.
+--- a/yi.cabal
++++ b/yi.cabal
+@@ -225,7 +225,7 @@
+ hashable < 1.2,
+ hint > 0.3.1,
+ mtl >= 0.1.0.1,
+- pointedlist >= 0.3.5 && <0.4,
++ pointedlist >= 0.4 && < 0.5,
+ pureMD5 >= 0.2.3,
+ random,
+ regex-base ==0.93.*,
diff --git a/p/yi/debian/patches/workaround-unicode.diff b/p/yi/debian/patches/workaround-unicode.diff
new file mode 100644
index 000000000..91d390ec8
--- /dev/null
+++ b/p/yi/debian/patches/workaround-unicode.diff
@@ -0,0 +1,22 @@
+--- a/src/library/Yi/Lexer/common.hsinc
++++ b/src/library/Yi/Lexer/common.hsinc
+@@ -11,9 +11,16 @@
+ lookedOfs' = max lookedOfs (posnOfs pos +~ Size lookahead) in
+ case scn of
+ AlexEOF -> Nothing
+- AlexError inp' ->
+- let errorHint = take 10 $ alexCollectChar inp'
+- in error $ "lexical error around " ++ errorHint
++ -- TODO: Get someone with sufficient understanding of Alex to look at this.
++ --
++ -- Currently we get here when buffer contains unicode char like umlauts or cyrillic.
++ -- Invoking error here made editor crash. So as a workaround we return Nothing.
++ -- This means that nothing after unicode char is highlighted,
++ -- but at least the editor remains working.
++ AlexError inp' -> Nothing
++ -- let msg = "lexical error around " ++ take 10 (alexCollectChar inp')
++ -- in error msg
++
+ AlexSkip inp' len ->
+ let chunk = take (fromIntegral len) str
+ in alexScanToken (AlexState state lookedOfs' (moveStr pos chunk), inp')
diff --git a/p/yi/debian/patches/xpm-icons.diff b/p/yi/debian/patches/xpm-icons.diff
new file mode 100644
index 000000000..8aff7dc9d
--- /dev/null
+++ b/p/yi/debian/patches/xpm-icons.diff
@@ -0,0 +1,485 @@
+--- /dev/null
++++ b/art/yi+lambda-fat-16.xpm
+@@ -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.+.@.#.$.%.&.*.=.-.;.:.>.,.<.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@X#X",
++"$X%X&X*X=X-X;X:X>X,X<X1X2X3X4X5X",
++"6X7X8X9X0XqXwXeXrXtXyXuXiXpXaXsX",
++"dXfXgXhXjXkXlXzXxXcXvXbXnXmXMXNX",
++"BXVXCXZXAXSXDXFXGXHXJXKXLXPXIXUX"
++};
+--- /dev/null
++++ b/art/yi+lambda-fat-32.xpm
+@@ -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."
++};
diff --git a/p/yi/debian/rules b/p/yi/debian/rules
new file mode 100755
index 000000000..0214c271d
--- /dev/null
+++ b/p/yi/debian/rules
@@ -0,0 +1,16 @@
+#!/usr/bin/make -f
+
+DEB_SETUP_GHC_CONFIGURE_ARGS := -fpango
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/hlibrary.mk
+
+build/yi:: build-ghc-stamp
+binary-fixup/yi::
+ install -m 755 -s -D dist-ghc/build/yi/yi debian/yi/usr/bin/yi || true
+ install -m 755 -s -D dist-ghc/build/parserTest/parserTest debian/yi/usr/bin/parserTest || true
+ install -m 644 -D art/*.png debian/yi/usr/share/yi-0.6.6.0/art || true
+ install -m 644 -D art/*.pdf debian/yi/usr/share/yi-0.6.6.0/art || true
+ install -m 644 -D example-configs/*.hs debian/yi/usr/share/yi-0.6.6.0/example-configs || true
+ install -m 644 -D art/*.xpm debian/yi/usr/share/yi-0.6.6.0/art || true
+ install -m 644 -D debian/*.desktop debian/yi/usr/share/applications || true
diff --git a/p/yi/debian/source/format b/p/yi/debian/source/format
new file mode 100644
index 000000000..46ebe0266
--- /dev/null
+++ b/p/yi/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt) \ No newline at end of file
diff --git a/p/yi/debian/watch b/p/yi/debian/watch
new file mode 100644
index 000000000..fdf68b076
--- /dev/null
+++ b/p/yi/debian/watch
@@ -0,0 +1,5 @@
+version=3
+opts="downloadurlmangle=s|archive/([\w\d_-]+)/([\d\.]+)/|archive/$1/$2/$1-$2.tar.gz|,\
+filenamemangle=s|(.*)/$|yi-$1.tar.gz|" \
+ http://hackage.haskell.org/packages/archive/yi \
+ ([\d\.]*\d)/
diff --git a/p/yi/debian/yi-emacs.desktop b/p/yi/debian/yi-emacs.desktop
new file mode 100644
index 000000000..990e9e73a
--- /dev/null
+++ b/p/yi/debian/yi-emacs.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=1.0
+Name=Yi (Emacs keymap)
+GenericName=Text Editor
+Comment=View and edit files
+MimeType=text/plain;text/x-haskell;text/x-literatehaskell
+Exec=/usr/bin/yi -fpango --as=emacs %F
+TryExec=yi
+Icon=/usr/share/yi-0.6.6.0/art/yi+lambda-fat-32.png
+Type=Application
+Terminal=false
+Categories=Utility;Development;TextEditor;
diff --git a/p/yi/debian/yi-vim.desktop b/p/yi/debian/yi-vim.desktop
new file mode 100644
index 000000000..6bb17b8a1
--- /dev/null
+++ b/p/yi/debian/yi-vim.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=1.0
+Name=Yi (Vim keymap)
+GenericName=Text Editor
+Comment=View and edit files
+MimeType=text/plain;text/x-haskell;text/x-literatehaskell
+Exec=/usr/bin/yi -fpango --as=vim %F
+TryExec=yi
+Icon=/usr/share/yi-0.6.6.0/art/yi+lambda-fat-32.png
+Type=Application
+Terminal=false
+Categories=Utility;Development;TextEditor;
diff --git a/p/yi/debian/yi.dirs b/p/yi/debian/yi.dirs
new file mode 100644
index 000000000..b1f270408
--- /dev/null
+++ b/p/yi/debian/yi.dirs
@@ -0,0 +1,3 @@
+usr/share/applications
+usr/share/yi-0.6.6.0/art
+usr/share/yi-0.6.6.0/example-configs
diff --git a/p/yi/debian/yi.manpages b/p/yi/debian/yi.manpages
new file mode 100644
index 000000000..4d9bfb66f
--- /dev/null
+++ b/p/yi/debian/yi.manpages
@@ -0,0 +1 @@
+yi.1
diff --git a/p/yi/debian/yi.menu b/p/yi/debian/yi.menu
new file mode 100644
index 000000000..de9c293c2
--- /dev/null
+++ b/p/yi/debian/yi.menu
@@ -0,0 +1,35 @@
+?package(yi):\
+ needs="X11"\
+ section="Applications/Editors"\
+ title="Yi (Pango, Emacs)"\
+ command="/usr/bin/yi -fpango --as=emacs"\
+ icon16x16="/usr/share/yi-0.6.6.0/art/yi+lambda-fat-16.xpm"\
+ icon32x32="/usr/share/yi-0.6.6.0/art/yi+lambda-fat-32.xpm"\
+ hints="Text"
+
+?package(yi):\
+ needs="X11"\
+ section="Applications/Editors"\
+ title="Yi (Pango, Vim)"\
+ command="/usr/bin/yi -fpango --as=vim"\
+ icon16x16="/usr/share/yi-0.6.6.0/art/yi+lambda-fat-16.xpm"\
+ icon32x32="/usr/share/yi-0.6.6.0/art/yi+lambda-fat-32.xpm"\
+ hints="Text"
+
+?package(yi):\
+ needs="text"\
+ section="Applications/Editors"\
+ title="Yi (Vty, Emacs)"\
+ command="/usr/bin/yi -fvty --as=emacs"\
+ icon16x16="/usr/share/yi-0.6.6.0/art/yi+lambda-fat-16.xpm"\
+ icon32x32="/usr/share/yi-0.6.6.0/art/yi+lambda-fat-32.xpm"\
+ hints="Text"
+
+?package(yi):\
+ needs="text"\
+ section="Applications/Editors"\
+ title="Yi (Vty, Vim)"\
+ command="/usr/bin/yi -fvty --as=vim"\
+ icon16x16="/usr/share/yi-0.6.6.0/art/yi+lambda-fat-16.xpm"\
+ icon32x32="/usr/share/yi-0.6.6.0/art/yi+lambda-fat-32.xpm"\
+ hints="Text"