unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Kangas <stefan@marxist.se>
To: 37837@debbugs.gnu.org
Subject: bug#37837: [PATCH] Make sb-image.el obsolete
Date: Sun, 20 Oct 2019 22:28:40 +0200	[thread overview]
Message-ID: <CADwFkm=G_YT07NZSoN6W00_LRDLWQqRcvzSyDz30CujMo6ep0g@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 548 bytes --]

sb-image.el says:

;; Supporting Image display for Emacs 20 and less, Emacs 21, and XEmacs,
;; is a challenging task, which doesn't take kindly to being byte compiled.
;; When sharing speedbar.elc between these three applications, the Image
;; support can get lost.
;;
;; By splitting out that hard part into this file, and avoiding byte
;; compilation, one copy speedbar can support all these platforms together.

I suggest to get rid of this compatibility kludge.  Is the attached
patch an acceptable way to do that?

Best regards,
Stefan Kangas

[-- Attachment #2: 0001-Make-sb-image.el-to-obsolete.patch --]
[-- Type: application/octet-stream, Size: 10131 bytes --]

From 4b321ab4b02997540482569ec10514851c2be816 Mon Sep 17 00:00:00 2001
From: Stefan Kangas <stefankangas@gmail.com>
Date: Sun, 20 Oct 2019 22:20:14 +0200
Subject: [PATCH] Make sb-image.el to obsolete/

* lisp/sb-image.el: Move from here...
* lisp/obsolete/sb-image.el: to here.

* lisp/speedbar.el (ezimage): Require instead of 'sb-image'.
(speedbar-use-images, speedbar-expand-image-button-alist)
(speedbar-insert-image-button-maybe, speedbar-image-dump): Move
here from 'sb-image.el'.

* etc/NEWS: Announce it.
---
 etc/NEWS                  |   4 ++
 lisp/ezimage.el           |   2 +-
 lisp/obsolete/sb-image.el |  46 ++++++++++++++++
 lisp/sb-image.el          | 107 --------------------------------------
 lisp/speedbar.el          |  70 ++++++++++++++++++++++++-
 5 files changed, 120 insertions(+), 109 deletions(-)
 create mode 100644 lisp/obsolete/sb-image.el
 delete mode 100644 lisp/sb-image.el

diff --git a/etc/NEWS b/etc/NEWS
index 46ed40dfcb..65b6e16f76 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2139,6 +2139,10 @@ file-local variable, you may need to update the value.
 ** mode-local
 *** 'define-overload' is declared obsolete.
 
+---
+** The sb-image.el library is now marked obsolete.
+This library was a compatibility kludge which is no longer needed.
+
 \f
 * New Modes and Packages in Emacs 27.1
 
diff --git a/lisp/ezimage.el b/lisp/ezimage.el
index fc498aac32..bdab641fca 100644
--- a/lisp/ezimage.el
+++ b/lisp/ezimage.el
@@ -270,4 +270,4 @@ ezimage-all-images
 
 (provide 'ezimage)
 
-;;; sb-image.el ends here
+;;; ezimage.el ends here
diff --git a/lisp/obsolete/sb-image.el b/lisp/obsolete/sb-image.el
new file mode 100644
index 0000000000..96fde6fdd6
--- /dev/null
+++ b/lisp/obsolete/sb-image.el
@@ -0,0 +1,46 @@
+;;; sb-image --- Image management for speedbar
+
+;; Copyright (C) 1999-2003, 2005-2019 Free Software Foundation, Inc.
+
+;; Author: Eric M. Ludlam <zappo@gnu.org>
+;; Keywords: file, tags, tools
+;; Obsolete-since: 27.1
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs 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 GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file is obsolete.
+;;
+;; Supporting Image display for Emacs 20 and less, Emacs 21, and XEmacs,
+;; is a challenging task, which doesn't take kindly to being byte compiled.
+;; When sharing speedbar.elc between these three applications, the Image
+;; support can get lost.
+;;
+;; By splitting out that hard part into this file, and avoiding byte
+;; compilation, one copy speedbar can support all these platforms together.
+;;
+;; This file requires the `image' package if it is available.
+
+(require 'ezimage)
+
+;;; Code:
+
+(defalias 'defimage-speedbar 'defezimage)
+
+(provide 'sb-image)
+
+;;; sb-image.el ends here
diff --git a/lisp/sb-image.el b/lisp/sb-image.el
deleted file mode 100644
index f44f2ed457..0000000000
--- a/lisp/sb-image.el
+++ /dev/null
@@ -1,107 +0,0 @@
-;;; sb-image --- Image management for speedbar
-
-;; Copyright (C) 1999-2003, 2005-2019 Free Software Foundation, Inc.
-
-;; Author: Eric M. Ludlam <zappo@gnu.org>
-;; Keywords: file, tags, tools
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs 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 GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; Supporting Image display for Emacs 20 and less, Emacs 21, and XEmacs,
-;; is a challenging task, which doesn't take kindly to being byte compiled.
-;; When sharing speedbar.elc between these three applications, the Image
-;; support can get lost.
-;;
-;; By splitting out that hard part into this file, and avoiding byte
-;; compilation, one copy speedbar can support all these platforms together.
-;;
-;; This file requires the `image' package if it is available.
-
-(require 'ezimage)
-
-;;; Code:
-(defcustom speedbar-use-images ezimage-use-images
-  "Non-nil if speedbar should display icons."
-  :group 'speedbar
-  :version "21.1"
-  :type 'boolean)
-
-(defalias 'defimage-speedbar 'defezimage)
-
-(defvar speedbar-expand-image-button-alist
-  '(("<+>" . ezimage-directory-plus)
-    ("<->" . ezimage-directory-minus)
-    ("< >" . ezimage-directory)
-    ("[+]" . ezimage-page-plus)
-    ("[-]" . ezimage-page-minus)
-    ("[?]" . ezimage-page)
-    ("[ ]" . ezimage-page)
-    ("{+}" . ezimage-box-plus)
-    ("{-}" . ezimage-box-minus)
-    ("<M>" . ezimage-mail)
-    ("<d>" . ezimage-document-tag)
-    ("<i>" . ezimage-info-tag)
-    (" =>" . ezimage-tag)
-    (" +>" . ezimage-tag-gt)
-    (" ->" . ezimage-tag-v)
-    (">"   . ezimage-tag)
-    ("@"   . ezimage-tag-type)
-    ("  @" . ezimage-tag-type)
-    ("*"   . ezimage-checkout)
-    ("#"   . ezimage-object)
-    ("!"   . ezimage-object-out-of-date)
-    ("//"  . ezimage-label)
-    ("%"   . ezimage-lock)
-    )
-  "List of text and image associations.")
-
-(defun speedbar-insert-image-button-maybe (start length)
-  "Insert an image button based on text starting at START for LENGTH chars.
-If buttontext is unknown, just insert that text.
-If we have an image associated with it, use that image."
-  (when speedbar-use-images
-    (let ((ezimage-expand-image-button-alist
-	   speedbar-expand-image-button-alist))
-      (ezimage-insert-image-button-maybe start length))))
-
-(defun speedbar-image-dump ()
-  "Dump out the current state of the Speedbar image alist.
-See `speedbar-expand-image-button-alist' for details."
-  (interactive)
-  (with-output-to-temp-buffer "*Speedbar Images*"
-    (with-current-buffer "*Speedbar Images*"
-      (goto-char (point-max))
-      (insert "Speedbar image cache.\n\n")
-      (let ((start (point)) (end nil))
-	(insert "Image\tText\tImage Name")
-	(setq end (point))
-	(insert "\n")
-	(put-text-property start end 'face 'underline))
-      (let ((ia speedbar-expand-image-button-alist))
-	(while ia
-	  (let ((start (point)))
-	    (insert (car (car ia)))
-	    (insert "\t")
-	    (speedbar-insert-image-button-maybe start
-						(length (car (car ia))))
-	    (insert (car (car ia)) "\t" (format "%s" (cdr (car ia))) "\n"))
-	  (setq ia (cdr ia)))))))
-
-(provide 'sb-image)
-
-;;; sb-image.el ends here
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index df9e932be9..447e48e1e9 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -115,7 +115,7 @@ speedbar-incompatible-version
 
 (require 'easymenu)
 (require 'dframe)
-(require 'sb-image)
+(require 'ezimage)
 
 ;; customization stuff
 (defgroup speedbar nil
@@ -141,6 +141,12 @@ speedbar-vc
   :prefix "speedbar-"
   :group 'speedbar)
 
+(defcustom speedbar-use-images ezimage-use-images
+  "Non-nil if speedbar should display icons."
+  :group 'speedbar
+  :version "21.1"
+  :type 'boolean)
+
 ;;; Code:
 
 ;; Note: `inversion-test' requires parts of the CEDET package that are
@@ -4071,6 +4077,68 @@ speedbar-separator-face
 	 (setq font-lock-global-modes (delq 'speedbar-mode
 					    font-lock-global-modes)))))
 \f
+;;; Image management
+
+(defvar speedbar-expand-image-button-alist
+  '(("<+>" . ezimage-directory-plus)
+    ("<->" . ezimage-directory-minus)
+    ("< >" . ezimage-directory)
+    ("[+]" . ezimage-page-plus)
+    ("[-]" . ezimage-page-minus)
+    ("[?]" . ezimage-page)
+    ("[ ]" . ezimage-page)
+    ("{+}" . ezimage-box-plus)
+    ("{-}" . ezimage-box-minus)
+    ("<M>" . ezimage-mail)
+    ("<d>" . ezimage-document-tag)
+    ("<i>" . ezimage-info-tag)
+    (" =>" . ezimage-tag)
+    (" +>" . ezimage-tag-gt)
+    (" ->" . ezimage-tag-v)
+    (">"   . ezimage-tag)
+    ("@"   . ezimage-tag-type)
+    ("  @" . ezimage-tag-type)
+    ("*"   . ezimage-checkout)
+    ("#"   . ezimage-object)
+    ("!"   . ezimage-object-out-of-date)
+    ("//"  . ezimage-label)
+    ("%"   . ezimage-lock)
+    )
+  "List of text and image associations.")
+
+(defun speedbar-insert-image-button-maybe (start length)
+  "Insert an image button based on text starting at START for LENGTH chars.
+If buttontext is unknown, just insert that text.
+If we have an image associated with it, use that image."
+  (when speedbar-use-images
+    (let ((ezimage-expand-image-button-alist
+	   speedbar-expand-image-button-alist))
+      (ezimage-insert-image-button-maybe start length))))
+
+(defun speedbar-image-dump ()
+  "Dump out the current state of the Speedbar image alist.
+See `speedbar-expand-image-button-alist' for details."
+  (interactive)
+  (with-output-to-temp-buffer "*Speedbar Images*"
+    (with-current-buffer "*Speedbar Images*"
+      (goto-char (point-max))
+      (insert "Speedbar image cache.\n\n")
+      (let ((start (point)) (end nil))
+	(insert "Image\tText\tImage Name")
+	(setq end (point))
+	(insert "\n")
+	(put-text-property start end 'face 'underline))
+      (let ((ia speedbar-expand-image-button-alist))
+	(while ia
+	  (let ((start (point)))
+	    (insert (car (car ia)))
+	    (insert "\t")
+	    (speedbar-insert-image-button-maybe start
+						(length (car (car ia))))
+	    (insert (car (car ia)) "\t" (format "%s" (cdr (car ia))) "\n"))
+	  (setq ia (cdr ia)))))))
+
+\f
 (provide 'speedbar)
 
 ;; run load-time hooks
-- 
2.23.0


             reply	other threads:[~2019-10-20 20:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-20 20:28 Stefan Kangas [this message]
2019-10-21  6:27 ` bug#37837: [PATCH] Make sb-image.el obsolete Eli Zaretskii
2019-11-02  3:21   ` Stefan Kangas
2019-11-17  9:57     ` Lars Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CADwFkm=G_YT07NZSoN6W00_LRDLWQqRcvzSyDz30CujMo6ep0g@mail.gmail.com' \
    --to=stefan@marxist.se \
    --cc=37837@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).