From af5debda9205ed0fe0c0d7cf523b503675afa261 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 7 Jan 2007 20:11:47 +0000 Subject: [PATCH] (fill-comment-paragraph): Improve comment. --- lisp/textmodes/fill.el | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 21ee585ec11..94f29043d5d 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -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 -- 2.39.2