[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#20519: face-at-point: do not compute the final list if a sole value
From: |
Ivan Shmakov |
Subject: |
bug#20519: face-at-point: do not compute the final list if a sole value is wanted |
Date: |
Wed, 06 May 2015 21:25:40 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Package: emacs
Severity: wishlist
The face-at-point function currently (1c7f0cdc4c1f, 2015-04-27
16:59:11 +00:00) uses delete-dups to compute a duplicate-free
version of the list… just before taking a single value of it and
discarding the rest in the (not multiple) case.
Please thus consider the following patch.
* lisp/faces.el (face-at-point): Do not compute the properly
ordered, duplicate-free list if only a single value is
requested.
--
FSF associate member #7257 http://am-1.org/~ivan/ … 3013 B6A0 230E 334A
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1937,8 +1937,9 @@ defun face-at-point (&optional thing multiple)
(dolist (face faceprop)
(if (facep face)
(push face faces))))))
- (setq faces (delete-dups (nreverse faces)))
- (if multiple faces (car faces))))
+ (if multiple
+ (delete-dups (nreverse faces))
+ (car (last faces)))))
(defun foreground-color-at-point ()
"Return the foreground color of the character after point."
- bug#20519: face-at-point: do not compute the final list if a sole value is wanted,
Ivan Shmakov <=