commit f22501185e7d5885270eadb5dc32ef267153f2ac (HEAD, refs/remotes/origin/master) Author: Juanma Barranquero Date: Sun Dec 1 10:12:12 2019 +0100 ibuffer-do-isearch: don't depend on `cl-values-list' (bug#38430) * lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Don't call `cl-values-list'. Our implementation of that function just checks that its argument is a list, and then returns it. In this specific case, the argument is guaranteed to be a list. diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index 13223de6e7..de3035e9d0 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el @@ -761,11 +761,10 @@ specification, with the same structure as an element of the list (dolist (filtergroup filter-group-alist) (let ((filterset (cdr filtergroup))) (cl-multiple-value-bind (hip-crowd lamers) - (cl-values-list - (ibuffer-split-list (lambda (bufmark) - (ibuffer-included-in-filters-p (car bufmark) - filterset)) - bmarklist)) + (ibuffer-split-list (lambda (bufmark) + (ibuffer-included-in-filters-p (car bufmark) + filterset)) + bmarklist) (aset vec i hip-crowd) (cl-incf i) (setq bmarklist lamers)))) commit 293eb3259883c0b8465926a850b9ca7131e70074 Author: Mattias EngdegÄrd Date: Sat Nov 30 11:37:04 2019 +0100 Improved mouse rectangle selection robustness (bug#38013) Make the rectangular selection work better with display-line-numbers-mode and side-by-side windows. Also make the mouse track the text cursor in a consistent way. * lisp/mouse.el (mouse--rectangle-track-cursor): Added constant. (mouse-drag-region-rectangle): Take the line-number width into account, and use window-relative columns. Track either the cursor or rectangle corner with more care. diff --git a/lisp/mouse.el b/lisp/mouse.el index f076e90bd9..bc05a35009 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -1964,6 +1964,10 @@ When there is no region, this function does nothing." (move-overlay mouse-secondary-overlay (region-beginning) (region-end)))) +(defconst mouse--rectangle-track-cursor t + "Whether the mouse tracks the cursor when selecting a rectangle. +If nil, the mouse tracks the rectangle corner instead.") + (defun mouse-drag-region-rectangle (start-event) "Set the region to the rectangle that the mouse is dragged over. This must be bound to a button-down mouse event." @@ -1980,6 +1984,7 @@ This must be bound to a button-down mouse event." (bottom (if (window-minibuffer-p start-window) (nth 3 bounds) (1- (nth 3 bounds)))) + (extra-margin (round (line-number-display-width 'columns))) (dragged nil) (old-track-mouse track-mouse) (old-mouse-fine-grained-tracking mouse-fine-grained-tracking) @@ -1988,8 +1993,9 @@ This must be bound to a button-down mouse event." (adjusted-col (lambda (col) (if (eq (current-bidi-paragraph-direction) 'right-to-left) - (- (frame-text-cols) col -1) - col))) + (- (window-width) col extra-margin + (if mouse--rectangle-track-cursor 1 -1)) + (- col extra-margin)))) (map (make-sparse-keymap))) (define-key map [switch-frame] #'ignore) (define-key map [select-window] #'ignore) @@ -2018,13 +2024,15 @@ This must be bound to a button-down mouse event." (hscroll (if (window-live-p window) (window-hscroll window) 0)) - (mouse-pos (mouse-position)) - (mouse-col (+ (cadr mouse-pos) hscroll)) - (mouse-row (cddr mouse-pos)) + (mouse-row (cddr (mouse-position))) + (mouse-col (+ (car (posn-col-row posn)) hscroll + (if mouse--rectangle-track-cursor 0 1))) (set-col (lambda () (if (or (eolp) (eq (following-char) ?\t)) (rectangle--col-pos (funcall adjusted-col mouse-col) 'point) + (unless mouse--rectangle-track-cursor + (forward-char)) (rectangle--reset-point-crutches))))) (if (and (eq window start-window) mouse-row commit dfbbbf319e4e357c82a79944090c949f3c5299c3 Author: Juri Linkov Date: Sat Nov 30 23:42:37 2019 +0200 * lisp/tab-line.el (tab-line-auto-hscroll): Don't let-bind buffer-local values Use setq to set buffer-local values of truncate-lines and buffer-undo-list. This will prevent leaking of let-bound values to buffer-local values of the minibuffer. diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 0f701842df..c98b1cfce6 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -482,10 +482,10 @@ the selected tab visible." (defun tab-line-auto-hscroll (strings hscroll) (with-temp-buffer (let ((truncate-partial-width-windows nil) - (truncate-lines nil) (inhibit-modification-hooks t) - (buffer-undo-list t) show-arrows) + (setq truncate-lines nil + buffer-undo-list t) (apply 'insert strings) (goto-char (point-min)) (add-face-text-property (point-min) (point-max) 'tab-line) commit df89d6d6dc429e638e425536d1c201b5373f2abd Author: Juri Linkov Date: Sat Nov 30 23:36:52 2019 +0200 * lisp/gnus/gnus-win.el (gnus-configure-frame): Check for window-live-p. * doc/misc/gnus.texi (Tabbed Interface): New node. (bug#37998) diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index e43aa92c99..d563d52d58 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -813,6 +813,7 @@ Various * Symbolic Prefixes:: How to supply some Gnus functions with options. * Formatting Variables:: You can specify what buffers should look like. * Window Layout:: Configuring the Gnus buffer windows. +* Tabbed Interface:: Configuring the Gnus tabs. * Faces and Fonts:: How to change how faces look. * Mode Lines:: Displaying information in the mode lines. * Highlighting and Menus:: Making buffers look all nice and cozy. @@ -22189,6 +22190,7 @@ to you, using @kbd{G b u} and updating the group will usually fix this. * Symbolic Prefixes:: How to supply some Gnus functions with options. * Formatting Variables:: You can specify what buffers should look like. * Window Layout:: Configuring the Gnus buffer windows. +* Tabbed Interface:: Configuring the Gnus tabs. * Faces and Fonts:: How to change how faces look. * Mode Lines:: Displaying information in the mode lines. * Highlighting and Menus:: Making buffers look all nice and cozy. @@ -22985,6 +22987,36 @@ between summary buffer (top one-sixth) and article buffer (bottom). @end itemize +@node Tabbed Interface +@section Tabbed Interface +@cindex tabbed interface +@cindex tabs + +Gnus supports display of different buffers in dedicated tabs +that you can select using the tab bar. + +To open the group buffer in a new tab named @samp{Gnus}, use: + +@lisp +(push '("\\`\\*Group\\*\\'" . + (display-buffer-in-tab + (name . "Gnus"))) + display-buffer-alist) +@end lisp + +To read every summary in a separate explicitly named tab, use: + +@lisp +(push '("\\`\\*Summary .*\\*\\'" . + (display-buffer-in-tab + (name . (lambda (buffer _alist) + (setq buffer (buffer-name buffer)) + (when (string-match "\\`\\*Summary \\(.*\\)\\*\\'" buffer) + (format "Group %s" (match-string 1 buffer))))))) + display-buffer-alist) +@end lisp + + @node Faces and Fonts @section Faces and Fonts @cindex faces diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index b39c9faab6..81b3437fc5 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el @@ -367,11 +367,14 @@ See the Gnus manual for an explanation of the syntax used.") (setq result (or (gnus-configure-frame (car comp-subs) window) result)) - (select-window new-win) - (setq window new-win) + (if (not (window-live-p new-win)) + ;; pop-to-buffer might have deleted the original window + (setq window (selected-window)) + (select-window new-win) + (setq window new-win)) (setq comp-subs (cdr comp-subs)))) ;; Return the proper window, if any. - (when result + (when (window-live-p result) (select-window result))))))) (defvar gnus-frame-split-p nil) commit 54c792ece6c20297571aa68c613075c8a8152bcc Author: Juri Linkov Date: Sat Nov 30 23:33:41 2019 +0200 * lisp/subr.el: Add discard-input to more functions. * lisp/subr.el (read-char-from-minibuffer-insert-other) (y-or-n-p-insert-other): Use discard-input in case of user mistake. (do-after-load-evaluation): Add discard-input before calling 'message', so in case of the active minibuffer, calling minibuffer-message will allow sit-for to wait the complete timeout, because discard-input will discard all initial events that prevent sit-for from waiting during startup. https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00581.html diff --git a/lisp/subr.el b/lisp/subr.el index c1614c2e03..de7d919abf 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2695,6 +2695,7 @@ Also discard all previous input in the minibuffer." (interactive) (delete-minibuffer-contents) (ding) + (discard-input) (minibuffer-message "Wrong answer") (sit-for 2)) @@ -2794,6 +2795,7 @@ Also discard all previous input in the minibuffer." (interactive) (delete-minibuffer-contents) (ding) + (discard-input) (minibuffer-message "Please answer y or n") (sit-for 2)) @@ -4607,7 +4609,7 @@ This function is called directly from the C code." (string-match "\\.elc?\\>" file)) obarray)) (msg (format "Package %s is deprecated" package)) - (fun (lambda (msg) (message "%s" msg)))) + (fun (lambda (msg) (discard-input) (message "%s" msg)))) ;; Cribbed from cl--compiling-file. (when (or (not (fboundp 'byte-compile-warning-enabled-p)) (byte-compile-warning-enabled-p 'obsolete package)) commit 757e66afdc1cd4f0a261d368cafd5009e04084a4 Author: Alan Mackenzie Date: Sat Nov 30 21:22:55 2019 +0000 CC Mode. Fix fontification bug with unterminated quotes on adjacent lines In particular, with these unterminated quotes on each of two adjacent lines, the following text was spuriously fontified with string face. * lisp/progmodes/cc-defs.el (c-search-backward-char-property-with-value-on-char): New macro. * lisp/progmodes/cc-mode.el (c-clear-string-fences): Check whether there is an unmatched quote at a lower buffer position which should match the current quote, rather than wrongly assuming the latter is unmatched and marking it with a punctuation syntax. (c-font-lock-fontify-region): Ensure all pertinent parts of the buffer have string fence properties applied before performing any syntactic operations on it; in particular, this applies to a quote at an earlier buffer position which "matches" one inside the region about to be fontified. diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el index 6a9371e6f1..c6818819e7 100644 --- a/lisp/progmodes/cc-defs.el +++ b/lisp/progmodes/cc-defs.el @@ -1340,6 +1340,29 @@ nil; point is then left undefined." (search-forward-regexp "\\(\n\\|.\\)") ; to set the match-data. (point)))) +(defmacro c-search-backward-char-property-with-value-on-char + (property value char &optional limit) + "Search backward for a text-property PROPERTY having value VALUE on a +character with value CHAR. +LIMIT bounds the search. The value comparison is done with `equal'. +PROPERTY must be a constant. + +Leave point just before the character, and set the match data on +this character, and return point. If the search fails, return +nil; point is then left undefined." + `(let ((char-skip (concat "^" (char-to-string ,char))) + (-limit- (or ,limit (point-min))) + (-value- ,value)) + (while + (and + (progn (skip-chars-backward char-skip -limit-) + (> (point) -limit-)) + (not (equal (c-get-char-property (1- (point)) ,property) -value-))) + (backward-char)) + (when (> (point) -limit-) + (search-backward-regexp "\\(\n\\|.\\)") ; to set the match-data. + (point)))) + (defmacro c-search-forward-char-property-without-value-on-char (property value char &optional limit) "Search forward for a character CHAR without text property PROPERTY having diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 73160fc7a4..7fcc8a6d1c 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el @@ -1233,6 +1233,15 @@ Note that the style variables are always made local to the buffer." ;; Check we haven't left any unbalanced "s. (save-excursion (setq pos beg) + ;; Is there already an unbalanced " before BEG? + (setq pos (c-min-property-position pos end 'c-fl-syn-tab)) + (when (< pos end) (goto-char pos)) + (when (and (save-match-data + (c-search-backward-char-property-with-value-on-char + 'c-fl-syn-tab '(15) ?\" + (max (- (point) 500) (point-min)))) + (not (equal (c-get-char-property (point) 'syntax-table) '(1)))) + (setq pos (1+ pos))) (while (< pos end) (setq pos (c-min-property-position pos end 'c-fl-syn-tab)) @@ -2234,44 +2243,69 @@ Note that this is a strict tail, so won't match, e.g. \"0x....\".") ;; line was fouled up by context fontification. (save-restriction (widen) - (let (new-beg new-end new-region case-fold-search) - (if (and c-in-after-change-fontification - (< beg c-new-END) (> end c-new-BEG)) - ;; Region and the latest after-change fontification region overlap. - ;; Determine the upper and lower bounds of our adjusted region - ;; separately. - (progn - (if (<= beg c-new-BEG) - (setq c-in-after-change-fontification nil)) - (setq new-beg - (if (and (>= beg (c-point 'bol c-new-BEG)) - (<= beg c-new-BEG)) - ;; Either jit-lock has accepted `c-new-BEG', or has - ;; (probably) extended the change region spuriously to - ;; BOL, which position likely has a syntactically - ;; different position. To ensure correct fontification, - ;; we start at `c-new-BEG', assuming any characters to the - ;; left of `c-new-BEG' on the line do not require - ;; fontification. - c-new-BEG - (setq new-region (c-before-context-fl-expand-region beg end) - new-end (cdr new-region)) - (car new-region))) - (setq new-end - (if (and (>= end (c-point 'bol c-new-END)) - (<= end c-new-END)) - c-new-END - (or new-end - (cdr (c-before-context-fl-expand-region beg end)))))) - ;; Context (etc.) fontification. - (setq new-region (c-before-context-fl-expand-region beg end) - new-beg (car new-region) new-end (cdr new-region))) - (c-save-buffer-state nil - (unwind-protect - (progn (c-restore-string-fences new-beg new-end) - (funcall (default-value 'font-lock-fontify-region-function) - new-beg new-end verbose)) - (c-clear-string-fences)))))) + (let (new-beg new-end new-region case-fold-search string-fence-beg lim) + ;; Check how far back we need to extend the region where we reapply the + ;; string fence syntax-table properties. These must be in place for the + ;; coming fontification operations. + (save-excursion + (goto-char (if c-in-after-change-fontification + (min beg c-new-BEG) + beg)) + (setq lim (max (- (point) 500) (point-min))) + (while + (progn + (skip-chars-backward "^\"" lim) + (or (bobp) (backward-char)) + (save-excursion + (eq (logand (skip-chars-backward "\\\\") 1) 1)))) + (setq string-fence-beg + (cond ((c-get-char-property (point) 'c-fl-syn-tab) + (point)) + (c-in-after-change-fontification + c-new-BEG) + (t beg))) + (c-save-buffer-state nil + ;; Temporarily reapply the string fence syntax-table properties. + (c-with-extended-string-fences + string-fence-beg (if c-in-after-change-fontification + (max end c-new-END) + end) + + (if (and c-in-after-change-fontification + (< beg c-new-END) (> end c-new-BEG)) + ;; Region and the latest after-change fontification region overlap. + ;; Determine the upper and lower bounds of our adjusted region + ;; separately. + (progn + (if (<= beg c-new-BEG) + (setq c-in-after-change-fontification nil)) + (setq new-beg + (if (and (>= beg (c-point 'bol c-new-BEG)) + (<= beg c-new-BEG)) + ;; Either jit-lock has accepted `c-new-BEG', or has + ;; (probably) extended the change region spuriously + ;; to BOL, which position likely has a + ;; syntactically different position. To ensure + ;; correct fontification, we start at `c-new-BEG', + ;; assuming any characters to the left of + ;; `c-new-BEG' on the line do not require + ;; fontification. + c-new-BEG + (setq new-region (c-before-context-fl-expand-region beg end) + new-end (cdr new-region)) + (car new-region))) + (setq new-end + (if (and (>= end (c-point 'bol c-new-END)) + (<= end c-new-END)) + c-new-END + (or new-end + (cdr (c-before-context-fl-expand-region beg end)))))) + ;; Context (etc.) fontification. + (setq new-region (c-before-context-fl-expand-region beg end) + new-beg (car new-region) new-end (cdr new-region))) + ;; Finally invoke font lock's functionality. + (funcall (default-value 'font-lock-fontify-region-function) + new-beg new-end verbose))))))) (defun c-after-font-lock-init () ;; Put on `font-lock-mode-hook'. This function ensures our after-change commit 3c278b4999632621ef9690b319798d4ed752b163 Author: Juri Linkov Date: Sat Nov 30 23:21:00 2019 +0200 * lisp/image.el: Support image scaling with mouse in other buffer. * lisp/image.el (image-increase-size, image-decrease-size): Add optional arg position. (image-mouse-increase-size, image-mouse-decrease-size): Use '(point-marker)' for arg position. (image--get-image): Use get-char-property from position if non-nil, and its buffer. (image--get-imagemagick-and-warn, image--change-size): Add optional arg position. diff --git a/lisp/image.el b/lisp/image.el index f4ed4e79fc..254e7e58b6 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -1012,7 +1012,7 @@ has no effect." (imagemagick-register-types) -(defun image-increase-size (&optional n) +(defun image-increase-size (&optional n position) "Increase the image size by a factor of N. If N is 3, then the image size will be increased by 30%. The default is 20%." @@ -1027,9 +1027,10 @@ default is 20%." #'image--change-size (if n (1+ (/ (prefix-numeric-value n) 10.0)) - 1.2))) + 1.2) + position)) -(defun image-decrease-size (&optional n) +(defun image-decrease-size (&optional n position) "Decrease the image size by a factor of N. If N is 3, then the image size will be decreased by 30%. The default is 20%." @@ -1044,7 +1045,8 @@ default is 20%." #'image--change-size (if n (- 1 (/ (prefix-numeric-value n) 10.0)) - 0.8))) + 0.8) + position)) (defun image-mouse-increase-size (&optional event) "Increase the image size using the mouse." @@ -1052,7 +1054,7 @@ default is 20%." (when (listp event) (save-window-excursion (posn-set-point (event-start event)) - (image-increase-size)))) + (image-increase-size nil (point-marker))))) (defun image-mouse-decrease-size (&optional event) "Decrease the image size using the mouse." @@ -1060,27 +1062,29 @@ default is 20%." (when (listp event) (save-window-excursion (posn-set-point (event-start event)) - (image-decrease-size)))) + (image-decrease-size nil (point-marker))))) -(defun image--get-image () +(defun image--get-image (&optional position) "Return the image at point." - (let ((image (get-char-property (point) 'display))) + (let ((image (get-char-property (or position (point)) 'display + (when (markerp position) + (marker-buffer position))))) (unless (eq (car-safe image) 'image) (error "No image under point")) image)) -(defun image--get-imagemagick-and-warn () +(defun image--get-imagemagick-and-warn (&optional position) (unless (or (fboundp 'imagemagick-types) (image-transforms-p)) (error "Cannot rescale images on this terminal")) - (let ((image (image--get-image))) + (let ((image (image--get-image position))) (image-flush image) (when (and (fboundp 'imagemagick-types) (not (image-transforms-p))) (plist-put (cdr image) :type 'imagemagick)) image)) -(defun image--change-size (factor) - (let* ((image (image--get-imagemagick-and-warn)) +(defun image--change-size (factor &optional position) + (let* ((image (image--get-imagemagick-and-warn position)) (new-image (image--image-without-parameters image)) (scale (image--current-scaling image new-image))) (setcdr image (cdr new-image)) commit d64ea182fb6e2bf3af8ac8a289e8029ded36407e Author: Juri Linkov Date: Sat Nov 30 23:16:03 2019 +0200 Use run-with-idle-timer instead of debounce for responsive image scaling. * lisp/emacs-lisp/timer.el (debounce, debounce-reduce): Revert macro addition. https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01133.html * lisp/image.el (image-increase-size, image-decrease-size): Use run-with-idle-timer. (image--change-size): Rename back from image--change-size-function. * lisp/image-mode.el (image-mode--setup-mode): Remove hooks window-size-change-functions and window-selection-change-functions (bug#32672) (image-fit-to-window): Rename from image--window-change-function. (image--window-state-change): Rename from image--window-change. Use run-with-idle-timer. diff --git a/etc/NEWS b/etc/NEWS index 2cbc373eb0..8a72c31bf9 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2849,11 +2849,6 @@ doing computations on a decoded time structure), 'make-decoded-time' filled out), and 'encoded-time-set-defaults' (which fills in nil elements as if it's midnight January 1st, 1970) have been added. -** New macros 'debounce' and 'debounce-reduce' postpone function call -until after specified time have elapsed since the last time it was invoked. -This improves performance of processing events occurring rapidly -in quick succession. - ** 'define-minor-mode' automatically documents the meaning of ARG. +++ diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 5fdf9a426a..561cc70078 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -488,50 +488,6 @@ The argument should be a value previously returned by `with-timeout-suspend'." If the user does not answer after SECONDS seconds, return DEFAULT-VALUE." (with-timeout (seconds default-value) (y-or-n-p prompt))) - -(defmacro debounce (secs function) - "Call FUNCTION after SECS seconds have elapsed. -Postpone FUNCTION call until after SECS seconds have elapsed since the -last time it was invoked. On consecutive calls within the interval of -SECS seconds, cancel all previous calls that occur rapidly in quick succession, -and execute only the last call. This improves performance of event processing." - (declare (indent 1) (debug t)) - (let ((timer-sym (make-symbol "timer"))) - `(let (,timer-sym) - (lambda (&rest args) - (when (timerp ,timer-sym) - (cancel-timer ,timer-sym)) - (setq ,timer-sym - (run-with-timer - ,secs nil (lambda () - (apply ,function args)))))))) - -(defmacro debounce-reduce (secs initial-state state-function function) - "Call FUNCTION after SECS seconds have elapsed. -Postpone FUNCTION call until after SECS seconds have elapsed since the -last time it was invoked. On consecutive calls within the interval of -SECS seconds, cancel all previous calls that occur rapidly in quick succession, -and execute only the last call. This improves performance of event processing. - -STATE-FUNCTION can be used to accumulate the state on consecutive calls -starting with the value of INITIAL-STATE, and then execute the last call -with the collected state value." - (declare (indent 1) (debug t)) - (let ((timer-sym (make-symbol "timer")) - (state-sym (make-symbol "state"))) - `(let (,timer-sym (,state-sym ,initial-state)) - (lambda (&rest args) - (setq ,state-sym (apply ,state-function ,state-sym args)) - (when (timerp ,timer-sym) - (cancel-timer ,timer-sym)) - (setq ,timer-sym - (run-with-timer - ,secs nil (lambda () - (apply ,function (if (listp ,state-sym) - ,state-sym - (list ,state-sym))) - (setq ,state-sym ,initial-state)))))))) - (defconst timer-duration-words (list (cons "microsec" 0.000001) diff --git a/lisp/image-mode.el b/lisp/image-mode.el index 09d7828047..b9ba376caf 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -599,9 +599,7 @@ Key bindings: (add-hook 'change-major-mode-hook #'image-toggle-display-text nil t) (add-hook 'after-revert-hook #'image-after-revert-hook nil t) - (add-hook 'window-size-change-functions #'image--window-change nil t) - (add-hook 'window-state-change-functions #'image--window-change nil t) - (add-hook 'window-selection-change-functions #'image--window-change nil t) + (add-hook 'window-state-change-functions #'image--window-state-change nil t) (run-mode-hooks 'image-mode-hook) (let ((image (image-get-display-property)) @@ -860,26 +858,31 @@ Otherwise, display the image by calling `image-mode'." (get-buffer-window-list (current-buffer) 'nomini 'visible)) (image-toggle-display-image))) -(defvar image--window-change-function - (debounce 1.0 - (lambda (window) - (when (window-live-p window) - (with-current-buffer (window-buffer) - (when (derived-mode-p 'image-mode) - (let ((spec (image-get-display-property))) - (when (eq (car-safe spec) 'image) - (let* ((image-width (plist-get (cdr spec) :max-width)) - (image-height (plist-get (cdr spec) :max-height)) - (edges (window-inside-pixel-edges window)) - (window-width (- (nth 2 edges) (nth 0 edges))) - (window-height (- (nth 3 edges) (nth 1 edges)))) - (when (and image-width image-height - (or (not (= image-width window-width)) - (not (= image-height window-height)))) - (image-toggle-display-image))))))))))) - -(defun image--window-change (window) - (funcall image--window-change-function window)) +(defun image--window-state-change (window) + ;; Wait for a bit of idle-time before actually performing the change, + ;; so as to batch together sequences of closely consecutive size changes. + ;; `image-fit-to-window' just changes one value in a plist. The actual + ;; image resizing happens later during redisplay. So if those + ;; consecutive calls happen without any redisplay between them, + ;; the costly operation of image resizing should happen only once. + (run-with-idle-timer 1 nil #'image-fit-to-window window)) + +(defun image-fit-to-window (window) + "Adjust size of image to display it exactly in WINDOW boundaries." + (when (window-live-p window) + (with-current-buffer (window-buffer) + (when (derived-mode-p 'image-mode) + (let ((spec (image-get-display-property))) + (when (eq (car-safe spec) 'image) + (let* ((image-width (plist-get (cdr spec) :max-width)) + (image-height (plist-get (cdr spec) :max-height)) + (edges (window-inside-pixel-edges window)) + (window-width (- (nth 2 edges) (nth 0 edges))) + (window-height (- (nth 3 edges) (nth 1 edges)))) + (when (and image-width image-height + (or (not (= image-width window-width)) + (not (= image-height window-height)))) + (image-toggle-display-image))))))))) ;;; Animated images diff --git a/lisp/image.el b/lisp/image.el index c430478232..f4ed4e79fc 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -1017,20 +1017,34 @@ has no effect." If N is 3, then the image size will be increased by 30%. The default is 20%." (interactive "P") - (funcall image--change-size-function - (if n - (1+ (/ (prefix-numeric-value n) 10.0)) - 1.2))) + ;; Wait for a bit of idle-time before actually performing the change, + ;; so as to batch together sequences of closely consecutive size changes. + ;; `image--change-size' just changes one value in a plist. The actual + ;; image resizing happens later during redisplay. So if those + ;; consecutive calls happen without any redisplay between them, + ;; the costly operation of image resizing should happen only once. + (run-with-idle-timer 0.3 nil + #'image--change-size + (if n + (1+ (/ (prefix-numeric-value n) 10.0)) + 1.2))) (defun image-decrease-size (&optional n) "Decrease the image size by a factor of N. If N is 3, then the image size will be decreased by 30%. The default is 20%." (interactive "P") - (funcall image--change-size-function - (if n - (- 1 (/ (prefix-numeric-value n) 10.0)) - 0.8))) + ;; Wait for a bit of idle-time before actually performing the change, + ;; so as to batch together sequences of closely consecutive size changes. + ;; `image--change-size' just changes one value in a plist. The actual + ;; image resizing happens later during redisplay. So if those + ;; consecutive calls happen without any redisplay between them, + ;; the costly operation of image resizing should happen only once. + (run-with-idle-timer 0.3 nil + #'image--change-size + (if n + (- 1 (/ (prefix-numeric-value n) 10.0)) + 0.8))) (defun image-mouse-increase-size (&optional event) "Increase the image size using the mouse." @@ -1065,16 +1079,12 @@ default is 20%." (plist-put (cdr image) :type 'imagemagick)) image)) -(defvar image--change-size-function - (debounce-reduce 0.3 1 - (lambda (state factor) - (* state factor)) - (lambda (factor) - (let* ((image (image--get-imagemagick-and-warn)) - (new-image (image--image-without-parameters image)) - (scale (image--current-scaling image new-image))) - (setcdr image (cdr new-image)) - (plist-put (cdr image) :scale (* scale factor)))))) +(defun image--change-size (factor) + (let* ((image (image--get-imagemagick-and-warn)) + (new-image (image--image-without-parameters image)) + (scale (image--current-scaling image new-image))) + (setcdr image (cdr new-image)) + (plist-put (cdr image) :scale (* scale factor)))) (defun image--image-without-parameters (image) (cons (pop image) commit 9ac78ef56c184b757f9866edc3092eb62e259c90 Author: Juanma Barranquero Date: Sat Nov 30 13:41:30 2019 +0100 Fix compilation warning in vc-hg.el * lisp/vc/vc-hg.el (vc-read-revision): Declare. diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index e0c46b2dd3..f264ba2c9a 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -109,6 +109,8 @@ (require 'vc-dir)) (declare-function vc-compilation-mode "vc-dispatcher" (backend)) +(declare-function vc-read-revision "vc" + (prompt &optional files backend default initial-input)) ;;; Customization options commit e6e0654daabd13600988d7298de32048bf117801 Author: Eli Zaretskii Date: Sat Nov 30 14:06:19 2019 +0200 Minor fixes in last change * doc/emacs/maintaining.texi (Switching Branches) (Pulling / Pushing, Merging): Fix markup of shell commands. diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 7570fef33e..fa92f568da 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -1439,12 +1439,12 @@ Mercurial in its normal mode of operation, each branch has its own working directory tree, so switching between branches just involves switching directories. On Git, branches are normally @dfn{co-located} in the same directory, and switching between branches is done using -the @command{git checkout} command, which changes the contents of the +the @kbd{git checkout} command, which changes the contents of the working tree to match the branch you switch to. Bazaar also supports -co-located branches, in which case the @command{bzr switch} command +co-located branches, in which case the @kbd{bzr switch} command will switch branches in the current directory. With Subversion, you -switch to another branch using the @command{svn switch} command. With -Mercurial, command @command{hg update} is used to swith to another +switch to another branch using the @kbd{svn switch} command. With +Mercurial, command @kbd{hg update} is used to swith to another branch. The VC command to switch to another branch in the current directory @@ -1492,8 +1492,8 @@ On a decentralized version control system, the command @kbd{C-x v P} (@code{vc-push}) updates another location with changes from the current branch. With a prefix argument, it prompts for the exact version control command to run, which lets you specify where to push -changes; the default is @command{bzr push} with Bazaar, @command{git -push} with Git, and @command{hg push} with Mercurial. The default +changes; the default is @kbd{bzr push} with Bazaar, @kbd{git +push} with Git, and @kbd{hg push} with Mercurial. The default commands always push to a default location determined by the version control system from your branch configuration. @@ -1522,11 +1522,11 @@ control system. Amongst decentralized version control systems, @kbd{C-x v +} is currently supported only by Bazaar, Git, and Mercurial. With Bazaar, -it calls @command{bzr pull} for ordinary branches (to pull from a -master branch into a mirroring branch), and @command{bzr update} for a +it calls @kbd{bzr pull} for ordinary branches (to pull from a +master branch into a mirroring branch), and @kbd{bzr update} for a bound branch (to pull from a central repository). With Git, it calls -@command{git pull} to fetch changes from a remote repository and merge -it into the current branch. With Mercurial, it calls @command{hg pull +@kbd{git pull} to fetch changes from a remote repository and merge +it into the current branch. With Mercurial, it calls @kbd{hg pull -u} to fetch changesets from the default remote repository and update the working directory. @@ -1557,11 +1557,11 @@ two branches. On a decentralized version control system, merging is done with the command @kbd{C-x v m} (@code{vc-merge}). On Bazaar, this prompts for -the exact arguments to pass to @command{bzr merge}, offering a +the exact arguments to pass to @kbd{bzr merge}, offering a sensible default if possible. On Git, this prompts for the name of a branch to merge from, with completion (based on the branch names known to the current repository). With Mercurial, this prompts for argument -to pass to @command{hg merge}. The output from running the merge +to pass to @kbd{hg merge}. The output from running the merge command is shown in a separate buffer. On a centralized version control system like CVS, @kbd{C-x v m} commit 561840b553274207f814b33a211ce7e12c92c9a6 Author: Andrii Kolomoiets Date: Sat Nov 23 18:43:47 2019 +0200 vc-hg: prompt for branch to merge * lisp/vc/vc-hg.el (vc-hg-merge-branch): Prompt for revision to merge. (vc-hg-revision-table): Use branches, tags and bookmarks as competion candidates. * etc/NEWS: Mention changes of vc-hg.el * doc/emacs/maintaining.texi (Switching Branches): Mention 'hg update' command. (Merging): Mention 'hg merge' command. This fixes bug#22860 diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 4bda4c98c6..7570fef33e 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -1443,7 +1443,9 @@ the @command{git checkout} command, which changes the contents of the working tree to match the branch you switch to. Bazaar also supports co-located branches, in which case the @command{bzr switch} command will switch branches in the current directory. With Subversion, you -switch to another branch using the @command{svn switch} command. +switch to another branch using the @command{svn switch} command. With +Mercurial, command @command{hg update} is used to swith to another +branch. The VC command to switch to another branch in the current directory is @kbd{C-x v r @var{branch-name} @key{RET}} (@code{vc-retrieve-tag}). @@ -1558,8 +1560,9 @@ command @kbd{C-x v m} (@code{vc-merge}). On Bazaar, this prompts for the exact arguments to pass to @command{bzr merge}, offering a sensible default if possible. On Git, this prompts for the name of a branch to merge from, with completion (based on the branch names known -to the current repository). The output from running the merge command -is shown in a separate buffer. +to the current repository). With Mercurial, this prompts for argument +to pass to @command{hg merge}. The output from running the merge +command is shown in a separate buffer. On a centralized version control system like CVS, @kbd{C-x v m} prompts for a branch ID, or a pair of revision IDs (@pxref{Switching diff --git a/etc/NEWS b/etc/NEWS index 57dbc9324a..2cbc373eb0 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -972,6 +972,15 @@ values. The 'C-x v h' command now works in buffers that visit files controlled by Hg. ++++ +*** The Hg (Mercurial) back-end now prompts for revision to merge when +you invoke 'C-x v m' ('vc-merge'). + +--- +*** The Hg (Mercurial) back-end now use tags, branches and bookmarks +instead of revision numbers as completion candidates when it prompts +for a revision. + +++ *** 'C-u C-x v D' ('vc-root-version-diff') prompts for two revisions and compares their entire trees. diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index c9407b1b59..e0c46b2dd3 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -566,7 +566,9 @@ This requires hg 4.4 or later, for the \"-L\" option of \"hg log\"." (defun vc-hg-revision-table (files) (let ((default-directory (file-name-directory (car files)))) (with-temp-buffer - (vc-hg-command t nil files "log" "--template" "{rev} ") + (vc-hg-command t nil nil "branches" "-q") + (vc-hg-command t nil nil "bookmarks" "-q") + (vc-hg-command t nil nil "tags" "-q") (split-string (buffer-substring-no-properties (point-min) (point-max)))))) @@ -1487,13 +1489,16 @@ call \"hg push -r REVS\" to push the specified revisions REVS." (vc-hg--pushpull "push" prompt nil (called-interactively-p 'interactive))) (defun vc-hg-merge-branch () - "Merge incoming changes into the current working directory. + "Prompt for revision and merge it into working directory. This runs the command \"hg merge\"." (let* ((root (vc-hg-root default-directory)) (buffer (format "*vc-hg : %s*" (expand-file-name root))) ;; Disable pager. - (process-environment (cons "HGPLAIN=1" process-environment))) - (apply 'vc-do-async-command buffer root vc-hg-program '("--config" "ui.report_untrusted=0" "merge")) + (process-environment (cons "HGPLAIN=1" process-environment)) + (branch (vc-read-revision "Revision to merge: "))) + (apply 'vc-do-async-command buffer root vc-hg-program + (append '("--config" "ui.report_untrusted=0" "merge") + (unless (string= branch "") (list branch)))) (with-current-buffer buffer (vc-run-delayed (vc-compilation-mode 'hg))) (vc-set-async-update buffer))) commit 63e7dd4360bd687ea518138b63ef745e30099f4c Author: Michal Sojka Date: Sat Nov 23 23:32:39 2019 +0100 Fix preserving cell boundaries in table.el after * lisp/textmodes/table.el (table-command-remap-alist): Add entry for 'delete-forward-char'. (Bug#38353) diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index 92aaa46ad6..56a81142ab 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el @@ -957,6 +957,7 @@ This is always set to nil at the entry to `table-with-cache-buffer' before execu (completion-separator-self-insert-autofilling . *table--cell-self-insert-command) (completion-separator-self-insert-command . *table--cell-self-insert-command) (delete-char . *table--cell-delete-char) + (delete-forward-char . *table--cell-delete-char) (delete-backward-char . *table--cell-delete-backward-char) (backward-delete-char . *table--cell-delete-backward-char) (backward-delete-char-untabify . *table--cell-delete-backward-char) commit 64687872f62e7837340b77697d4ccd4f60caaae0 Author: Eli Zaretskii Date: Sat Nov 30 13:27:11 2019 +0200 Add ':extend' attribute to faces and themes * etc/themes/wombat-theme.el: * etc/themes/wheatgrass-theme.el: * etc/themes/tsdh-light-theme.el: * etc/themes/tsdh-dark-theme.el: * etc/themes/tango-theme.el: * etc/themes/tango-dark-theme.el: * etc/themes/misterioso-theme.el: * etc/themes/manoj-dark-theme.el: * etc/themes/light-blue-theme.el: * etc/themes/leuven-theme.el: * etc/themes/dichromacy-theme.el: * etc/themes/deeper-blue-theme.el: * etc/themes/adwaita-theme.el: Add ':extend' attribute to all faces that are by default defined with it. * lisp/vc/smerge-mode.el (smerge-upper, smerge-lower) (smerge-base): * lisp/vc/log-view.el (log-view-file, log-view-message): * lisp/vc/ediff-init.el (ediff-current-diff-A) (ediff-current-diff-B, ediff-current-diff-C) (ediff-current-diff-Ancestor, ediff-even-diff-A) (ediff-even-diff-B, ediff-even-diff-C) (ediff-even-diff-Ancestor, ediff-odd-diff-A) (ediff-odd-diff-B, ediff-odd-diff-C) (ediff-odd-diff-Ancestor): * lisp/vc/diff-mode.el (diff-header, diff-file-header) (diff-removed, diff-added): Make sure all definitions of faces have the same value of the ':extend' property, otherwise customizing background color or underline etc. attributes of these faces on some displays will produce effects different from other displays. diff --git a/etc/themes/adwaita-theme.el b/etc/themes/adwaita-theme.el index 73ef7b6e9e..3f29b9f061 100644 --- a/etc/themes/adwaita-theme.el +++ b/etc/themes/adwaita-theme.el @@ -39,7 +39,7 @@ default look of the Gnome 3 desktop.") `(header-line ((,class (:foreground "#CCCCCC" :background "black")))) `(minibuffer-prompt ((,class (:foreground "#0084C8" :bold t)))) - `(region ((,class (:foreground unspecified :background "#C2D5E9")))) + `(region ((,class (:foreground unspecified :background "#C2D5E9" :extend t)))) `(dired-header ((,class (:bold t :foreground "#0084C8")))) `(widget-button ((,class (:bold t :foreground "#0084C8")))) @@ -96,7 +96,7 @@ default look of the Gnome 3 desktop.") `(gnus-cite-1 ((,class (:foreground "#00578E")))) `(gnus-cite-2 ((,class (:foreground "#0084C8")))) - `(diff-added ((,class (:bold t :foreground "#4E9A06")))) - `(diff-removed ((,class (:bold t :foreground "#F5666D")))))) + `(diff-added ((,class (:bold t :foreground "#4E9A06" :extend t)))) + `(diff-removed ((,class (:bold t :foreground "#F5666D" :extend t)))))) ;;; adwaita-theme.el ends here diff --git a/etc/themes/deeper-blue-theme.el b/etc/themes/deeper-blue-theme.el index d04a270ba5..d50a641930 100644 --- a/etc/themes/deeper-blue-theme.el +++ b/etc/themes/deeper-blue-theme.el @@ -43,9 +43,9 @@ ;; `(diff-added ((,class (nil)))) ;; `(diff-changed ((,class (nil)))) `(diff-context ((,class (:foreground "seashell4")))) - `(diff-file-header ((,class (:background "grey60")))) + `(diff-file-header ((,class (:background "grey60" :extend t)))) `(diff-function ((,class (:inherit diff-header)))) - `(diff-header ((,class (:background "grey45")))) + `(diff-header ((,class (:background "grey45" :extend t)))) `(diff-hunk-header ((,class (:inherit diff-header)))) `(diff-index ((,class (:inherit diff-file-header)))) `(diff-indicator-added ((,class (:foreground "white" :background "darkolivegreen")))) @@ -54,12 +54,12 @@ `(diff-refine-change ((,class (:background "skyblue4")))) ;; `(diff-removed ((,class (nil)))) `(dired-marked ((,class (:background "dodgerblue3" :foreground "white")))) - `(ediff-current-diff-A ((,class (:background "green4" :foreground "white")))) - `(ediff-current-diff-B ((,class (:background "darkorange3" :foreground "white")))) - `(ediff-even-diff-B ((,class (:background "Grey50" :foreground "White")))) + `(ediff-current-diff-A ((,class (:background "green4" :foreground "white" :extend t)))) + `(ediff-current-diff-B ((,class (:background "darkorange3" :foreground "white" :extend t)))) + `(ediff-even-diff-B ((,class (:background "Grey50" :foreground "White" :extend t)))) `(ediff-fine-diff-A ((,class (:background "skyblue4" :foreground "white")))) `(ediff-fine-diff-B ((,class (:background "cyan4" :foreground "white")))) - `(ediff-odd-diff-A ((,class (:background "Grey50" :foreground "White")))) + `(ediff-odd-diff-A ((,class (:background "Grey50" :foreground "White" :extend t)))) `(error ((,class (:foreground "red")))) `(flymake-errline ((,class (:background nil :underline "red")))) `(flymake-warnline ((,class (:background nil :underline "magenta3")))) @@ -102,7 +102,7 @@ `(outline-4 ((,class (:foreground "turquoise2")))) `(outline-5 ((,class (:foreground "aquamarine1")))) `(primary-selection ((,class (:background "blue3")))) - `(region ((,class (:background "#103050")))) + `(region ((,class (:background "#103050" :extend t)))) `(show-paren-match-face ((,class (:background "dodgerblue1" :foreground "white")))) `(show-paren-mismatch-face ((,class (:background "red1" :foreground "white")))) `(success ((,class (:foreground "SeaGreen2")))) diff --git a/etc/themes/dichromacy-theme.el b/etc/themes/dichromacy-theme.el index b361fe5c50..d585752ea4 100644 --- a/etc/themes/dichromacy-theme.el +++ b/etc/themes/dichromacy-theme.el @@ -46,8 +46,8 @@ Ansi-Color faces are included.") ;; Highlighting faces `(fringe ((,class (:background "#f7f7f7")))) `(highlight ((,class (:foreground ,blue :background "#e5e5e5")))) - `(region ((,class (:foreground unspecified :background ,yellow)))) - `(secondary-selection ((,class (:background "#e5e5e5")))) + `(region ((,class (:foreground unspecified :background ,yellow :extend t)))) + `(secondary-selection ((,class (:background "#e5e5e5" :extend t)))) `(isearch ((,class (:foreground "white" :background ,vermillion)))) `(lazy-highlight ((,class (:foreground "white" :background ,redpurple)))) `(trailing-whitespace ((,class (:background ,vermillion)))) diff --git a/etc/themes/leuven-theme.el b/etc/themes/leuven-theme.el index d544f28da7..677d91c5b7 100644 --- a/etc/themes/leuven-theme.el +++ b/etc/themes/leuven-theme.el @@ -48,12 +48,12 @@ Semantic, and Ansi-Color faces are included -- and much more...") (code-block '(:foreground "#000088" :background "#FFFFE0")) (code-inline '(:foreground "#006400" :background "#FDFFF7")) (column '(:height 1.0 :weight normal :slant normal :underline nil :strike-through nil :foreground "#E6AD4F" :background "#FFF2DE")) - (diff-added '(:foreground "#008000" :background "#DDFFDD")) + (diff-added '(:foreground "#008000" :background "#DDFFDD" :extend t)) (diff-changed '(:foreground "#0000FF" :background "#DDDDFF")) - (diff-header '(:foreground "#800000" :background "#FFFFAF")) + (diff-header '(:foreground "#800000" :background "#FFFFAF" :extend t)) (diff-hunk-header '(:foreground "#990099" :background "#FFEEFF")) (diff-none '(:foreground "gray33")) - (diff-removed '(:foreground "#A60000" :background "#FFDDDD")) + (diff-removed '(:foreground "#A60000" :background "#FFDDDD" :extend t)) (directory '(:weight bold :foreground "blue" :background "#FFFFD2")) (highlight-line '(:background "#FFFFD7")) ; #F5F5F5 (highlight-line-gnus '(:background "#DAEAFC")) ; defined in `gnus-leuven.el' @@ -76,7 +76,7 @@ Semantic, and Ansi-Color faces are included -- and much more...") (ol8 '(:height 1.0 :weight bold :slant italic :foreground "#FD8008")) (paren-matched '(:background "#99CCFF")) (paren-unmatched '(:underline "red" :foreground nil :background "#FFDCDC")) - (region '(:background "#ABDFFA")) + (region '(:background "#ABDFFA" :extend t)) (shadow '(:foreground "#7F7F7F")) (string '(:foreground "#008000")) ; or #D0372D (subject '(:family "Sans Serif" :weight bold :foreground "black")) @@ -243,15 +243,15 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(smerge-refined-change ((,class (:background "#AAAAFF")))) ;; Ediff - `(ediff-current-diff-A ((,class (:foreground "gray33" :background "#FFDDDD")))) - `(ediff-current-diff-B ((,class (:foreground "gray33" :background "#DDFFDD")))) - `(ediff-current-diff-C ((,class (:foreground "black" :background "cyan")))) - `(ediff-even-diff-A ((,class (:foreground "black" :background "light grey")))) - `(ediff-even-diff-B ((,class (:foreground "black" :background "light grey")))) + `(ediff-current-diff-A ((,class (:foreground "gray33" :background "#FFDDDD" :extend t)))) + `(ediff-current-diff-B ((,class (:foreground "gray33" :background "#DDFFDD" :extend t)))) + `(ediff-current-diff-C ((,class (:foreground "black" :background "cyan" :extend t)))) + `(ediff-even-diff-A ((,class (:foreground "black" :background "light grey" :extend t)))) + `(ediff-even-diff-B ((,class (:foreground "black" :background "light grey" :extend t)))) `(ediff-fine-diff-A ((,class (:foreground "#A60000" :background "#FFAAAA")))) `(ediff-fine-diff-B ((,class (:foreground "#008000" :background "#55FF55")))) - `(ediff-odd-diff-A ((,class (:foreground "black" :background "light grey")))) - `(ediff-odd-diff-B ((,class (:foreground "black" :background "light grey")))) + `(ediff-odd-diff-A ((,class (:foreground "black" :background "light grey" :extend t)))) + `(ediff-odd-diff-B ((,class (:foreground "black" :background "light grey" :extend t)))) ;; Flyspell ;; (when (version< emacs-version "24.XXX") @@ -462,7 +462,7 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(info-xref-visited ((,class (:underline t :foreground "magenta4")))) ; previously visited cross-references `(light-symbol-face ((,class (:background "#FFFFA0")))) `(linum ((,class (:inherit (default shadow) :foreground "#9A9A9A" :background "#EDEDED")))) - `(log-view-file ((,class (:foreground "#0000CC" :background "#EAF2F5")))) + `(log-view-file ((,class (:foreground "#0000CC" :background "#EAF2F5" :extend t)))) `(lui-button-face ((,class ,link))) `(lui-highlight-face ((,class (:box '(:line-width 1 :color "#CC0000") :foreground "#CC0000" :background "#FFFF88")))) ; my nickname `(lui-time-stamp-face ((,class (:foreground "purple")))) diff --git a/etc/themes/light-blue-theme.el b/etc/themes/light-blue-theme.el index 3060dcf09c..e6d4a3a4b5 100644 --- a/etc/themes/light-blue-theme.el +++ b/etc/themes/light-blue-theme.el @@ -36,8 +36,8 @@ `(fringe ((,class (:background "gray85")))) ;; Highlighting faces `(highlight ((,class (:background "cyan")))) - `(region ((,class (:background "MediumAquamarine")))) - `(secondary-selection ((,class (:background "white" :foreground "black")))) + `(region ((,class (:background "MediumAquamarine" :extend t)))) + `(secondary-selection ((,class (:background "white" :foreground "black" :extend t)))) `(isearch ((,class (:background "green" :foreground "Black")))) `(lazy-highlight ((,class (:background "dark turquoise")))) `(query-replace ((,class (:inherit isearch :background "white" :foreground "black")))) diff --git a/etc/themes/manoj-dark-theme.el b/etc/themes/manoj-dark-theme.el index 20e04cb754..1313caa3c6 100644 --- a/etc/themes/manoj-dark-theme.el +++ b/etc/themes/manoj-dark-theme.el @@ -435,11 +435,11 @@ jarring angry fruit salad look to reduce eye fatigue.") '(diary-button ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button))))) '(diary-face ((t (:foreground "IndianRed")))) '(diary-time ((t (:foreground "LightGoldenrod")))) - '(diff-added ((t (:foreground "Green")))) + '(diff-added ((t (:foreground "Green" :extend t)))) '(diff-added-face ((t (:foreground "Green")))) '(diff-changed-face ((t (:foreground "Khaki")))) '(diff-context-face ((t (:foreground "grey70")))) - '(diff-file-header ((t (:bold t :background "grey20" :foreground "ivory1" :weight bold)))) + '(diff-file-header ((t (:bold t :background "grey20" :foreground "ivory1" :weight bold :extend t)))) '(diff-file-header-face ((t (:bold t :background "grey20" :foreground "ivory1" :weight bold)))) '(diff-function-face ((t (:foreground "SpringGreen1")))) '(diff-header-face ((t (:background "SlateBlue4")))) @@ -448,7 +448,7 @@ jarring angry fruit salad look to reduce eye fatigue.") '(diff-index-face ((t (:bold t :weight bold :background "SteelBlue4" :foreground "linen" )))) '(diff-nonexistent ((t (:bold t :weight bold :background "Black" :foreground "Wheat1")))) '(diff-nonexistent-face ((t (:bold t :weight bold :background "Black" :foreground "Wheat1")))) - '(diff-removed ((t (:foreground "salmon1")))) + '(diff-removed ((t (:foreground "salmon1" :extend t)))) '(diff-removed-face ((t (:foreground "salmon1")))) '(diff-refine-change-face ((t (:background "MidnightBlue")))) '(diff-refine-change ((t (:background "MidnightBlue")))) @@ -511,7 +511,7 @@ jarring angry fruit salad look to reduce eye fatigue.") '(header-line ((t (:box (:line-width -1 :color "grey20" :style released-button) :background "grey20" :foreground "grey90" :height 0.9)))) '(help-argument-name ((t (:italic t :slant italic)))) '(highlight ((t (:background "gray10" :foreground "Old Lace")))) - '(hl-line ((t (:background "grey10" :foreground "Old Lace")))) + '(hl-line ((t (:background "grey10" :foreground "Old Lace" :extend t)))) '(gnus-mouse-face ((t (:background "darkseagreen2" :foreground "blue")))) '(erc-button-mouse-face ((t (:background "darkseagreen2" :foreground "blue")))) '(align-highlight-change-face ((t (:background "darkseagreen2" :foreground "blue")))) @@ -601,7 +601,7 @@ jarring angry fruit salad look to reduce eye fatigue.") '(paren-mismatch-face ((t (:bold t :background "white" :foreground "red")))) '(paren-no-match-face ((t (:bold t :background "white" :foreground "red")))) '(query-replace ((t (:foreground "brown4" :background "palevioletred2")))) - '(region ((t (:background "blue3")))) + '(region ((t (:background "blue3" :extend t)))) '(realgud-overlay-arrow1 ((t (:foreground "medium sea green")))) '(realgud-overlay-arrow2 ((t (:foreground "white")))) '(realgud-overlay-arrow3 ((t (:foreground "indian red")))) @@ -613,7 +613,7 @@ jarring angry fruit salad look to reduce eye fatigue.") '(realgud-line-number ((t (:foreground "yellow")))) '(realgud-backtrace-number ((t (:foreground "yellow" :weight bold)))) '(scroll-bar ((t (:background "grey75" :foreground "WhiteSmoke")))) - '(secondary-selection ((t (:background "SkyBlue4")))) + '(secondary-selection ((t (:background "SkyBlue4" :extend t)))) '(semantic-dirty-token-face ((t (:background "lightyellow")))) '(semantic-highlight-edits-face ((t (:background "gray20")))) '(semantic-unmatched-syntax-face ((t (:underline "red")))) @@ -631,10 +631,10 @@ jarring angry fruit salad look to reduce eye fatigue.") '(show-paren-match ((t (:background "steelblue3")))) '(show-paren-match-face ((t (:background "steelblue3")))) '(show-paren-mismatch ((t (:background "purple" :foreground "white")))) - '(smerge-base ((t (:foreground "orange")))) - '(smerge-markers ((t (:background "grey30")))) - '(smerge-mine ((t (:foreground "cyan")))) - '(smerge-other ((t (:foreground "lightgreen")))) + '(smerge-base ((t (:foreground "orange" :extend t)))) + '(smerge-markers ((t (:background "grey30" :extend t)))) + '(smerge-mine ((t (:foreground "cyan" :extend t)))) + '(smerge-other ((t (:foreground "lightgreen" :extend t)))) '(smerge-refined-change ((t (:background "blue4")))) '(speedbar-button-face ((t (:foreground "green3")))) '(speedbar-directory-face ((t (:foreground "light blue")))) diff --git a/etc/themes/misterioso-theme.el b/etc/themes/misterioso-theme.el index 727270c27f..c7e1dc983f 100644 --- a/etc/themes/misterioso-theme.el +++ b/etc/themes/misterioso-theme.el @@ -37,7 +37,7 @@ ;; Highlighting faces `(fringe ((,class (:background "#2e3748")))) `(highlight ((,class (:background "#338f86" :foreground "#e1e1e0")))) - `(region ((,class (:background "#2d4948" :foreground "#e1e1e0")))) + `(region ((,class (:background "#2d4948" :foreground "#e1e1e0" :extend t)))) `(isearch ((,class (:background "#fcffad" :foreground "#000000")))) `(lazy-highlight ((,class (:background "#338f86")))) `(trailing-whitespace ((,class (:background "#ff4242")))) diff --git a/etc/themes/tango-dark-theme.el b/etc/themes/tango-dark-theme.el index 91256208a3..d2fdff8e09 100644 --- a/etc/themes/tango-dark-theme.el +++ b/etc/themes/tango-dark-theme.el @@ -61,8 +61,8 @@ Semantic, and Ansi-Color faces are included.") ;; Highlighting faces `(fringe ((,class (:background ,alum-7)))) `(highlight ((,class (:foreground ,alum-6 :background "#c0c000")))) - `(region ((,class (:background ,alum-5)))) - `(secondary-selection ((,class (:background ,blue-3)))) + `(region ((,class (:background ,alum-5 :extend t)))) + `(secondary-selection ((,class (:background ,blue-3 :extend t)))) `(isearch ((,class (:foreground ,alum-1 :background ,orange-3)))) `(lazy-highlight ((,class (:background ,choc-3)))) `(trailing-whitespace ((,class (:background ,red-3)))) @@ -130,14 +130,14 @@ Semantic, and Ansi-Color faces are included.") ;; SMerge faces `(smerge-refined-change ((,class (:background ,blue-3)))) ;; Ediff faces - `(ediff-current-diff-A ((,class (:background ,alum-5)))) + `(ediff-current-diff-A ((,class (:background ,alum-5 :extend t)))) `(ediff-fine-diff-A ((,class (:background ,blue-3)))) - `(ediff-even-diff-A ((,class (:background ,alum-5.5)))) - `(ediff-odd-diff-A ((,class (:background ,alum-5.5)))) - `(ediff-current-diff-B ((,class (:background ,alum-5)))) + `(ediff-even-diff-A ((,class (:background ,alum-5.5 :extend t)))) + `(ediff-odd-diff-A ((,class (:background ,alum-5.5 :extend t)))) + `(ediff-current-diff-B ((,class (:background ,alum-5 :extend t)))) `(ediff-fine-diff-B ((,class (:background ,choc-3)))) - `(ediff-even-diff-B ((,class (:background ,alum-5.5)))) - `(ediff-odd-diff-B ((,class (:background ,alum-5.5)))) + `(ediff-even-diff-B ((,class (:background ,alum-5.5 :extend t)))) + `(ediff-odd-diff-B ((,class (:background ,alum-5.5 :extend t)))) ;; Flyspell faces `(flyspell-duplicate ((,class (:underline ,orange-1)))) `(flyspell-incorrect ((,class (:underline ,red-1)))) diff --git a/etc/themes/tango-theme.el b/etc/themes/tango-theme.el index 12d4db3fe7..c832192968 100644 --- a/etc/themes/tango-theme.el +++ b/etc/themes/tango-theme.el @@ -53,8 +53,8 @@ Semantic, and Ansi-Color faces are included.") ;; Highlighting faces `(fringe ((,class (:background ,alum-2)))) `(highlight ((,class (:background ,alum-3)))) - `(region ((,class (:background ,alum-3)))) - `(secondary-selection ((,class (:background ,blue-0)))) + `(region ((,class (:background ,alum-3 :extend t)))) + `(secondary-selection ((,class (:background ,blue-0 :extend t)))) `(isearch ((,class (:foreground "#ffffff" :background ,orange-3)))) `(lazy-highlight ((,class (:background ,choc-1)))) `(trailing-whitespace ((,class (:background ,red-1)))) @@ -117,9 +117,9 @@ Semantic, and Ansi-Color faces are included.") ;; SMerge `(smerge-refined-change ((,class (:background ,plum-1)))) ;; Ediff - `(ediff-current-diff-A ((,class (:background ,blue-1)))) + `(ediff-current-diff-A ((,class (:background ,blue-1 :extend t)))) `(ediff-fine-diff-A ((,class (:background ,plum-1)))) - `(ediff-current-diff-B ((,class (:background ,butter-1)))) + `(ediff-current-diff-B ((,class (:background ,butter-1 :extend t)))) `(ediff-fine-diff-B ((,class (:background ,orange-1)))) ;; Flyspell `(flyspell-duplicate ((,class (:underline ,orange-1)))) diff --git a/etc/themes/tsdh-dark-theme.el b/etc/themes/tsdh-dark-theme.el index 5482ced6b2..bd0564a21d 100644 --- a/etc/themes/tsdh-dark-theme.el +++ b/etc/themes/tsdh-dark-theme.el @@ -26,12 +26,12 @@ 'tsdh-dark '(aw-leading-char-face ((t (:background "gray30" :foreground "red" :weight bold)))) '(default ((t (:background "gray20" :foreground "white smoke")))) - '(diff-added ((t (:inherit diff-changed :background "dark green"))) t) + '(diff-added ((t (:inherit diff-changed :background "dark green" :extend t))) t) '(diff-changed ((t (:background "midnight blue"))) t) '(diff-indicator-added ((t (:inherit diff-indicator-changed))) t) '(diff-indicator-changed ((t (:weight bold))) t) '(diff-indicator-removed ((t (:inherit diff-indicator-changed))) t) - '(diff-removed ((t (:inherit diff-changed :background "dark red"))) t) + '(diff-removed ((t (:inherit diff-changed :background "dark red" :extend t))) t) '(dired-directory ((t (:foreground "DodgerBlue" :weight bold)))) '(error ((t (:foreground "deep pink" :weight bold)))) '(eshell-prompt ((t (:inherit font-lock-function-name-face :weight bold)))) @@ -69,7 +69,7 @@ '(header-line ((t (:inverse-video t :box (:line-width -1 :color "red" :style released-button))))) '(helm-header ((t (:background "DeepSkyBlue4" :weight bold)))) '(highlight ((t (:background "sea green")))) - '(hl-line ((t (:background "grey25")))) + '(hl-line ((t (:background "grey25" :extend t)))) '(hl-paren-face ((t (:weight bold))) t) '(icomplete-first-match ((t (:foreground "deep sky blue" :weight bold)))) '(ido-first-match ((t (:foreground "turquoise" :weight bold)))) @@ -132,9 +132,9 @@ '(rcirc-other-nick ((t (:foreground "dodger blue"))) t) '(rcirc-track-keyword ((t (:foreground "DodgerBlue" :weight bold))) t) '(rcirc-track-nick ((t (:background "yellow" :foreground "DodgerBlue" :weight bold))) t) - '(region ((t (:background "SeaGreen4")))) + '(region ((t (:background "SeaGreen4" :extend t)))) '(scroll-bar ((t (:background "gray20" :foreground "dark turquoise")))) - '(secondary-selection ((t (:background "#333366" :foreground "#f6f3e8")))) + '(secondary-selection ((t (:background "#333366" :foreground "#f6f3e8" :extend t)))) '(show-paren-match ((t (:background "DeepSkyBlue4")))) '(show-paren-mismatch ((t (:background "dark magenta")))) '(swiper-match-face-1 ((t (:background "gray35")))) diff --git a/etc/themes/tsdh-light-theme.el b/etc/themes/tsdh-light-theme.el index 8e6a79f8e3..efc49c1a21 100644 --- a/etc/themes/tsdh-light-theme.el +++ b/etc/themes/tsdh-light-theme.el @@ -29,12 +29,12 @@ Used and created by Tassilo Horn.") '(Info-quoted ((t (:underline "gray40" :weight bold)))) '(aw-leading-char-face ((t (:background "red" :foreground "white" :weight bold)))) '(default ((t (:background "white" :foreground "black")))) - '(diff-added ((t (:inherit diff-changed :background "light green")))) + '(diff-added ((t (:inherit diff-changed :background "light green" :extend t)))) '(diff-changed ((t (:background "light steel blue")))) '(diff-indicator-added ((t (:inherit diff-indicator-changed)))) '(diff-indicator-changed ((t (:weight bold)))) '(diff-indicator-removed ((t (:inherit diff-indicator-changed)))) - '(diff-removed ((t (:inherit diff-changed :background "sandy brown")))) + '(diff-removed ((t (:inherit diff-changed :background "sandy brown" :extend t)))) '(dired-directory ((t (:inherit font-lock-function-name-face :weight bold)))) '(font-lock-builtin-face ((t (:foreground "#e44649")))) '(font-lock-comment-delimiter-face ((t (:inherit font-lock-comment-face :weight bold)))) @@ -62,7 +62,7 @@ Used and created by Tassilo Horn.") '(gnus-group-news-2-empty ((t (:foreground "tomato3")))) '(gnus-group-news-3 ((t (:inherit gnus-group-news-3-empty :weight bold)))) '(gnus-group-news-3-empty ((t (:foreground "tomato2")))) '(header-line ((t (:inherit mode-line :inverse-video t)))) - '(hl-line ((t (:background "#f0f0f1")))) + '(hl-line ((t (:background "#f0f0f1" :extend t)))) '(hl-paren-face ((t (:weight bold))) t) '(minibuffer-prompt ((t (:foreground "#0184bc" :box (:line-width -1 :style released-button) :weight bold)))) '(mode-line ((t (:background "#f0f0f1" :box (:line-width 1 :color "#383a42"))))) diff --git a/etc/themes/wheatgrass-theme.el b/etc/themes/wheatgrass-theme.el index 640343a33b..2628b68ff0 100644 --- a/etc/themes/wheatgrass-theme.el +++ b/etc/themes/wheatgrass-theme.el @@ -40,8 +40,8 @@ of green, brown, and blue.") `(compilation-info ((,class (:foreground "ForestGreen")))) ;; Highlighting faces `(highlight ((,class (:foreground "white" :background "dark green")))) - `(region ((,class (:foreground "white" :background "dark green")))) - `(secondary-selection ((,class (:background "dark slate gray")))) + `(region ((,class (:foreground "white" :background "dark green" :extend t)))) + `(secondary-selection ((,class (:background "dark slate gray" :extend t)))) `(isearch ((,class (:foreground "white" :background "dark goldenrod")))) `(lazy-highlight ((,class (:background "gray25")))) ;; Font lock faces diff --git a/etc/themes/wombat-theme.el b/etc/themes/wombat-theme.el index c56700ffd9..0a5e87ac58 100644 --- a/etc/themes/wombat-theme.el +++ b/etc/themes/wombat-theme.el @@ -36,8 +36,8 @@ are included.") `(fringe ((,class (:background "#303030")))) `(highlight ((,class (:background "#454545" :foreground "#ffffff" :underline t)))) - `(region ((,class (:background "#444444" :foreground "#f6f3e8")))) - `(secondary-selection ((,class (:background "#333366" :foreground "#f6f3e8")))) + `(region ((,class (:background "#444444" :foreground "#f6f3e8" :extend t)))) + `(secondary-selection ((,class (:background "#333366" :foreground "#f6f3e8" :extend t)))) `(isearch ((,class (:background "#343434" :foreground "#857b6f")))) `(lazy-highlight ((,class (:background "#384048" :foreground "#a0a8b0")))) ;; Mode line faces diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index dfac1cca80..08998fbc77 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el @@ -302,8 +302,8 @@ well." (((class color) (min-colors 88) (background dark)) :background "grey45" :extend t) (((class color)) - :foreground "blue1" :weight bold) - (t :weight bold)) + :foreground "blue1" :weight bold :extend t) + (t :weight bold :extend t)) "`diff-mode' face inherited by hunk and index header faces.") (defface diff-file-header @@ -312,8 +312,8 @@ well." (((class color) (min-colors 88) (background dark)) :background "grey60" :weight bold :extend t) (((class color)) - :foreground "cyan" :weight bold) - (t :weight bold)) ; :height 1.3 + :foreground "cyan" :weight bold :extend t) + (t :weight bold :extend t)) ; :height 1.3 "`diff-mode' face used to highlight file header lines.") (defface diff-index @@ -334,7 +334,7 @@ well." (((class color) (min-colors 88) (background dark)) :background "#553333" :extend t) (((class color)) - :foreground "red")) + :foreground "red" :extend t)) "`diff-mode' face used to highlight removed lines.") (defface diff-added @@ -347,7 +347,7 @@ well." (((class color) (min-colors 88) (background dark)) :background "#335533" :extend t) (((class color)) - :foreground "green")) + :foreground "green" :extend t)) "`diff-mode' face used to highlight added lines.") (defface diff-changed diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el index ca7f4eb8a2..a9cbf40c5e 100644 --- a/lisp/vc/ediff-init.el +++ b/lisp/vc/ediff-init.el @@ -813,7 +813,7 @@ to temp files in buffer jobs and when Ediff needs to find fine differences." (:foreground "firebrick" :background "pale green" :extend t)) (((class color)) (:foreground "blue3" :background "yellow3" :extend t)) - (t (:inverse-video t))) + (t (:inverse-video t :extend t))) "Face for highlighting the selected difference in buffer A." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -835,7 +835,7 @@ this variable represents.") (((class color)) (:foreground "magenta3" :background "yellow3" :weight bold :extend t)) - (t (:inverse-video t))) + (t (:inverse-video t :extend t))) "Face for highlighting the selected difference in buffer B." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -856,7 +856,7 @@ this variable represents.") (:foreground "Navy" :background "Pink" :extend t)) (((class color)) (:foreground "cyan3" :background "yellow3" :weight bold :extend t)) - (t (:inverse-video t))) + (t (:inverse-video t :extend t))) "Face for highlighting the selected difference in buffer C." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -879,7 +879,7 @@ this variable represents.") :background "#004151" :extend t) (((class color)) (:foreground "black" :background "magenta3" :extend t)) - (t (:inverse-video t))) + (t (:inverse-video t :extend t))) "Face for highlighting the selected difference in buffer Ancestor." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -1001,7 +1001,7 @@ this variable represents.") (((class color)) (:foreground "red3" :background "light grey" :weight bold :extend t)) - (t (:italic t :stipple ,stipple-pixmap))) + (t (:italic t :stipple ,stipple-pixmap :extend t))) "Face for highlighting even-numbered non-current differences in buffer A." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -1020,7 +1020,7 @@ this variable represents.") (:foreground "White" :background "Grey" :extend t)) (((class color)) (:foreground "blue3" :background "Grey" :weight bold :extend t)) - (t (:italic t :stipple ,stipple-pixmap))) + (t (:italic t :stipple ,stipple-pixmap :extend t))) "Face for highlighting even-numbered non-current differences in buffer B." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -1042,7 +1042,7 @@ this variable represents.") (((class color)) (:foreground "yellow3" :background "light grey" :weight bold :extend t)) - (t (:italic t :stipple ,stipple-pixmap))) + (t (:italic t :stipple ,stipple-pixmap :extend t))) "Face for highlighting even-numbered non-current differences in buffer C." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -1064,7 +1064,7 @@ this variable represents.") (((class color)) (:foreground "cyan3" :background "light grey" :weight bold :extend t)) - (t (:italic t :stipple ,stipple-pixmap))) + (t (:italic t :stipple ,stipple-pixmap :extend t))) "Face for highlighting even-numbered non-current differences in the ancestor buffer." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -1092,7 +1092,7 @@ this variable represents.") (:foreground "White" :background "Grey" :extend t)) (((class color)) (:foreground "red3" :background "black" :weight bold :extend t)) - (t (:italic t :stipple "gray1"))) + (t (:italic t :stipple "gray1" :extend t))) "Face for highlighting odd-numbered non-current differences in buffer A." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -1114,7 +1114,7 @@ this variable represents.") (:foreground "Black" :background "light grey" :extend t)) (((class color)) (:foreground "cyan3" :background "black" :weight bold :extend t)) - (t (:italic t :stipple "gray1"))) + (t (:italic t :stipple "gray1" :extend t))) "Face for highlighting odd-numbered non-current differences in buffer B." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -1135,7 +1135,7 @@ this variable represents.") (:foreground "White" :background "Grey" :extend t)) (((class color)) (:foreground "yellow3" :background "black" :weight bold :extend t)) - (t (:italic t :stipple "gray1"))) + (t (:italic t :stipple "gray1" :extend t))) "Face for highlighting odd-numbered non-current differences in buffer C." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, @@ -1154,7 +1154,7 @@ this variable represents.") (:foreground "cyan3" :background "gray40" :extend t)) (((class color)) (:foreground "green3" :background "black" :weight bold :extend t)) - (t (:italic t :stipple "gray1"))) + (t (:italic t :stipple "gray1" :extend t))) "Face for highlighting odd-numbered non-current differences in the ancestor buffer." :group 'ediff-highlighting) ;; An internal variable. Ediff takes the face from here. When unhighlighting, diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el index 054c2b9134..31d833c6f3 100644 --- a/lisp/vc/log-view.el +++ b/lisp/vc/log-view.el @@ -197,14 +197,14 @@ If it is nil, `log-view-toggle-entry-display' does nothing.") (defface log-view-file '((((class color) (background light)) (:background "grey70" :weight bold :extend t)) - (t (:weight bold))) + (t (:weight bold :extend t))) "Face for the file header line in `log-view-mode'." :group 'log-view) (defface log-view-message '((((class color) (background light)) (:background "grey85" :extend t)) - (t (:weight bold))) + (t (:weight bold :extend t))) "Face for the message header line in `log-view-mode'." :group 'log-view) diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index 6d2d3f8d42..cbd5e77120 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el @@ -81,7 +81,7 @@ Used in `smerge-diff-base-upper' and related functions." (((class color) (min-colors 88) (background dark)) :background "#553333" :extend t) (((class color)) - :foreground "red")) + :foreground "red" :extend)) "Face for the `upper' version of a conflict.") (define-obsolete-face-alias 'smerge-mine 'smerge-upper "26.1") (defvar smerge-upper-face 'smerge-upper) @@ -92,7 +92,7 @@ Used in `smerge-diff-base-upper' and related functions." (((class color) (min-colors 88) (background dark)) :background "#335533" :extend t) (((class color)) - :foreground "green")) + :foreground "green" :extend)) "Face for the `lower' version of a conflict.") (define-obsolete-face-alias 'smerge-other 'smerge-lower "26.1") (defvar smerge-lower-face 'smerge-lower) @@ -103,7 +103,7 @@ Used in `smerge-diff-base-upper' and related functions." (((class color) (min-colors 88) (background dark)) :background "#888833" :extend t) (((class color)) - :foreground "yellow")) + :foreground "yellow" :extend t)) "Face for the base code.") (defvar smerge-base-face 'smerge-base)