changeset 19781:03264c342376

(move-past-close-and-reindent): Don't move closeparen back onto the end of a comment.
author Richard M. Stallman <rms@gnu.org>
date Sun, 07 Sep 1997 01:12:07 +0000
parents 91cd68461722
children 013cea3890cb
files lisp/emacs-lisp/lisp.el
diffstat 1 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp.el	Sat Sep 06 22:22:24 1997 +0000
+++ b/lisp/emacs-lisp/lisp.el	Sun Sep 07 01:12:07 1997 +0000
@@ -256,7 +256,25 @@
   (while (save-excursion		; this is my contribution
 	   (let ((before-paren (point)))
 	     (back-to-indentation)
-	     (= (point) before-paren)))
+	     (and (= (point) before-paren)
+		  (progn
+		    ;; Move to end of previous line.
+		    (beginning-of-line)
+		    (forward-char -1)
+		    ;; Verify it doesn't end within a string or comment.
+		    (let ((end (point))
+			  state)
+		      (beginning-of-line)
+		      ;; Get state at start of line.
+		      (setq state  (list 0 nil nil 
+					 (null (calculate-lisp-indent))
+					 nil nil nil nil
+					 nil))
+		      ;; Parse state across the line to get state at end.
+		      (setq state (parse-partial-sexp (point) end nil nil
+						      state))
+		      ;; Check not in string or comment.
+		      (and (not (elt state 3)) (not (elt state 4))))))))
     (delete-indentation))
   (forward-char 1)
   (newline-and-indent))