GNU bug report logs - #26666
26.0.50; Unused faces drop from hi-lock--unused-faces

Previous Next

Package: emacs;

Reported by: Tino Calancha <tino.calancha <at> gmail.com>

Date: Wed, 26 Apr 2017 10:14:02 UTC

Severity: minor

Tags: patch

Found in version 26.0.50

Done: Tino Calancha <tino.calancha <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 26666 in the body.
You can then email your comments to 26666 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#26666; Package emacs. (Wed, 26 Apr 2017 10:14:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Tino Calancha <tino.calancha <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 26 Apr 2017 10:14:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.0.50; Unused faces drop from hi-lock--unused-faces
Date: Wed, 26 Apr 2017 19:13:37 +0900
emacs -Q
M-s hr t RET RET
M-s hr t RET RET ; Already highlighted
M-s hr f RET RET ; Should offer hi-pink face, but it offers hi-green.

--8<-----------------------------cut here---------------start------------->8---
From 287bff616ef715c54628fba5c6db95b878f1519f Mon Sep 17 00:00:00 2001
From: Tino Calancha <tino.calancha <at> gmail.com>
Date: Wed, 26 Apr 2017 19:06:47 +0900
Subject: [PATCH] Drop face from hi-lock--unused-faces only when used

* lisp/hi-lock.el (hi-lock-set-pattern): If REGEXP is
already highlighted, then push FACE into hi-lock--unused-faces.
* test/lisp/hi-lock-tests.el (hi-lock-bug26666): Add test.
---
 lisp/hi-lock.el            |  3 ++-
 test/lisp/hi-lock-tests.el | 40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+), 1 deletion(-)
 create mode 100644 test/lisp/hi-lock-tests.el

diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
index ebd18621ef..5139e01fa8 100644
--- a/lisp/hi-lock.el
+++ b/lisp/hi-lock.el
@@ -695,7 +695,8 @@ hi-lock-set-pattern
   (setq regexp (hi-lock--hashcons regexp))
   (let ((pattern (list regexp (list 0 (list 'quote face) 'prepend))))
     ;; Refuse to highlight a text that is already highlighted.
-    (unless (assoc regexp hi-lock-interactive-patterns)
+    (if (assoc regexp hi-lock-interactive-patterns)
+        (add-to-list 'hi-lock--unused-faces (face-name face))
       (push pattern hi-lock-interactive-patterns)
       (if (and font-lock-mode (font-lock-specified-p major-mode))
 	  (progn
diff --git a/test/lisp/hi-lock-tests.el b/test/lisp/hi-lock-tests.el
new file mode 100644
index 0000000000..2cb662cfac
--- /dev/null
+++ b/test/lisp/hi-lock-tests.el
@@ -0,0 +1,40 @@
+;;; hi-lock-tests.el --- Tests for hi-lock.el  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2017 Free Software Foundation, Inc.
+
+;; Author: Tino Calancha <tino.calancha <at> gmail.com>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'ert)
+(require 'hi-lock)
+
+(ert-deftest hi-lock-bug26666 ()
+  "Test for http://debbugs.gnu.org/26666 ."
+  (let ((faces hi-lock-face-defaults))
+    (with-temp-buffer
+      (insert "a A b B\n")
+      (cl-letf (((symbol-function 'completing-read)
+                   (lambda (prompt coll x y z hist defaults)
+                     (car defaults))))
+        (dotimes (_ 2)
+          (let ((face (hi-lock-read-face-name)))
+            (hi-lock-set-pattern "a" face))))
+      (should (equal hi-lock--unused-faces (cdr faces))))))
+
+(provide 'hi-lock-tests)
+;;; hi-lock-tests.el ends here
-- 
2.11.0

--8<-----------------------------cut here---------------end--------------->8---
In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2017-04-26
Repository revision: 513d000c75b582edf9acef1c6df00ee2c382dcb9




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#26666; Package emacs. (Wed, 26 Apr 2017 22:13:02 GMT) Full text and rfc822 format available.

Message #8 received at 26666 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 26666 <at> debbugs.gnu.org
Subject: Re: bug#26666: 26.0.50; Unused faces drop from hi-lock--unused-faces
Date: Thu, 27 Apr 2017 01:07:27 +0300
> emacs -Q
> M-s hr t RET RET
> M-s hr t RET RET ; Already highlighted
> M-s hr f RET RET ; Should offer hi-pink face, but it offers hi-green.
>
> From 287bff616ef715c54628fba5c6db95b878f1519f Mon Sep 17 00:00:00 2001
> From: Tino Calancha <tino.calancha <at> gmail.com>
> Date: Wed, 26 Apr 2017 19:06:47 +0900
> Subject: [PATCH] Drop face from hi-lock--unused-faces only when used
>
> * lisp/hi-lock.el (hi-lock-set-pattern): If REGEXP is
> already highlighted, then push FACE into hi-lock--unused-faces.
> * test/lisp/hi-lock-tests.el (hi-lock-bug26666): Add test.

Thanks, this solves a long-standing problem.




Reply sent to Tino Calancha <tino.calancha <at> gmail.com>:
You have taken responsibility. (Thu, 27 Apr 2017 03:05:02 GMT) Full text and rfc822 format available.

Notification sent to Tino Calancha <tino.calancha <at> gmail.com>:
bug acknowledged by developer. (Thu, 27 Apr 2017 03:05:02 GMT) Full text and rfc822 format available.

Message #13 received at 26666-done <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: 26666-done <at> debbugs.gnu.org
Subject: Re: bug#26666: 26.0.50; Unused faces drop from hi-lock--unused-faces
Date: Thu, 27 Apr 2017 12:04:36 +0900
Juri Linkov <juri <at> linkov.net> writes:

>> emacs -Q
>> M-s hr t RET RET
>> M-s hr t RET RET ; Already highlighted
>> M-s hr f RET RET ; Should offer hi-pink face, but it offers hi-green.
>>
>> From 287bff616ef715c54628fba5c6db95b878f1519f Mon Sep 17 00:00:00 2001
>> From: Tino Calancha <tino.calancha <at> gmail.com>
>> Date: Wed, 26 Apr 2017 19:06:47 +0900
>> Subject: [PATCH] Drop face from hi-lock--unused-faces only when used
>>
>> * lisp/hi-lock.el (hi-lock-set-pattern): If REGEXP is
>> already highlighted, then push FACE into hi-lock--unused-faces.
>> * test/lisp/hi-lock-tests.el (hi-lock-bug26666): Add test.
>
> Thanks, this solves a long-standing problem.
Pushed fix into master branch as commit 9af2ecc36d1d15bb63fb6b28a9b5baa6990f79b8




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 25 May 2017 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 193 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.