[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/simple.el
From: |
Richard M . Stallman |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/simple.el |
Date: |
Thu, 08 Sep 2005 21:11:34 -0400 |
Index: emacs/lisp/simple.el
diff -c emacs/lisp/simple.el:1.747 emacs/lisp/simple.el:1.748
*** emacs/lisp/simple.el:1.747 Wed Aug 31 13:51:34 2005
--- emacs/lisp/simple.el Fri Sep 9 01:11:34 2005
***************
*** 4227,4314 ****
(defun blink-matching-open ()
"Move cursor momentarily to the beginning of the sexp before point."
(interactive)
! (and (> (point) (1+ (point-min)))
! blink-matching-paren
! ;; Verify an even number of quoting characters precede the close.
! (= 1 (logand 1 (- (point)
! (save-excursion
! (forward-char -1)
! (skip-syntax-backward "/\\")
! (point)))))
! (let* ((oldpos (point))
! (blinkpos)
! (mismatch)
! matching-paren)
! (save-excursion
! (save-restriction
! (if blink-matching-paren-distance
! (narrow-to-region (max (point-min)
! (- (point)
blink-matching-paren-distance))
! oldpos))
! (condition-case ()
! (let ((parse-sexp-ignore-comments
! (and parse-sexp-ignore-comments
! (not blink-matching-paren-dont-ignore-comments))))
! (setq blinkpos (scan-sexps oldpos -1)))
! (error nil)))
! (and blinkpos
! ;; Not syntax '$'.
! (not (eq (syntax-class (syntax-after blinkpos)) 8))
! (setq matching-paren
! (let ((syntax (syntax-after blinkpos)))
! (and (consp syntax)
! (eq (syntax-class syntax) 4)
! (cdr syntax)))
! mismatch
! (or (null matching-paren)
! (/= (char-after (1- oldpos))
! matching-paren))))
! (if mismatch (setq blinkpos nil))
! (if blinkpos
! ;; Don't log messages about paren matching.
! (let (message-log-max)
! (goto-char blinkpos)
! (if (pos-visible-in-window-p)
! (and blink-matching-paren-on-screen
! (sit-for blink-matching-delay))
! (goto-char blinkpos)
! (message
! "Matches %s"
! ;; Show what precedes the open in its line, if anything.
! (if (save-excursion
! (skip-chars-backward " \t")
! (not (bolp)))
! (buffer-substring (progn (beginning-of-line) (point))
! (1+ blinkpos))
! ;; Show what follows the open in its line, if anything.
! (if (save-excursion
! (forward-char 1)
! (skip-chars-forward " \t")
! (not (eolp)))
! (buffer-substring blinkpos
! (progn (end-of-line) (point)))
! ;; Otherwise show the previous nonblank line,
! ;; if there is one.
! (if (save-excursion
! (skip-chars-backward "\n \t")
! (not (bobp)))
! (concat
! (buffer-substring (progn
(skip-chars-backward "\n \t")
! (beginning-of-line)
! (point))
! (progn (end-of-line)
! (skip-chars-backward " \t")
! (point)))
! ;; Replace the newline and other whitespace with
`...'.
! "..."
! (buffer-substring blinkpos (1+ blinkpos)))
! ;; There is nothing to show except the char itself.
! (buffer-substring blinkpos (1+ blinkpos))))))))
! (cond (mismatch
! (message "Mismatched parentheses"))
! ((not blink-matching-paren-distance)
! (message "Unmatched parenthesis"))))))))
;Turned off because it makes dbx bomb out.
(setq blink-paren-function 'blink-matching-open)
--- 4227,4316 ----
(defun blink-matching-open ()
"Move cursor momentarily to the beginning of the sexp before point."
(interactive)
! (when (and (> (point) (1+ (point-min)))
! blink-matching-paren
! ;; Verify an even number of quoting characters precede the close.
! (= 1 (logand 1 (- (point)
! (save-excursion
! (forward-char -1)
! (skip-syntax-backward "/\\")
! (point))))))
! (let* ((oldpos (point))
! blinkpos
! message-log-max ; Don't log messages about paren matching.
! matching-paren
! open-paren-line-string)
! (save-excursion
! (save-restriction
! (if blink-matching-paren-distance
! (narrow-to-region (max (point-min)
! (- (point) blink-matching-paren-distance))
! oldpos))
! (condition-case ()
! (let ((parse-sexp-ignore-comments
! (and parse-sexp-ignore-comments
! (not blink-matching-paren-dont-ignore-comments))))
! (setq blinkpos (scan-sexps oldpos -1)))
! (error nil)))
! (and blinkpos
! ;; Not syntax '$'.
! (not (eq (syntax-class (syntax-after blinkpos)) 8))
! (setq matching-paren
! (let ((syntax (syntax-after blinkpos)))
! (and (consp syntax)
! (eq (syntax-class syntax) 4)
! (cdr syntax)))))
! (cond
! ((or (null matching-paren)
! (/= (char-before oldpos)
! matching-paren))
! (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.
! (when blink-matching-paren-on-screen
! (save-excursion
! (goto-char blinkpos)
! (sit-for blink-matching-delay))))
! (t
! (save-excursion
! (goto-char blinkpos)
! (setq open-paren-line-string
! ;; Show what precedes the open in its line, if anything.
! (if (save-excursion
! (skip-chars-backward " \t")
! (not (bolp)))
! (buffer-substring (line-beginning-position)
! (1+ blinkpos))
! ;; Show what follows the open in its line, if anything.
! (if (save-excursion
! (forward-char 1)
! (skip-chars-forward " \t")
! (not (eolp)))
! (buffer-substring blinkpos
! (line-end-position))
! ;; Otherwise show the previous nonblank line,
! ;; if there is one.
! (if (save-excursion
! (skip-chars-backward "\n \t")
! (not (bobp)))
! (concat
! (buffer-substring (progn
(skip-chars-backward "\n \t")
! (line-beginning-position))
! (progn (end-of-line)
! (skip-chars-backward " \t")
! (point)))
! ;; Replace the newline and other whitespace with
`...'.
! "..."
! (buffer-substring blinkpos (1+ blinkpos)))
! ;; There is nothing to show except the char itself.
! (buffer-substring blinkpos (1+ blinkpos)))))))
! (message "Matches %s"
! (substring-no-properties open-paren-line-string))))))))
;Turned off because it makes dbx bomb out.
(setq blink-paren-function 'blink-matching-open)
- [Emacs-diffs] Changes to emacs/lisp/simple.el,
Richard M . Stallman <=