* lisp/progmodes/python.el (python-font-lock-keywords): Don't return nil

from a matcher-function unless there's no more matches.

Fixes: debbugs:15161
This commit is contained in:
Stefan Monnier 2013-08-26 22:41:41 -04:00
parent 12c4970d70
commit 9e89d835b0
2 changed files with 17 additions and 17 deletions

View file

@ -1,3 +1,8 @@
2013-08-27 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/python.el (python-font-lock-keywords): Don't return nil
from a matcher-function unless there's no more matches (bug#15161).
2013-08-26 Michael Albinus <michael.albinus@gmx.de>
* minibuffer.el: Revert change from 2013-08-20.

View file

@ -501,29 +501,24 @@ The type returned can be `comment', `string' or `paren'."
(,(lambda (limit)
(let ((re (python-rx (group (+ (any word ?. ?_)))
(? ?\[ (+ (not (any ?\]))) ?\]) (* space)
assignment-operator)))
(when (re-search-forward re limit t)
(while (and (python-syntax-context 'paren)
(re-search-forward re limit t)))
(if (not (or (python-syntax-context 'paren)
(equal (char-after (point-marker)) ?=)))
t
(set-match-data nil)))))
assignment-operator))
(res nil))
(while (and (setq res (re-search-forward re limit t))
(or (python-syntax-context 'paren)
(equal (char-after (point-marker)) ?=))))
res))
(1 font-lock-variable-name-face nil nil))
;; support for a, b, c = (1, 2, 3)
(,(lambda (limit)
(let ((re (python-rx (group (+ (any word ?. ?_))) (* space)
(* ?, (* space) (+ (any word ?. ?_)) (* space))
?, (* space) (+ (any word ?. ?_)) (* space)
assignment-operator)))
(when (and (re-search-forward re limit t)
(goto-char (nth 3 (match-data))))
(while (and (python-syntax-context 'paren)
(re-search-forward re limit t))
(goto-char (nth 3 (match-data))))
(if (not (python-syntax-context 'paren))
t
(set-match-data nil)))))
assignment-operator))
(res nil))
(while (and (setq res (re-search-forward re limit t))
(goto-char (match-end 1))
(python-syntax-context 'paren)))
res))
(1 font-lock-variable-name-face nil nil))))
(defconst python-syntax-propertize-function