1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-13 16:38:14 +00:00

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.
This commit is contained in:
Stefan Monnier 2018-10-21 14:36:10 -04:00
parent 17252062b0
commit 08192e4009
5 changed files with 47 additions and 31 deletions

View File

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

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

View 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

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

View 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