summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTaylor R Campbell <campbell@mumble.net>2011-03-22 07:49:06 +0000
committerTaylor R Campbell <campbell@mumble.net>2011-03-22 07:49:06 +0000
commita79aa2c61e8127ff3f2c0c63a772b6d3b12cf785 (patch)
treeb3e759e3f521826e2e5fc6a6c5b68a8c176816de
parentf5e7959cddf6cdf29cfbfc499eec57903b9a07e5 (diff)
Fix end-of-line and end-of-buffer corner cases of `paredit-semicolon'.
Ignore-this: 799e1e911ebd252aec4ce53d85935236 Don't break the line if the point is at the end of the line already, or if the point is on the last line of the buffer and there is no trailing line break. darcs-hash:20110322074906-00fcc-768c7e264b5142c25909573edaf157b79a44ccbb
-rw-r--r--paredit.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/paredit.el b/paredit.el
index f11fc7b..a887ddc 100644
--- a/paredit.el
+++ b/paredit.el
@@ -1045,7 +1045,8 @@ If a list begins on the line after the point but ends on a different
(defun paredit-semicolon-find-line-break-point ()
(let ((line-break-point nil)
(eol (point-at-eol)))
- (and (save-excursion
+ (and (not (eolp)) ;Implies (not (eobp)).
+ (save-excursion
(paredit-handle-sexp-errors
(progn
(while
@@ -1055,7 +1056,10 @@ If a list begins on the line after the point but ends on a different
(and (eq eol (point-at-eol))
(not (eobp)))))
(backward-sexp)
- (eq eol (point-at-eol)))
+ (and (eq eol (point-at-eol))
+ ;; Don't break the line if the end of the last
+ ;; S-expression is at the end of the buffer.
+ (progn (forward-sexp) (not (eobp)))))
;; If we hit the end of an expression, but the closing
;; delimiter is on another line, don't break the line.
(save-excursion