From 29100cfa0ea33588ee7b48d33858c97fb19c1767 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Sat, 15 Sep 2007 09:37:00 +0000 Subject: [PATCH] (blink-matching-open): Don't display message when no paren is found within blink-matching-paren-distance characters. Don't search prompt in blink-matching-paren-distance nil case. --- admin/FOR-RELEASE | 4 ---- lisp/ChangeLog | 6 ++++++ lisp/simple.el | 34 +++++++++++++++++++++------------- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 51dd86929a1..58a3e63e961 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -99,10 +99,6 @@ http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-09/msg00020.html ** Bug/Patch view.el http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-09/msg00073.html -** jbw@macs.hw.ac.uk: parentheses matching failure on valid sexp -http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01140.html - - * FIXES FOR EMACS 22.3 Here we list any small fixes that arrived too late for Emacs 22.2, but diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 31754a63bc5..cf557b581c3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2007-09-15 Martin Rudalics + + * simple.el (blink-matching-open): Don't display message when no + paren is found within blink-matching-paren-distance characters. + Don't search prompt in blink-matching-paren-distance nil case. + 2007-09-14 Dan Nicolaescu * term/xterm.el (terminal-init-xterm): Add C-M- bindings. diff --git a/lisp/simple.el b/lisp/simple.el index 2aee3e43cfe..dec4111e863 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4481,15 +4481,20 @@ it skips the contents of comments that end before point." (point)))))) (let* ((oldpos (point)) blinkpos - message-log-max ; Don't log messages about paren matching. + message-log-max ; Don't log messages about paren matching. matching-paren - open-paren-line-string) + open-paren-line-string + old-start + new-start) (save-excursion (save-restriction - (if blink-matching-paren-distance - (narrow-to-region (max (minibuffer-prompt-end) - (- (point) blink-matching-paren-distance)) - oldpos)) + ;; Don't search for matching paren within minibuffer prompt. + (setq old-start (minibuffer-prompt-end)) + (setq new-start + (if blink-matching-paren-distance + (max old-start (- (point) blink-matching-paren-distance)) + old-start)) + (narrow-to-region new-start oldpos) (condition-case () (let ((parse-sexp-ignore-comments (and parse-sexp-ignore-comments @@ -4505,15 +4510,18 @@ it skips the contents of comments that end before point." (eq (syntax-class syntax) 4) (cdr syntax))))) (cond + ((not blinkpos) + (unless (and blink-matching-paren-distance (> new-start old-start)) + ;; When `blink-matching-paren-distance' is non-nil and we + ;; didn't find a matching paren within that many characters + ;; don't display a message. + (message "Unmatched parenthesis"))) ((not (or (eq matching-paren (char-before oldpos)) - ;; The cdr might hold a new paren-class info rather than - ;; a matching-char info, in which case the two CDRs - ;; should match. - (eq matching-paren (cdr (syntax-after (1- oldpos)))))) + ;; The cdr might hold a new paren-class info rather than + ;; a matching-char info, in which case the two CDRs + ;; should match. + (eq matching-paren (cdr (syntax-after (1- oldpos)))))) (message "Mismatched parentheses")) - ((not blinkpos) - (if (not blink-matching-paren-distance) - (message "Unmatched parenthesis"))) ((pos-visible-in-window-p blinkpos) ;; Matching open within window, temporarily move to blinkpos but only ;; if `blink-matching-paren-on-screen' is non-nil. -- 2.39.2