(backward-kill-sentence): Don't test minibuffer-prompt-end here.
authorRichard M. Stallman <rms@gnu.org>
Sun, 5 Sep 1999 23:44:56 +0000 (23:44 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 5 Sep 1999 23:44:56 +0000 (23:44 +0000)
(forward-sentence): Do handle it here.
(backward-kill-paragraph): Don't test it here.
(forward-paragraph): Handle it here.

lisp/textmodes/paragraphs.el

index 6f958ce..2271bda 100644 (file)
@@ -185,6 +185,11 @@ to which the end of the previous line belongs, or the end of the buffer."
              (concat paragraph-separate "\\|"
                      fill-prefix-regexp "[ \t]*$")
            paragraph-separate))
+        ;; The end of the prompt is treated as a paragraph boundary.
+        (prompt-end (if (window-minibuffer-p)
+                        (minibuffer-prompt-end)
+                      1))
+        (orig-point (point))
         ;; This is used for searching.
         (sp-paragraph-start (concat "^[ \t]*\\(" paragraph-start "\\)"))
         start found-start)
@@ -285,7 +290,13 @@ to which the end of the previous line belongs, or the end of the buffer."
          (forward-char 1))
        (if (< (point) (point-max))
            (goto-char start)))
-      (setq arg (1- arg)))))
+      (setq arg (1- arg)))
+    (when (and (< orig-point prompt-end)
+              (< prompt-end (point)))
+      (goto-char prompt-end))
+    (when (and (> orig-point prompt-end)
+              (> prompt-end (point)))
+      (goto-char prompt-end))))
 
 (defun backward-paragraph (&optional arg)
   "Move backward to start of paragraph.
@@ -324,10 +335,7 @@ With arg N, kill back to Nth start of paragraph;
 negative arg -N means kill forward to Nth end of paragraph."
   (interactive "*p")
   (let ((start (point))
-       (end (progn (backward-paragraph arg) (point)))
-       (prompt-end (minibuffer-prompt-end)))
-    (when (> end prompt-end)
-      (goto-char (setq end prompt-end)))
+       (end (progn (backward-paragraph arg) (point))))
     (kill-region start end)))
 
 (defun transpose-paragraphs (arg)
@@ -369,13 +377,25 @@ sentences.  Also, every paragraph boundary terminates sentences as well."
   (interactive "p")
   (or arg (setq arg 1))
   (while (< arg 0)
-    (let ((par-beg (save-excursion (start-of-paragraph-text) (point))))
+    (let ((par-beg (save-excursion (start-of-paragraph-text) (point)))
+         (prompt-end (if (window-minibuffer-p)
+                         (minibuffer-prompt-end)
+                       1)))
+      (if (and (< prompt-end (point))
+              (> prompt-end par-beg))
+         (setq par-beg prompt-end))
       (if (re-search-backward (concat sentence-end "[^ \t\n]") par-beg t)
          (goto-char (1- (match-end 0)))
        (goto-char par-beg)))
     (setq arg (1+ arg)))
   (while (> arg 0)
-    (let ((par-end (save-excursion (end-of-paragraph-text) (point))))
+    (let ((par-end (save-excursion (end-of-paragraph-text) (point)))
+         (prompt-end (if (window-minibuffer-p)
+                         (minibuffer-prompt-end)
+                       1)))
+      (if (and (> prompt-end (point))
+              (< prompt-end par-end))
+         (setq par-end prompt-end))
       (if (re-search-forward sentence-end par-end t)
          (skip-chars-backward " \t\n")
        (goto-char par-end)))
@@ -399,10 +419,7 @@ With arg, repeat; negative arg -N means kill back to Nth start of sentence."
 With arg, repeat, or kill forward to Nth end of sentence if negative arg -N."
   (interactive "*p")
   (let ((start (point))
-       (end (progn (backward-sentence arg) (point)))
-       (prompt-end (minibuffer-prompt-end)))
-    (when (> end prompt-end)
-      (goto-char (setq end prompt-end)))
+       (end (progn (backward-sentence arg) (point))))
     (kill-region start end)))
 
 (defun mark-end-of-sentence (arg)