]> git.eshelyaron.com Git - emacs.git/commitdiff
(move-past-close-and-reindent):
authorRichard M. Stallman <rms@gnu.org>
Sun, 7 Sep 1997 01:12:07 +0000 (01:12 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 7 Sep 1997 01:12:07 +0000 (01:12 +0000)
Don't move closeparen back onto the end of a comment.

lisp/emacs-lisp/lisp.el

index 995e327ee9bd6adcc1aaff48e0cd8722ecc47afb..01e7cda43f733a89c96babdb74ff9c6ab614bf55 100644 (file)
@@ -256,7 +256,25 @@ before and after, depending on the surrounding characters."
   (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))