Commit d87be1df authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(fill-forward-paragraph-function): New var.

(fill-forward-paragraph): New fun.
(fill-paragraph, fill-region): Use it.
parent c1b51374
......@@ -732,6 +732,9 @@ functions and variables (formerly used for Tamil script).
* Lisp Changes in Emacs 23.1
** `fill-forward-paragraph-function' specifies which function the filling
code should use to find paragraph boundaries.
** The variable `this-command-keys-shift-translated' is non-nil if the
key sequence invoking the current command was found by
shift-translation.
......
2008-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
 
* textmodes/fill.el (fill-forward-paragraph-function): New var.
(fill-forward-paragraph): New fun.
(fill-paragraph, fill-region): Use it.
* vc.el: Change `dir-status' to not take (and pass) status-buffer.
(vc-status-create-fileinfo): Make `extra' optional.
(vc-status-busy): New fun.
......
......@@ -53,7 +53,10 @@ A value of nil means that any change in indentation starts a new paragraph."
(defvar fill-paragraph-function nil
"Mode-specific function to fill a paragraph, or nil if there is none.
If the function returns nil, then `fill-paragraph' does its normal work.
A value of t means explicitly \"do nothing special\".")
A value of t means explicitly \"do nothing special\".
Note: This only affects `fill-paragraph' and not `fill-region'
nor `auto-fill-mode', so it is often better to use some other hook,
such as `fill-forward-paragraph-function'.")
(defvar fill-paragraph-handle-comment t
"Non-nil means paragraph filling will try to pay attention to comments.")
......@@ -757,6 +760,15 @@ space does not end a sentence, so don't break a line there."
(narrow-to-region (minibuffer-prompt-end) (point-max))
(fill-paragraph arg)))
(defvar fill-forward-paragraph-function 'forward-paragraph
"Function to move over paragraphs used by the filling code.
It is called with a single argument specifying the number of paragraphs to move.
Just like `forward-paragraph', it should return the number of paragraphs
left to move.")
(defun fill-forward-paragraph (arg)
(funcall fill-forward-paragraph-function arg))
(defun fill-paragraph (&optional justify region)
"Fill paragraph at or after point.
......@@ -821,11 +833,11 @@ in the active region."
;; a paragraph (and not skipping any chars at EOB would not count
;; as a paragraph even if it is).
(move-to-left-margin)
(if (not (zerop (forward-paragraph)))
(if (not (zerop (fill-forward-paragraph 1)))
;; There's no paragraph at or after point: give up.
(setq fill-pfx "")
(let ((end (point))
(beg (progn (backward-paragraph) (point))))
(beg (progn (fill-forward-paragraph -1) (point))))
(goto-char before)
(setq fill-pfx
(if use-hard-newlines
......@@ -1002,7 +1014,7 @@ space does not end a sentence, so don't break a line there."
(goto-char (max from to))
(when to-eop
(skip-chars-backward "\n")
(forward-paragraph))
(fill-forward-paragraph 1))
(setq max (copy-marker (point) t))
(goto-char (setq beg (min from to)))
(beginning-of-line)
......@@ -1020,9 +1032,9 @@ space does not end a sentence, so don't break a line there."
(goto-char (1+ end)))
(setq end (if end (min max (1+ end)) max))
(goto-char initial))
(forward-paragraph 1)
(fill-forward-paragraph 1)
(setq end (min max (point)))
(forward-paragraph -1))
(fill-forward-paragraph -1))
(if (< (point) beg)
(goto-char beg))
(if (>= (point) initial)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment