diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2018-10-21 14:36:10 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2018-10-21 14:36:10 -0400 |
commit | 08192e40093bdbc8e6be6b283935b51c12d66eca (patch) | |
tree | a6ae55aa7ba3e403db9dd11d6a37058d764d89b0 | |
parent | 17252062b03defe9eac6a510e88b87932ef400fe (diff) | |
download | emacs-08192e40093bdbc8e6be6b283935b51c12d66eca.tar.gz |
Always define 'define-fringe-bitmap'
* 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.
-rw-r--r-- | etc/NEWS | 3 | ||||
-rw-r--r-- | lisp/cus-start.el | 2 | ||||
-rw-r--r-- | lisp/fringe.el | 20 | ||||
-rw-r--r-- | lisp/progmodes/flymake.el | 37 | ||||
-rw-r--r-- | lisp/progmodes/gdb-mi.el | 16 |
5 files changed, 47 insertions, 31 deletions
@@ -876,6 +876,9 @@ documentation of the new mode and its commands. * 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 diff --git a/lisp/cus-start.el b/lisp/cus-start.el index e33fe6e5ecf..133e94fcdb1 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -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)) diff --git a/lisp/fringe.el b/lisp/fringe.el index a806b4e6a19..583a0e2c20b 100644 --- a/lisp/fringe.el +++ b/lisp/fringe.el @@ -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 diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 60d1660e5fe..5831301a57c 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -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.") diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index da979de5400..32bdc315a42 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -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 |