changeset 13802:8107433d6a22

(lisp-fill-paragraph): Several changes. Change how to recognize partial comment lines, how to find start of region to fill. Use fill-region. Use tabs when making comment-fill-prefix.
author Karl Heuer <kwzh@gnu.org>
date Thu, 21 Dec 1995 17:54:46 +0000
parents b400658e8735
children e0bae9f528fe
files lisp/emacs-lisp/lisp-mode.el
diffstat 1 files changed, 16 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp-mode.el	Thu Dec 21 17:54:34 1995 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Thu Dec 21 17:54:46 1995 +0000
@@ -698,16 +698,21 @@
        ;; A line with some code, followed by a comment?  Remember that the
        ;; semi which starts the comment shouldn't be part of a string or
        ;; character.
-       ((progn
-	  (while (not (looking-at ";\\|$"))
-	    (skip-chars-forward "^;\n\"\\\\?")
-	    (cond
-	     ((eq (char-after (point)) ?\\) (forward-char 2))
-	     ((memq (char-after (point)) '(?\" ??)) (forward-sexp 1))))
-	  (looking-at ";+[\t ]*"))
+       ((condition-case nil
+	    (save-restriction
+	      (narrow-to-region (point-min)
+				(save-excursion (end-of-line) (point)))
+	      (while (not (looking-at ";\\|$"))
+		(skip-chars-forward "^;\n\"\\\\?")
+		(cond
+		 ((eq (char-after (point)) ?\\) (forward-char 2))
+		 ((memq (char-after (point)) '(?\" ??)) (forward-sexp 1))))
+	      (looking-at ";+[\t ]*"))
+	  (error nil))
 	(setq has-comment t)
 	(setq comment-fill-prefix
-	      (concat (make-string (current-column) ? )
+	      (concat (make-string (/ (current-column) 8) ?\t)
+		      (make-string (% (current-column) 8) ?\ )
 		      (buffer-substring (match-beginning 0) (match-end 0)))))))
 
     (if (not has-comment)
@@ -715,13 +720,14 @@
 
       ;; Narrow to include only the comment, and then fill the region.
       (save-restriction
+	(beginning-of-line)
 	(narrow-to-region
 	 ;; Find the first line we should include in the region to fill.
 	 (save-excursion
 	   (while (and (zerop (forward-line -1))
 		       (looking-at "^[ \t]*;")))
 	   ;; We may have gone to far.  Go forward again.
-	   (or (looking-at "^[ \t]*;")
+	   (or (looking-at ".*;")
 	       (forward-line 1))
 	   (point))
 	 ;; Find the beginning of the first line past the region to fill.
@@ -734,7 +740,7 @@
 	(let ((paragraph-start (concat paragraph-start "\\|[ \t;]*$"))
 	      (paragraph-separate (concat paragraph-start "\\|[ \t;]*$"))
 	      (fill-prefix comment-fill-prefix))
-	  (fill-paragraph justify))))
+	  (fill-region (point-min) (point-max) justify t))))
     t))