emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 0a26144 280/399: ivy.el (ivy--highlight-default): Handle u


From: Oleh Krehel
Subject: [elpa] master 0a26144 280/399: ivy.el (ivy--highlight-default): Handle unmatched groups
Date: Sat, 20 Jul 2019 14:57:40 -0400 (EDT)

branch: master
commit 0a261446ccad61f9307650db5a1652952a714fd1
Author: Andrew Whatson <address@hidden>
Commit: Oleh Krehel <address@hidden>

    ivy.el (ivy--highlight-default): Handle unmatched groups
    
    It's possible for a regex to have subexpressions which aren't matched,
    and therefore have a nil beginning and end. These were raising an error
    which aborted the highlight pass before it was finished.
---
 ivy.el | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/ivy.el b/ivy.el
index 04820e6..c4a8384 100644
--- a/ivy.el
+++ b/ivy.el
@@ -3553,16 +3553,17 @@ Note: The usual last two arguments are flipped for 
convenience.")
           (setq start (match-end 0))
           (let ((i 0))
             (while (<= i ivy--subexps)
-              (let ((face
-                     (cond ((zerop ivy--subexps)
-                            (cadr ivy-minibuffer-faces))
-                           ((zerop i)
-                            (car ivy-minibuffer-faces))
-                           (t
-                            (ivy--minibuffer-face i)))))
-                (ivy-add-face-text-property
-                 (match-beginning i) (match-end i)
-                 face str))
+              (let ((beg (match-beginning i))
+                    (end (match-end i)))
+                (when (and beg end)
+                  (let ((face
+                         (cond ((zerop ivy--subexps)
+                                (cadr ivy-minibuffer-faces))
+                               ((zerop i)
+                                (car ivy-minibuffer-faces))
+                               (t
+                                (ivy--minibuffer-face i)))))
+                    (ivy-add-face-text-property beg end face str))))
               (cl-incf i)))))))
   str)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]