unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#37837: [PATCH] Make sb-image.el obsolete
@ 2019-10-20 20:28 Stefan Kangas
  2019-10-21  6:27 ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Kangas @ 2019-10-20 20:28 UTC (permalink / raw)
  To: 37837

[-- 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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#37837: [PATCH] Make sb-image.el obsolete
  2019-10-20 20:28 bug#37837: [PATCH] Make sb-image.el obsolete Stefan Kangas
@ 2019-10-21  6:27 ` Eli Zaretskii
  2019-11-02  3:21   ` Stefan Kangas
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2019-10-21  6:27 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37837

> From: Stefan Kangas <stefan@marxist.se>
> Date: Sun, 20 Oct 2019 22:28:40 +0200
> 
> 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?

Did we decide to drop support of those older Emacs versions?





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#37837: [PATCH] Make sb-image.el obsolete
  2019-10-21  6:27 ` Eli Zaretskii
@ 2019-11-02  3:21   ` Stefan Kangas
  2019-11-17  9:57     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Kangas @ 2019-11-02  3:21 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 37837

Eli Zaretskii <eliz@gnu.org> writes:
>
> > From: Stefan Kangas <stefan@marxist.se>
> > Date: Sun, 20 Oct 2019 22:28:40 +0200
> >
> > 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?
>
> Did we decide to drop support of those older Emacs versions?

I'm not aware of any general requirement to maintain backwards
compatibility with ancient Emacs versions on master.  For example, we
have dropped all compatibility function and variable aliases.

Users of Emacs 21 or older should surely just use whatever was shipped
with the version of Emacs that they are using.  Or am I missing
something?

To be clear, this package is not distributed on GNU ELPA as far as I can tell.

Best regards,
Stefan Kangas





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#37837: [PATCH] Make sb-image.el obsolete
  2019-11-02  3:21   ` Stefan Kangas
@ 2019-11-17  9:57     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2019-11-17  9:57 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 37837

Stefan Kangas <stefan@marxist.se> writes:

> I'm not aware of any general requirement to maintain backwards
> compatibility with ancient Emacs versions on master.  For example, we
> have dropped all compatibility function and variable aliases.

We routinely drop support for old versions of Emacs from the .el files
in Emacs -- there's no point in carrying around dead weight.

So I think the patch looks good to me.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-11-17  9:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-20 20:28 bug#37837: [PATCH] Make sb-image.el obsolete Stefan Kangas
2019-10-21  6:27 ` Eli Zaretskii
2019-11-02  3:21   ` Stefan Kangas
2019-11-17  9:57     ` Lars Ingebrigtsen

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).