diff options
author | Noam Postavsky <npostavs@gmail.com> | 2020-04-04 12:00:41 -0400 |
---|---|---|
committer | Noam Postavsky <npostavs@gmail.com> | 2020-04-04 20:06:54 -0400 |
commit | 7e78f0d1b26557b1af95c542cc95cff131c18ec8 (patch) | |
tree | 1fec166ba0bfd100c46eeceefc883f50b1db5dd5 /lisp/emacs-lisp/re-builder.el | |
parent | 452d776a5da3f25ec1ce3a632c5df8db80b507ef (diff) | |
download | emacs-7e78f0d1b26557b1af95c542cc95cff131c18ec8.tar.gz emacs-7e78f0d1b26557b1af95c542cc95cff131c18ec8.tar.bz2 emacs-7e78f0d1b26557b1af95c542cc95cff131c18ec8.zip |
Fix void-variable n-reb in re-builder (Bug#40409)
* lisp/emacs-lisp/re-builder.el (reb-while): Take the current value of
the counter instead of its name.
(reb-mark-non-matching-parenthesis): Bind n-reb to 0 at the start and
don't wrongly treat it as dynamicly bound.
Diffstat (limited to 'lisp/emacs-lisp/re-builder.el')
-rw-r--r-- | lisp/emacs-lisp/re-builder.el | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el index 580e91483db..0e1618e010a 100644 --- a/lisp/emacs-lisp/re-builder.el +++ b/lisp/emacs-lisp/re-builder.el @@ -767,22 +767,21 @@ If SUBEXP is non-nil mark only the corresponding sub-expressions." (reb-mark-non-matching-parenthesis)) nil))) -(defsubst reb-while (limit counter where) - (let ((count (symbol-value counter))) - (if (= count limit) - (progn - (message "Reached (while limit=%s, where=%s)" limit where) - nil) - (set counter (1+ count))))) +(defsubst reb-while (limit current where) + (if (< current limit) + (1+ current) + (message "Reached (while limit=%s, where=%s)" limit where) + nil)) (defun reb-mark-non-matching-parenthesis (bound) ;; We have a small string, check the whole of it, but wait until ;; everything else is fontified. (when (>= bound (point-max)) - (let (left-pars + (let ((n-reb 0) + left-pars faces-here) (goto-char (point-min)) - (while (and (reb-while 100 'n-reb "mark-par") + (while (and (setq n-reb (reb-while 100 n-reb "mark-par")) (not (eobp))) (skip-chars-forward "^()") (unless (eobp) |