[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 08192e4: Always define 'define-fringe-bitmap'
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] master 08192e4: Always define 'define-fringe-bitmap' |
Date: |
Sun, 21 Oct 2018 14:36:15 -0400 (EDT) |
branch: master
commit 08192e40093bdbc8e6be6b283935b51c12d66eca
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
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.
---
etc/NEWS | 3 +++
lisp/cus-start.el | 2 +-
lisp/fringe.el | 20 +++++++++++++++++++-
lisp/progmodes/flymake.el | 37 ++++++++++++++++++-------------------
lisp/progmodes/gdb-mi.el | 16 ++++++----------
5 files changed, 47 insertions(+), 31 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index be6668e..7a98b49 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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 e33fe6e..133e94f 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 a806b4e..583a0e2 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 60d1660..5831301 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 da979de..32bdc31 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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 08192e4: Always define 'define-fringe-bitmap',
Stefan Monnier <=