]> git.eshelyaron.com Git - emacs.git/commitdiff
(lisp-fill-paragraph): Several changes.
authorKarl Heuer <kwzh@gnu.org>
Thu, 21 Dec 1995 17:54:46 +0000 (17:54 +0000)
committerKarl Heuer <kwzh@gnu.org>
Thu, 21 Dec 1995 17:54:46 +0000 (17:54 +0000)
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.

lisp/emacs-lisp/lisp-mode.el

index d8eaca3c8087a7a030bd64dc9113c02323d10e08..29ca7ecc4c36092e4b54552f8cb195aa42924c96 100644 (file)
@@ -698,16 +698,21 @@ and initial semicolons."
        ;; 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 @@ and initial semicolons."
 
       ;; 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 @@ and initial semicolons."
        (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))
 
 \f