]> git.eshelyaron.com Git - emacs.git/commitdiff
(fill-comment-paragraph): Improve comment.
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 7 Jan 2007 20:11:47 +0000 (20:11 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 7 Jan 2007 20:11:47 +0000 (20:11 +0000)
lisp/textmodes/fill.el

index 21ee585ec11e69c0bb01b993d0d1ba06f9a42c54..94f29043d5db57e7af8add7afc2c437488db74a5 100644 (file)
@@ -838,18 +838,22 @@ can take care of filling.  JUSTIFY is used as in `fill-paragraph'."
             (commark
              (comment-string-strip (buffer-substring comstart comin) nil t))
             (comment-re
-             ;; `commark' is surrounded with arbitrary text (`\0' and `a')
-             ;;  to make sure it can be used as an optimization of
-             ;; `comment-start-skip' in the middle of a line.  For example,
-             ;; `commark' can't be used with the "@c" in TeXinfo (hence
-             ;; the `a') or with the "C" at BOL in Fortran (hence the `\0').
-             (if (string-match comment-start-skip (concat "\0" commark "a"))
-                 (concat "[ \t]*" (regexp-quote commark)
-                         ;; Make sure we only match comments that use
-                         ;; the exact same comment marker.
-                         "[^" (substring commark -1) "]")
-               (concat "[ \t]*\\(?:" comment-start-skip "\\)")))
-            (comment-fill-prefix       ; Compute a fill prefix.
+              ;; A regexp more specialized than comment-start-skip, that only
+              ;; matches the current commark rather than any valid commark.
+              ;; 
+              ;; The specialized regexp only works for "normal" comment
+              ;; syntax, not for Texinfo's "@c" (which can't be immediately
+              ;; followed by word-chars) or Fortran's "C" (which needs to be
+              ;; at bol), so check that comment-start-skip indeed allows the
+              ;; commark to appear in the middle of the line and followed by
+              ;; word chars.  The choice of "\0" and "a" is mostly arbitrary.
+              (if (string-match comment-start-skip (concat "\0" commark "a"))
+                  (concat "[ \t]*" (regexp-quote commark)
+                          ;; Make sure we only match comments that
+                          ;; use the exact same comment marker.
+                          "[^" (substring commark -1) "]")
+                (concat "[ \t]*\\(?:" comment-start-skip "\\)")))
+             (comment-fill-prefix      ; Compute a fill prefix.
              (save-excursion
                (goto-char comstart)
                (if has-code-and-comment