diff options
author | Andrea Corallo <akrl@sdf.org> | 2021-01-30 14:09:37 +0100 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2021-01-30 14:09:37 +0100 |
commit | a8b8d220b4fccaa812e85f9b2b3715593dc285ac (patch) | |
tree | 07051469f09277b1993eee37870059e3d0abf71e /lisp/emacs-lisp/regi.el | |
parent | b8d3ae78c54db7c7bb65d367a80f9be3d8744c48 (diff) | |
parent | ed2f2cc5577d5d9b61db7a5b61e93e79d678be41 (diff) | |
download | emacs-a8b8d220b4fccaa812e85f9b2b3715593dc285ac.tar.gz emacs-a8b8d220b4fccaa812e85f9b2b3715593dc285ac.tar.bz2 emacs-a8b8d220b4fccaa812e85f9b2b3715593dc285ac.zip |
Merge remote-tracking branch 'savannah/master' into native-comp
Diffstat (limited to 'lisp/emacs-lisp/regi.el')
-rw-r--r-- | lisp/emacs-lisp/regi.el | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/lisp/emacs-lisp/regi.el b/lisp/emacs-lisp/regi.el index 38b202fa101..527af1ddf24 100644 --- a/lisp/emacs-lisp/regi.el +++ b/lisp/emacs-lisp/regi.el @@ -1,4 +1,4 @@ -;;; regi.el --- REGular expression Interpreting engine +;;; regi.el --- REGular expression Interpreting engine -*- lexical-binding: t; -*- ;; Copyright (C) 1993, 2001-2021 Free Software Foundation, Inc. @@ -153,7 +153,7 @@ useful information: ;; set up the narrowed region (and start end - (let* ((tstart start) + (let* (;; (tstart start) (start (min start end)) (end (max start end))) (narrow-to-region @@ -206,30 +206,33 @@ useful information: ;; if the line matched, package up the argument list and ;; funcall the FUNC (if match-p - (let* ((curline (buffer-substring - (regi-pos 'bol) - (regi-pos 'eol))) - (curframe current-frame) - (curentry entry) - (result (eval func)) - (step (or (cdr (assq 'step result)) 1)) - ) - ;; changing frame on the fly? - (if (assq 'frame result) - (setq working-frame (cdr (assq 'frame result)))) - - ;; continue processing current frame? - (if (memq 'continue result) - (setq current-frame (cdr current-frame)) - (forward-line step) - (setq current-frame working-frame)) - - ;; abort current frame? - (if (memq 'abort result) - (progn - (setq donep t) - (throw 'regi-throw-top t))) - ) ; end-let + (with-suppressed-warnings + ((lexical curframe curentry curline)) + (defvar curframe) (defvar curentry) (defvar curline) + (let* ((curline (buffer-substring + (regi-pos 'bol) + (regi-pos 'eol))) + (curframe current-frame) + (curentry entry) + (result (eval func)) + (step (or (cdr (assq 'step result)) 1)) + ) + ;; changing frame on the fly? + (if (assq 'frame result) + (setq working-frame (cdr (assq 'frame result)))) + + ;; continue processing current frame? + (if (memq 'continue result) + (setq current-frame (cdr current-frame)) + (forward-line step) + (setq current-frame working-frame)) + + ;; abort current frame? + (if (memq 'abort result) + (progn + (setq donep t) + (throw 'regi-throw-top t))) + )) ; end-let ;; else if no match occurred, then process the next ;; frame-entry on the current line |