summaryrefslogtreecommitdiff
path: root/paredit.el
diff options
context:
space:
mode:
authorTaylor R Campbell <campbell@mumble.net>2011-03-20 18:45:37 +0000
committerTaylor R Campbell <campbell@mumble.net>2011-03-20 18:45:37 +0000
commit4d3ad1edcbd29358ac343a0e5fbe137e4fdf90fd (patch)
treec021603a4052823c11c7d7e2edb9059ed2073c83 /paredit.el
parent135c94043eee6a97a94a41b0fa2cb79677165c41 (diff)
Simplify definition of `paredit-count-sexps-forward'.
Ignore-this: 76e5c8178ddc5dede762dc101e526095 Use the atrocious idiom (while (setq tmp ...) ...)... darcs-hash:20110320184537-00fcc-ad46fdaac5b45670aa781cd61c105e1ee6ade7f5
Diffstat (limited to 'paredit.el')
-rw-r--r--paredit.el18
1 files changed, 5 insertions, 13 deletions
diff --git a/paredit.el b/paredit.el
index 3c89c50..726fd09 100644
--- a/paredit.el
+++ b/paredit.el
@@ -1865,19 +1865,11 @@ By default OPEN and CLOSE are round delimiters."
(defun paredit-count-sexps-forward ()
(save-excursion
- (let ((n 0))
- (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)))))
+ (let ((n 0) (p nil)) ;hurk
+ (paredit-ignore-sexp-errors
+ (while (setq p (scan-sexps (point) +1))
+ (goto-char p)
+ (setq n (+ n 1))))
n)))
(defun paredit-yank-pop (&optional argument)