Function: fill-region
fill-region is an interactive and byte-compiled function defined in
fill.el.gz.
Signature
(fill-region FROM TO &optional JUSTIFY NOSQUEEZE TO-EOP)
Documentation
Fill each of the paragraphs in the region.
A prefix arg means justify as well.
The fill-column variable controls the width.
Noninteractively, the third argument JUSTIFY specifies which
kind of justification to do: full, left, right, center,
or none (equivalent to nil). A value of t means handle each
paragraph as specified by its text properties.
The fourth arg NOSQUEEZE non-nil means to leave whitespace other
than line breaks untouched, and fifth arg TO-EOP non-nil means
to keep filling to the end of the paragraph (or next hard newline,
if variable use-hard-newlines(var)/use-hard-newlines(fun) is on).
Return the fill-prefix used for filling the last paragraph.
If sentence-end-double-space is non-nil, then period followed by one
space does not end a sentence, so don't break a line there.
The variable fill-region-as-paragraph-function can be used to override
how paragraphs are filled.
Probably introduced at or before Emacs version 1.9.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/fill.el.gz
(defun fill-region (from to &optional justify nosqueeze to-eop)
"Fill each of the paragraphs in the region.
A prefix arg means justify as well.
The `fill-column' variable controls the width.
Noninteractively, the third argument JUSTIFY specifies which
kind of justification to do: `full', `left', `right', `center',
or `none' (equivalent to nil). A value of t means handle each
paragraph as specified by its text properties.
The fourth arg NOSQUEEZE non-nil means to leave whitespace other
than line breaks untouched, and fifth arg TO-EOP non-nil means
to keep filling to the end of the paragraph (or next hard newline,
if variable `use-hard-newlines' is on).
Return the `fill-prefix' used for filling the last paragraph.
If `sentence-end-double-space' is non-nil, then period followed by one
space does not end a sentence, so don't break a line there.
The variable `fill-region-as-paragraph-function' can be used to override
how paragraphs are filled."
(interactive (progn
(barf-if-buffer-read-only)
(list (region-beginning) (region-end)
(if current-prefix-arg 'full))))
(unless (memq justify '(t nil none full center left right))
(setq justify 'full))
(let ((start-point (point-marker))
max beg fill-pfx)
(goto-char (max from to))
(when to-eop
(skip-chars-backward "\n")
(fill-forward-paragraph 1))
(setq max (copy-marker (point) t))
(goto-char (setq beg (min from to)))
(beginning-of-line)
(while (< (point) max)
(let ((initial (point))
end)
;; If using hard newlines, break at every one for filling
;; purposes rather than using paragraph breaks.
(if use-hard-newlines
(progn
(while (and (setq end (text-property-any (point) max
'hard t))
(not (= ?\n (char-after end)))
(not (>= end max)))
(goto-char (1+ end)))
(setq end (if end (min max (1+ end)) max))
(goto-char initial))
(fill-forward-paragraph 1)
(setq end (min max (point)))
(fill-forward-paragraph -1))
(if (< (point) beg)
(goto-char beg))
(if (and (>= (point) initial) (< (point) end))
(setq fill-pfx
(fill-region-as-paragraph (point) end justify nosqueeze))
(goto-char end))))
(goto-char start-point)
(set-marker start-point nil)
fill-pfx))