From: Stefan Monnier Date: Tue, 27 Aug 2013 02:41:41 +0000 (-0400) Subject: * lisp/progmodes/python.el (python-font-lock-keywords): Don't return nil X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1686^2~107 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9e89d835b04c20a8cd3dfad452fa827d675b0938;p=emacs.git * 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 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 31538258bb6..b8351f11f61 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-08-27 Stefan Monnier + + * 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 * minibuffer.el: Revert change from 2013-08-20. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 01833ffd70b..7004836e69f 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -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