summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wright <gienah@gentoo.org>2013-10-03 11:36:26 +0000
committerMark Wright <gienah@gentoo.org>2013-10-03 11:36:26 +0000
commit83a18b2c33a10260eba3e6894cca727616e55c9f (patch)
treeb7f4fb15039eb6f360bf92d841621bf0494981d3 /app-emacs
parentAdd patches, the changes are noted in the ChangeLog diffs included in the pat... (diff)
downloadgentoo-2-83a18b2c33a10260eba3e6894cca727616e55c9f.tar.gz
gentoo-2-83a18b2c33a10260eba3e6894cca727616e55c9f.tar.bz2
gentoo-2-83a18b2c33a10260eba3e6894cca727616e55c9f.zip
Patch elscreen to build with emacs 24, fixes bug 425258
(Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key 618E971F)
Diffstat (limited to 'app-emacs')
-rw-r--r--app-emacs/elscreen/ChangeLog12
-rw-r--r--app-emacs/elscreen/elscreen-1.4.6-r1.ebuild34
-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
4 files changed, 268 insertions, 3 deletions
diff --git a/app-emacs/elscreen/ChangeLog b/app-emacs/elscreen/ChangeLog
index 8460fd5ee781..aee76e79aa88 100644
--- a/app-emacs/elscreen/ChangeLog
+++ b/app-emacs/elscreen/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-emacs/elscreen
-# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-emacs/elscreen/ChangeLog,v 1.24 2009/07/02 17:07:35 jer Exp $
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-emacs/elscreen/ChangeLog,v 1.25 2013/10/03 11:36:26 gienah Exp $
+
+*elscreen-1.4.6-r1 (03 Oct 2013)
+
+ 03 Oct 2013; Mark Wright <gienah@gentoo.org> +elscreen-1.4.6-r1.ebuild,
+ +files/elscreen-1.4.6-emacs-24.patch,
+ +files/elscreen-1.4.6-void-variable-argi.patch:
+ Patch elscreen to build with emacs 24, fixes bug 425258
02 Jul 2009; Jeroen Roovers <jer@gentoo.org> elscreen-1.4.6.ebuild:
Stable for HPPA too.
@@ -91,4 +98,3 @@
05 May 2003; Matthew Kennedy <mkennedy@gentoo.org> elscreen-1.2.4.ebuild,
files/60elscreen-gentoo.el:
Initial import.
-
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..da91bbdaea9c
--- /dev/null
+++ b/app-emacs/elscreen/elscreen-1.4.6-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emacs/elscreen/elscreen-1.4.6-r1.ebuild,v 1.1 2013/10/03 11:36:26 gienah Exp $
+
+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/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)