changeset 75133:827cbf161c8f

(fill-comment-paragraph): Improve comment.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 07 Jan 2007 20:11:47 +0000
parents 51ead0356792
children a63f4ee8a579
files lisp/textmodes/fill.el
diffstat 1 files changed, 16 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/fill.el	Sun Jan 07 18:45:28 2007 +0000
+++ b/lisp/textmodes/fill.el	Sun Jan 07 20:11:47 2007 +0000
@@ -838,18 +838,22 @@
 	     (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