For moving backward sentences,
authorRichard M. Stallman <rms@gnu.org>
Fri, 23 Sep 2011 23:55:52 +0000 (19:55 -0400)
committerRichard M. Stallman <rms@gnu.org>
Fri, 23 Sep 2011 23:55:52 +0000 (19:55 -0400)
distinguish start of paragraph from start of its text.

lisp/ChangeLog
lisp/textmodes/paragraphs.el

index 1c21b12..a7e9afc 100644 (file)
@@ -1,5 +1,8 @@
 2011-09-23  Richard Stallman  <rms@gnu.org>
 
+       * textmodes/paragraphs.el (forward-sentence): For backwards case,
+       distinguish start of paragraph from start of its text.
+
        * mail/emacsbug.el (report-emacs-bug-query-existing-bugs): Autoload.
 
        * mail/rmail.el (rmail-view-buffer-kill-buffer-hook): New function.
index 5945404..8fd055f 100644 (file)
@@ -456,19 +456,23 @@ sentences.  Also, every paragraph boundary terminates sentences as well."
         (sentence-end (sentence-end)))
     (while (< arg 0)
       (let ((pos (point))
-           (par-beg
-            (save-excursion
-              (start-of-paragraph-text)
-              ;; Move PAR-BEG back over indentation
-              ;; to allow s1entence-end to match if it is anchored at
-              ;; BOL and the paragraph starts indented.
-              (beginning-of-line)
-              (point))))
+           par-beg par-text-beg)
+       (save-excursion
+         (start-of-paragraph-text)
+         ;; Start of real text in the paragraph.
+         ;; We move back to here if we don't see a sentence-end.
+         (setq par-text-beg (point))
+         ;; Start of the first line of the paragraph.
+         ;; We use this as the search limit
+         ;; to allow s1entence-end to match if it is anchored at
+         ;; BOL and the paragraph starts indented.
+         (beginning-of-line)
+         (setq par-beg (point)))
        (if (and (re-search-backward sentence-end par-beg t)
                 (or (< (match-end 0) pos)
                     (re-search-backward sentence-end par-beg t)))
            (goto-char (match-end 0))
-         (goto-char par-beg)))
+         (goto-char par-text-beg)))
       (setq arg (1+ arg)))
     (while (> arg 0)
       (let ((par-end (save-excursion (end-of-paragraph-text) (point))))