emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog log-edit.el


From: Stefan Monnier
Subject: [Emacs-diffs] emacs/lisp ChangeLog log-edit.el
Date: Fri, 25 Sep 2009 17:57:14 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        09/09/25 17:57:14

Modified files:
        lisp           : ChangeLog log-edit.el 

Log message:
        (log-edit-changelog-entries): Avoid inf-loops.
        Try and avoid copying twice the same paragraph.
        (log-edit-changelog-paragraph, log-edit-changelog-subparagraph):
        Remove save-excursion.
        (log-edit-changelog-entry): Do it here instead.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.16263&r2=1.16264
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/log-edit.el?cvsroot=emacs&r1=1.54&r2=1.55

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.16263
retrieving revision 1.16264
diff -u -b -r1.16263 -r1.16264
--- ChangeLog   25 Sep 2009 06:15:01 -0000      1.16263
+++ ChangeLog   25 Sep 2009 17:57:09 -0000      1.16264
@@ -1,3 +1,11 @@
+2009-09-25  Stefan Monnier  <address@hidden>
+
+       * log-edit.el (log-edit-changelog-entries): Avoid inf-loops.
+       Try and avoid copying twice the same paragraph.
+       (log-edit-changelog-paragraph, log-edit-changelog-subparagraph):
+       Remove save-excursion.
+       (log-edit-changelog-entry): Do it here instead.
+
 2009-09-25  Juanma Barranquero  <address@hidden>
 
        * bs.el (bs--get-file-name): Use `list-buffers-directory'
@@ -16,8 +24,8 @@
 
 2009-09-25  Devon Sean McCullough  <address@hidden>
 
-       * comint.el (comint-exec, comint-run, make-comint): Doc
-       fixes (Bug#4542).
+       * comint.el (comint-exec, comint-run, make-comint):
+       Doc fixes (Bug#4542).
 
 2009-09-25  Glenn Morris  <address@hidden>
 
@@ -58,8 +66,7 @@
        * textmodes/sgml-mode.el: Remove xml-mode alias.
 
        * files.el (auto-mode-alist, conf-mode-maybe)
-       (magic-fallback-mode-alist): Revert 2009-09-18 and 2009-09-21
-       changes.
+       (magic-fallback-mode-alist): Revert 2009-09-18 and 2009-09-21 changes.
 
 2009-09-24  Alan Mackenzie  <address@hidden>
 

Index: log-edit.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/log-edit.el,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- log-edit.el 19 Aug 2009 19:56:03 -0000      1.54
+++ log-edit.el 25 Sep 2009 17:57:13 -0000      1.55
@@ -560,7 +560,6 @@
 (defun log-edit-changelog-paragraph ()
   "Return the bounds of the ChangeLog paragraph containing point.
 If we are between paragraphs, return the previous paragraph."
-  (save-excursion
     (beginning-of-line)
     (if (looking-at "^[ \t]*$")
         (skip-chars-backward " \t\n" (point-min)))
@@ -570,13 +569,12 @@
             (point))
           (if (re-search-forward "^[ \t\n]*$" nil t)
               (match-beginning 0)
-            (point-max)))))
+          (point-max))))
 
 (defun log-edit-changelog-subparagraph ()
   "Return the bounds of the ChangeLog subparagraph containing point.
 A subparagraph is a block of non-blank lines beginning with an asterisk.
 If we are between sub-paragraphs, return the previous subparagraph."
-  (save-excursion
     (end-of-line)
     (if (search-backward "*" nil t)
         (list (progn (beginning-of-line) (point))
@@ -585,16 +583,17 @@
                 (if (re-search-forward "^[ \t]*[\n*]" nil t)
                     (match-beginning 0)
                   (point-max))))
-      (list (point) (point)))))
+    (list (point) (point))))
 
 (defun log-edit-changelog-entry ()
   "Return the bounds of the ChangeLog entry containing point.
 The variable `log-edit-changelog-full-paragraphs' decides whether an
 \"entry\" is a paragraph or a subparagraph; see its documentation string
 for more details."
+  (save-excursion
   (if log-edit-changelog-full-paragraphs
       (log-edit-changelog-paragraph)
-    (log-edit-changelog-subparagraph)))
+      (log-edit-changelog-subparagraph))))
 
 (defvar user-full-name)
 (defvar user-mail-address)
@@ -663,11 +662,17 @@
                                   pattern
                                   "\\($\\|[^[:alnum:]]\\)"))
 
-           (let (texts)
-             (while (re-search-forward pattern nil t)
+           (let (texts
+                  (pos (point)))
+             (while (and (not (eobp)) (re-search-forward pattern nil t))
                (let ((entry (log-edit-changelog-entry)))
-                 (push entry texts)
-                 (goto-char (elt entry 1))))
+                  (if (< (elt entry 1) (max (1+ pos) (point)))
+                      ;; This is not relevant, actually.
+                      nil
+                    (push entry texts))
+                  ;; Make sure we make progress.
+                  (setq pos (max (1+ pos) (elt entry 1)))
+                 (goto-char pos)))
 
              (cons (current-buffer) texts))))))))
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]