]> git.eshelyaron.com Git - emacs.git/commitdiff
Always define 'define-fringe-bitmap'
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 21 Oct 2018 18:36:10 +0000 (14:36 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 21 Oct 2018 18:36:10 +0000 (14:36 -0400)
* lisp/cus-start.el: Test 'fringe-bitmaps' to see if fringe.c was compiled.

* lisp/fringe.el: Use lexical-binding.
(define-fringe-bitmap): Provide a fallback implementation.

* lisp/progmodes/flymake.el (flymake-double-exclamation-mark):
Define unconditionally.

* lisp/progmodes/gdb-mi.el (define-fringe-bitmap): Don't declare any more.
(breakpoint, hollow-right-triangle): Define unconditionally.

etc/NEWS
lisp/cus-start.el
lisp/fringe.el
lisp/progmodes/flymake.el
lisp/progmodes/gdb-mi.el

index be6668ed42e9dedd64e0d2c090327fd427211f8b..7a98b492f1369d1771f44e5754aa7bbb57b0cd0c 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -876,6 +876,9 @@ documentation of the new mode and its commands.
 \f
 * Incompatible Lisp Changes in Emacs 27.1
 
+** define-fringe-bitmap is always defined, even when Emacs is built
+without any GUI support.
+
 ---
 ** Just loading a theme's file no longer activates the theme's settings.
 Loading a theme with 'M-x load-theme' still activates the theme, as it
index e33fe6e5ecff353d691eeea689621e5ed3b83105..133e94fcdb173d61bdebdc12d8dc188000bab65a 100644 (file)
@@ -685,7 +685,7 @@ since it could result in memory overflow and make Emacs crash."
                      ((string-match "selection" (symbol-name symbol))
                       (fboundp 'x-selection-exists-p))
                      ((string-match "fringe" (symbol-name symbol))
-                      (fboundp 'define-fringe-bitmap))
+                      (boundp 'fringe-bitmaps))
                      ((string-match "\\`imagemagick" (symbol-name symbol))
                       (fboundp 'imagemagick-types))
                      ((equal "font-use-system-font" (symbol-name symbol))
index a806b4e6a196c057cbd1752755e00037d52a1c56..583a0e2c20b325bc70ef1e5aa280e3b2b887ec05 100644 (file)
@@ -1,4 +1,4 @@
-;;; fringe.el --- fringe setup and control
+;;; fringe.el --- fringe setup and control  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
@@ -291,6 +291,24 @@ SIDE must be the symbol `left' or `right'."
               0)
            (float (frame-char-width))))
 
+;;;###autoload
+(unless (fboundp 'define-fringe-bitmap)
+  (defun define-fringe-bitmap (_bitmap _bits &optional _height _width _align)
+    "Define fringe bitmap BITMAP from BITS of size HEIGHT x WIDTH.
+BITMAP is a symbol identifying the new fringe bitmap.
+BITS is either a string or a vector of integers.
+HEIGHT is height of bitmap.  If HEIGHT is nil, use length of BITS.
+WIDTH must be an integer between 1 and 16, or nil which defaults to 8.
+Optional fifth arg ALIGN may be one of ‘top’, ‘center’, or ‘bottom’,
+indicating the positioning of the bitmap relative to the rows where it
+is used; the default is to center the bitmap.  Fifth arg may also be a
+list (ALIGN PERIODIC) where PERIODIC non-nil specifies that the bitmap
+should be repeated.
+If BITMAP already exists, the existing definition is replaced."
+    ;; This is a fallback for non-GUI builds.
+    ;; The real implementation is in src/fringe.c.
+    ))
+
 (provide 'fringe)
 
 ;;; fringe.el ends here
index 60d1660e5fe3cce9bea7641eddcde70bf486e645..5831301a57c54f57d7c718cdb5496804fd1740f7 100644 (file)
@@ -219,25 +219,24 @@ Specifically, start it when the saved buffer is actually displayed."
   :version "26.1"
   :type 'boolean)
 
-(when (fboundp 'define-fringe-bitmap)
-  (define-fringe-bitmap 'flymake-double-exclamation-mark
-    (vector #b00000000
-            #b00000000
-            #b00000000
-            #b00000000
-            #b01100110
-            #b01100110
-            #b01100110
-            #b01100110
-            #b01100110
-            #b01100110
-            #b01100110
-            #b01100110
-            #b00000000
-            #b01100110
-            #b00000000
-            #b00000000
-            #b00000000)))
+(define-fringe-bitmap 'flymake-double-exclamation-mark
+  (vector #b00000000
+          #b00000000
+          #b00000000
+          #b00000000
+          #b01100110
+          #b01100110
+          #b01100110
+          #b01100110
+          #b01100110
+          #b01100110
+          #b01100110
+          #b01100110
+          #b00000000
+          #b01100110
+          #b00000000
+          #b00000000
+          #b00000000))
 
 (defvar-local flymake-timer nil
   "Timer for starting syntax check.")
index da979de5400f92e7bc3c777fc69c3c799cf58148..32bdc315a42d7751b2ca853d606f603880b23d44 100644 (file)
@@ -1741,16 +1741,12 @@ static char *magick[] = {
 (defvar breakpoint-disabled-icon nil
   "Icon for disabled breakpoint in display margin.")
 
-(declare-function define-fringe-bitmap "fringe.c"
-                 (bitmap bits &optional height width align))
-
-(and (display-images-p)
-     ;; Bitmap for breakpoint in fringe
-     (define-fringe-bitmap 'breakpoint
-       "\x3c\x7e\xff\xff\xff\xff\x7e\x3c")
-     ;; Bitmap for gud-overlay-arrow in fringe
-     (define-fringe-bitmap 'hollow-right-triangle
-       "\xe0\x90\x88\x84\x84\x88\x90\xe0"))
+;; Bitmap for breakpoint in fringe
+(define-fringe-bitmap 'breakpoint
+  "\x3c\x7e\xff\xff\xff\xff\x7e\x3c")
+;; Bitmap for gud-overlay-arrow in fringe
+(define-fringe-bitmap 'hollow-right-triangle
+  "\xe0\x90\x88\x84\x84\x88\x90\xe0")
 
 (defface breakpoint-enabled
   '((t