summaryrefslogtreecommitdiff
path: root/app-emacs/elscreen
diff options
context:
space:
mode:
Diffstat (limited to 'app-emacs/elscreen')
-rw-r--r--app-emacs/elscreen/Manifest6
-rw-r--r--app-emacs/elscreen/elscreen-1.4.6-r1.ebuild33
-rw-r--r--app-emacs/elscreen/files/50elscreen-gentoo.el1
-rw-r--r--app-emacs/elscreen/files/elscreen-1.4.6-emacs-24.patch154
-rw-r--r--app-emacs/elscreen/files/elscreen-1.4.6-void-variable-argi.patch71
-rw-r--r--app-emacs/elscreen/metadata.xml23
6 files changed, 288 insertions, 0 deletions
diff --git a/app-emacs/elscreen/Manifest b/app-emacs/elscreen/Manifest
new file mode 100644
index 000000000000..94ac8de60f15
--- /dev/null
+++ b/app-emacs/elscreen/Manifest
@@ -0,0 +1,6 @@
+AUX 50elscreen-gentoo.el 38 BLAKE2B e96c6cf48d1522d89450e11d339c76210c672377208b56951791b83c6ef22b2c872d313084e199dd5d7b533a99106a87dbc7f15b5ee6126f71bf5f2e84165ffa SHA512 5c00bcabe2d7cc03013dc7a54b2c653940c08098ca5646d7c73624cb1ca04376ae9dcf88a7166b1925c69f0c5d192d90f6bd790fdef8ed8c3b0f9d163c987da5
+AUX elscreen-1.4.6-emacs-24.patch 5925 BLAKE2B 1c1b7868093a56aadf4e8b2794d767b07de9123dc2be71f4af063d0ab100ca06a187186c3f685024b44b97a69cdab06732dbda3cf1201e5808e5f531d4b4aa07 SHA512 581f5c2c30fa4ae5a8a2266c40842076126a365f947ceaae32299ac680e74a7ca33b077130ff566c12008c79ba4da504160290da72d33ffab5a4d0b40e46557e
+AUX elscreen-1.4.6-void-variable-argi.patch 2789 BLAKE2B 173a2c94528d93660009e0b73e58cedf9343e415f789219350d41fb7b90fc12d7ee7774f6b5b9a97277d54a34e04b4ac4ff93a413018ca0dc872202ad376e6d2 SHA512 254c76e291848caf19983bc896b5a405b9d52dacb871ba5e9009d77968d5249c2445606fb2507f0d0f67859a955aabf4c717dae2acf94f52daa999237fd27333
+DIST elscreen-1.4.6.tar.gz 21680 BLAKE2B a23b7eb617e67205e816cb5c6588f65d8140788ab9c32b90b9c1f53dc4497e6f8250f3c51c38aa40780872f3d878a34aaf2fb455c61640d327df6e3166a59dc7 SHA512 2f19941c9c3e74bbe3912e99f53710f42d33a5b063af99c3907c478d2f571a50a75942519bfcad3bf178585f736bb6e2baf2cdffe8ac66b8e4dbd1b0d881fab2
+EBUILD elscreen-1.4.6-r1.ebuild 905 BLAKE2B 729e11a757c23a3a863c8fcc8c1be4971793326e03abd0c1f914518cadbf5ad041b1ddb9f3c1eb3e8fde4088f880e28779998498417a3ef65ef2152a8cae356e SHA512 9a5f82f0fac66c21e48ed258768bf9ab76c1c01dca4a19227d20e5785e262fbdf3256949fc215e8314d84cfe25f2e02d6c1610c5960d93fab97f315f8c516485
+MISC metadata.xml 1086 BLAKE2B e9254ee3a2f72cd43136c84c0fe5765e91f2fc846bdf94943dc739b5123a936df8b9e6d1210835da5f6dc55db70f7f8858c6a548e684954be63a4cd5c2fa9dd6 SHA512 87bf0cf357b0573f74ef28b6910de612b01f009070277c8ff386e0956913c04683819b8df22a3d4aecbd48f014d2741cd4b852235e3539752465648c754d7f55
diff --git a/app-emacs/elscreen/elscreen-1.4.6-r1.ebuild b/app-emacs/elscreen/elscreen-1.4.6-r1.ebuild
new file mode 100644
index 000000000000..c2673da73b4c
--- /dev/null
+++ b/app-emacs/elscreen/elscreen-1.4.6-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit elisp
+
+DESCRIPTION="Frame configuration management for GNU Emacs modelled after GNU Screen"
+HOMEPAGE="http://www.morishima.net/~naoto/j/software/elscreen/"
+SRC_URI="ftp://ftp.morishima.net/pub/morishima.net/naoto/ElScreen/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 hppa ~ia64 ~ppc ~ppc64 sparc x86"
+IUSE=""
+
+DEPEND=">=app-emacs/apel-10.8-r1"
+RDEPEND="${DEPEND}"
+
+ELISP_PATCHES="${PN}-1.4.6-void-variable-argi.patch ${PN}-1.4.6-emacs-24.patch"
+
+SITEFILE=50${PN}-gentoo.el
+DOCS="ChangeLog README"
+
+pkg_postinst() {
+ elisp-site-regen
+
+ echo
+ elog "ElScreen modifies standard Emacs keybindings and is therefore"
+ elog "no longer loaded from site-gentoo.el. Add the line"
+ elog " (require 'elscreen)"
+ elog "to your ~/.emacs file to enable it on Emacs startup."
+}
diff --git a/app-emacs/elscreen/files/50elscreen-gentoo.el b/app-emacs/elscreen/files/50elscreen-gentoo.el
new file mode 100644
index 000000000000..431f7e90ae73
--- /dev/null
+++ b/app-emacs/elscreen/files/50elscreen-gentoo.el
@@ -0,0 +1 @@
+(add-to-list 'load-path "@SITELISP@")
diff --git a/app-emacs/elscreen/files/elscreen-1.4.6-emacs-24.patch b/app-emacs/elscreen/files/elscreen-1.4.6-emacs-24.patch
new file mode 100644
index 000000000000..dbcb77557f17
--- /dev/null
+++ b/app-emacs/elscreen/files/elscreen-1.4.6-emacs-24.patch
@@ -0,0 +1,154 @@
+--- elscreen-1.4.6-orig/elscreen.el 2013-05-23 21:31:14.011823000 +1000
++++ elscreen-1.4.6/elscreen.el 2013-10-03 20:55:35.497650931 +1000
+@@ -29,9 +29,9 @@
+ (eval-when-compile
+ (require 'static))
+
+-(static-defconst elscreen-on-xemacs (featurep 'xemacs))
+-(static-defconst elscreen-on-emacs (and (not elscreen-on-xemacs)
+- (>= emacs-major-version 21)))
++(static-defconst elscreen-on-xemacs (featurep 'xemacs)
++ (static-defconst elscreen-on-emacs (and (not elscreen-on-xemacs)
++ (>= emacs-major-version 21))))
+
+
+ ;;; User Customizable Variables:
+@@ -148,7 +148,8 @@
+
+ (static-when elscreen-on-emacs ;; GNU Emacs 21
+ (make-obsolete-variable 'elscreen-tab-display-create-screen
+- 'elscreen-tab-display-control)
++ 'elscreen-tab-display-control
++ "1.4.6")
+ (defcustom elscreen-tab-display-control t
+ "*Non-nil to display control tab at the most left side."
+ :tag "Show/Hide the Control Tab"
+@@ -201,13 +202,13 @@
+ (((class color))
+ (:background "blue" :foreground "black" :underline t)))
+ "Face for tabs other than current screen one."
+- :group 'elscreen))
++ :group 'elscreen)
+
+
+ ;;; Key & Menu bindings:
+
+-(defvar elscreen-map (make-sparse-keymap)
+- "Keymap for ElScreen.")
++ (defvar elscreen-map (make-sparse-keymap)
++ "Keymap for ElScreen."))
+ (define-key elscreen-map "\C-c" 'elscreen-create)
+ (define-key elscreen-map "c" 'elscreen-create)
+ (define-key elscreen-map "C" 'elscreen-clone)
+@@ -899,13 +900,13 @@
+ screen-list-string)
+ (cond
+ ((not (elscreen-screen-live-p screen)) ;; XXX
+- (when (interactive-p)
++ (when (called-interactively-p 'any)
+ (elscreen-message "There is no such screen")))
+ ((null screen-list)
+- (when (interactive-p)
++ (when (called-interactively-p 'any)
+ (elscreen-message "There is only one screen, cannot kill")))
+ ((or
+- (not (interactive-p))
++ (not (called-interactively-p 'any))
+ (yes-or-no-p (format "Really kill screens other than %d? " screen)))
+ (setq screen-list-string (mapconcat
+ (lambda (screen)
+@@ -914,7 +915,7 @@
+ screen-list ","))
+ (elscreen-goto-internal screen)
+ (elscreen-notify-screen-modification 'force-immediately)
+- (when (interactive-p)
++ (when (called-interactively-p 'any)
+ (elscreen-message (format "screen %s killed" screen-list-string)))))
+ screen-list))
+
+@@ -984,7 +985,7 @@
+ (defun elscreen-jump ()
+ "Switch to specified screen."
+ (interactive)
+- (let ((next-screen (string-to-number (string last-command-char))))
++ (let ((next-screen (string-to-number (string last-command-event))))
+ (if (and (<= 0 next-screen) (<= next-screen 9))
+ (elscreen-goto next-screen))))
+ (defalias 'elscreen-jump-0 'elscreen-jump)
+@@ -1046,7 +1047,7 @@
+ (princ (substitute-command-keys
+ (mapconcat 'symbol-value
+ elscreen-help-symbol-list "\n\n")))
+- (print-help-return-message)))
++ (help-print-return-message)))
+
+
+ ;;; Utility Functions
+@@ -1180,7 +1181,7 @@
+ creating one if none already exists."
+ (interactive)
+ (let* ((prompt "Go to the screen with specified buffer: ")
+- (create (or create (interactive-p)))
++ (create (or create (called-interactively-p 'any)))
+ (buffer-name (or (and (bufferp buffer) (buffer-name buffer))
+ (and (stringp buffer) buffer)
+ (and (featurep 'iswitchb)
+@@ -1207,7 +1208,7 @@
+ Use \\[toggle-read-only] to permit editing."
+ (interactive "FFind file read-only in new screen: ")
+ (elscreen-find-file filename)
+- (toggle-read-only 1))
++ (read-only-mode 1))
+
+ (defun elscreen-dired (dirname &optional switches)
+ (interactive (progn
+@@ -1373,27 +1374,28 @@
+ (defvar elscreen-e21-tab-format nil)
+ (make-variable-buffer-local 'elscreen-e21-tab-format)
+
+- (defsubst elscreen-e21-tab-create-keymap (&rest definitions)
+- (let ((keymap (make-sparse-keymap))
+- (key-function-pairs
+- (eval-when-compile
+- (mapcar
+- (lambda (key)
+- (cons key 'ignore))
+- (list 'mouse-1 'mouse-2 'mouse-3
+- 'down-mouse-1 'down-mouse-2 'down-mouse-3
+- 'drag-mouse-1 'drag-mouse-2 'drag-mouse-3)))))
+- (while definitions
+- (set-alist 'key-function-pairs (car definitions) (cadr definitions))
+- (setq definitions (cddr definitions)))
+- (mapc
+- (lambda (key-function-pair)
+- (let ((key (car key-function-pair))
+- (function (cdr key-function-pair)))
+- (define-key keymap (vector 'header-line key) function)))
+- key-function-pairs)
+- keymap))
+-
++ (eval-when-compile
++ (defsubst elscreen-e21-tab-create-keymap (&rest definitions)
++ (let ((keymap (make-sparse-keymap))
++ (key-function-pairs
++ (eval-when-compile
++ (mapcar
++ (lambda (key)
++ (cons key 'ignore))
++ (list 'mouse-1 'mouse-2 'mouse-3
++ 'down-mouse-1 'down-mouse-2 'down-mouse-3
++ 'drag-mouse-1 'drag-mouse-2 'drag-mouse-3)))))
++ (while definitions
++ (set-alist 'key-function-pairs (car definitions) (cadr definitions))
++ (setq definitions (cddr definitions)))
++ (mapc
++ (lambda (key-function-pair)
++ (let ((key (car key-function-pair))
++ (function (cdr key-function-pair)))
++ (define-key keymap (vector 'header-line key) function)))
++ key-function-pairs)
++ keymap)))
++
+ (defsubst elscreen-e21-tab-width ()
+ (if (numberp elscreen-display-tab)
+ elscreen-display-tab
diff --git a/app-emacs/elscreen/files/elscreen-1.4.6-void-variable-argi.patch b/app-emacs/elscreen/files/elscreen-1.4.6-void-variable-argi.patch
new file mode 100644
index 000000000000..b8225070a675
--- /dev/null
+++ b/app-emacs/elscreen/files/elscreen-1.4.6-void-variable-argi.patch
@@ -0,0 +1,71 @@
+--- elscreen.el.orig 2007-12-29 15:12:05.000000000 +0000
++++ elscreen.el
+@@ -1691,6 +1691,10 @@ Use \\[toggle-read-only] to permit editi
+ ("-e" . elscreen-command-line-funcall))))
+
+ (static-when elscreen-on-emacs
++ (cond
++ ; -----------------------
++ ((< emacs-major-version 23) ; emacs22 or prior to
++ (progn
+ (defun elscreen-e21-command-line ()
+ (when (string-match "\\`-" argi)
+ (error "Unknown option `%s'" argi))
+@@ -1703,11 +1707,55 @@ Use \\[toggle-read-only] to permit editi
+ (elscreen-command-line-find-file file file-count line column))
+ (setq line 0)
+ (setq column 0)
+- t)
++ t) ; defun
+
+ (add-hook 'after-init-hook (lambda ()
+ (add-to-list 'command-line-functions
+- 'elscreen-e21-command-line t))))
++ 'elscreen-e21-command-line t)))) ; progn
++ ) ; else
++ ; -----------------------
++ ((= emacs-major-version 23) ; emacs23
++ (progn
++ (defun elscreen-e23-command-line ()
++ (when (string-match "\\`-" argi)
++ (error "Unknown option `%s'" argi))
++ (setq file-count (1+ file-count))
++ (setq inhibit-startup-buffer-menu t)
++ (let* ((file
++ (expand-file-name
++ (command-line-normalize-file-name orig-argi)
++ cl1-dir)))
++ (elscreen-command-line-find-file file file-count cl1-line cl1-column))
++ (setq cl1-line 0)
++ (setq cl1-column 0)
++ t) ; defun
++
++ (add-hook 'after-init-hook (lambda ()
++ (add-to-list 'command-line-functions
++ 'elscreen-e23-command-line t)))) ; progn
++ ) ; else
++ ; -----------------------
++ ((> emacs-major-version 23) ; emacs24 or later
++ (progn
++ (defun elscreen-e24-command-line ()
++ (when (string-match "\\`-" cl1-argi)
++ (error "Unknown option `%s'" cl1-argi))
++ (setq file-count (1+ file-count))
++ (setq inhibit-startup-buffer-menu t)
++ (let* ((file
++ (expand-file-name
++ (command-line-normalize-file-name orig-argi)
++ cl1-dir)))
++ (elscreen-command-line-find-file file file-count cl1-line cl1-column))
++ (setq cl1-line 0)
++ (setq cl1-column 0)
++ t) ; defun
++
++ (add-hook 'after-init-hook (lambda ()
++ (add-to-list 'command-line-functions
++ 'elscreen-e24-command-line t)))) ; progn
++ )
++ )) ; endif (emacs22 or prior to)
+
+ (static-when elscreen-on-xemacs
+ (defadvice command-line-1 (around elscreen-xmas-command-line-1 activate)
diff --git a/app-emacs/elscreen/metadata.xml b/app-emacs/elscreen/metadata.xml
new file mode 100644
index 000000000000..71b064d851b0
--- /dev/null
+++ b/app-emacs/elscreen/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>gnu-emacs@gentoo.org</email>
+ <name>Gentoo GNU Emacs project</name>
+</maintainer>
+<longdescription>
+ Emacs is more of an "environment" than just an editor, since it has the
+ strong configuration language, emacs-lisp. There are a lot of applications
+ written in emacs-lisp, and you may run many applications on your Emacs at
+ the same time, i.e. e-mail reader, news reader, IRC client, a kind of IDE,
+ etc. These applications likely consist of two or more windows, so when you
+ switch among applications, you may want to save or restore how windows are
+ located (this is called as "window-configuration"). For this purpose, Emacs
+ has two functions, window-configuratin-to-register and jump-to-register, but
+ these are too primitive to use on a daily basis.
+
+ ElScreen provides the ease-to-use environment to save or restore several
+ window-configurations.
+</longdescription>
+<stabilize-allarches/>
+</pkgmetadata>