diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2006-07-07 19:04:49 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2006-07-07 19:04:49 +0000 |
commit | 55f6a28058fa1f52c6f1af747739134cde9414f8 (patch) | |
tree | 1df6ed129d90f41b2089349be1ecfdc59de9f700 /lisp/textmodes/fill.el | |
parent | dd9f0dcd8f1576b5d59009ffce6526c69a290a7a (diff) | |
download | emacs-55f6a28058fa1f52c6f1af747739134cde9414f8.tar.gz emacs-55f6a28058fa1f52c6f1af747739134cde9414f8.tar.bz2 emacs-55f6a28058fa1f52c6f1af747739134cde9414f8.zip |
(fill-delete-prefix): Don't ignore excessively long prefixes.
(fill-region-as-paragraph): Don't round up to a whole line.
(fill-comment-paragraph): Don't include the code-before-the-comment
when calling fill-region-as-paragraph.
Diffstat (limited to 'lisp/textmodes/fill.el')
-rw-r--r-- | lisp/textmodes/fill.el | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 9218c565c97..409e9117674 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -408,18 +408,19 @@ Point is moved to just past the fill prefix on the first line." "\\)?[ \t]*") "[ \t]*"))) (goto-char from) - (if (>= (+ (current-left-margin) (length prefix)) - (current-fill-column)) - (error "fill-prefix too long for specified width")) + ;; Why signal an error here? The problem needs to be caught elsewhere. + ;; (if (>= (+ (current-left-margin) (length prefix)) + ;; (current-fill-column)) + ;; (error "fill-prefix too long for specified width")) (forward-line 1) (while (< (point) to) (if (looking-at fpre) - (delete-region (point) (match-end 0))) + (delete-region (point) (match-end 0))) (forward-line 1)) (goto-char from) (if (looking-at fpre) (goto-char (match-end 0))) - (setq from (point)))) + (point))) ;; The `fill-space' property carries the string with which a newline ;; should be replaced when unbreaking a line (in fill-delete-newlines). @@ -627,8 +628,10 @@ space does not end a sentence, so don't break a line there." (let ((from-plus-indent (point)) (oneleft nil)) - (beginning-of-line) - (setq from (point)) + ;; We used to round up to whole line, but that prevents us from + ;; correctly handling filling of mixed code-and-comment where we + ;; do want to fill the comment but not the code. + ;; (beginning-of-line) (setq from (point)) ;; Delete all but one soft newline at end of region. ;; And leave TO before that one. @@ -799,7 +802,7 @@ If `fill-paragraph-function' is nil, return the `fill-prefix' used for filling." If we're not in a comment, just return nil so that the caller can take care of filling. JUSTIFY is used as in `fill-paragraph'." (comment-normalize-vars) - (let (has-code-and-comment ; Non-nil if it contains code and a comment. + (let (has-code-and-comment ; Non-nil if it contains code and a comment. comin comstart) ;; Figure out what kind of comment we are looking at. (save-excursion @@ -857,12 +860,13 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'." (or (comment-search-forward (line-end-position) t) (point))) (looking-at comment-re)) - 1 2)))) - ;; Find the beginning of the first line past the region to fill. - (save-excursion - (while (progn (forward-line 1) - (looking-at comment-re))) - (point))) + (progn (setq comstart (point)) 1) + (progn (setq comstart (point)) 2))))) + ;; Find the beginning of the first line past the region to fill. + (save-excursion + (while (progn (forward-line 1) + (looking-at comment-re))) + (point))) ;; Obey paragraph starters and boundaries within comments. (let* ((paragraph-separate ;; Use the default values since they correspond to @@ -874,7 +878,7 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'." (concat paragraph-start "\\|[ \t]*\\(?:" comment-start-skip "\\)\\(?:" (default-value 'paragraph-start) "\\)")) - ;; We used to reply on fill-prefix to break paragraph at + ;; We used to rely on fill-prefix to break paragraph at ;; comment-starter changes, but it did not work for the ;; first line (mixed comment&code). ;; We now use comment-re instead to "manually" make sure @@ -893,7 +897,7 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'." ;; Find the fill-prefix to use. (cond - (fill-prefix) ; Use the user-provided fill prefix. + (fill-prefix) ; Use the user-provided fill prefix. ((and adaptive-fill-mode ; Try adaptive fill mode. (setq fill-prefix (fill-context-prefix beg end)) (string-match comment-start-skip fill-prefix))) @@ -903,7 +907,7 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'." ;; Don't fill with narrowing. (or (fill-region-as-paragraph - beg end justify nil + (max comstart beg) end justify nil ;; Don't canonicalize spaces within the code just before ;; the comment. (save-excursion |