emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/paredit 135c940 068/224: Count carefully at end of buffer


From: ELPA Syncer
Subject: [nongnu] elpa/paredit 135c940 068/224: Count carefully at end of buffer in `paredit-count-sexps-forward'.
Date: Sat, 7 Aug 2021 09:22:21 -0400 (EDT)

branch: elpa/paredit
commit 135c94043eee6a97a94a41b0fa2cb79677165c41
Author: Taylor R Campbell <campbell@mumble.net>
Commit: Taylor R Campbell <campbell@mumble.net>

    Count carefully at end of buffer in `paredit-count-sexps-forward'.
    
    Ignore-this: 710e264ca330414cfb55c295d0ed5f46
    
    Fixes `C-u M-(' at the top level when there is whitespace at the end
    of the buffer: the closing delimiter should go at the end of the last
    S-expression, not at the end of the buffer after the whitespace.
    
    Thanks to Eitan Postavsky for the report.
    
    darcs-hash:20110320183854-00fcc-7162d40b9111aed39ca72a913393af8bb2425025
---
 paredit.el | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/paredit.el b/paredit.el
index 637dd72..3c89c50 100644
--- a/paredit.el
+++ b/paredit.el
@@ -1866,10 +1866,18 @@ By default OPEN and CLOSE are round delimiters."
 (defun paredit-count-sexps-forward ()
   (save-excursion
     (let ((n 0))
-      (paredit-ignore-sexp-errors
-        (while (not (eobp))
-          (forward-sexp)
-          (setq n (+ n 1))))
+      (catch 'exit
+        (paredit-ignore-sexp-errors
+          (while (not (eobp))
+            (let ((start (point)))
+              (forward-sexp)
+              ;; Don't count whitespace at the end of the buffer as
+              ;; another S-expression.
+              (if (and (eobp)
+                       (save-excursion (backward-sexp)
+                                       (or (bobp) (< (point) start))))
+                  (throw 'exit nil)))
+            (setq n (+ n 1)))))
       n)))
 
 (defun paredit-yank-pop (&optional argument)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]