emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs-24 r117368: * lisp/vc/log-edit.el (log-edit-changelo


From: Stefan Monnier
Subject: [Emacs-diffs] emacs-24 r117368: * lisp/vc/log-edit.el (log-edit-changelog-entries): Don't both visiting
Date: Wed, 09 Jul 2014 18:54:12 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117368
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17970
committer: Stefan Monnier <address@hidden>
branch nick: emacs-24
timestamp: Wed 2014-07-09 14:54:06 -0400
message:
  * lisp/vc/log-edit.el (log-edit-changelog-entries): Don't both visiting
  a non-existing file.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/vc/log-edit.el            logedit.el-20091113204419-o5vbwnq5f7feedwu-1776
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-07-09 18:46:33 +0000
+++ b/lisp/ChangeLog    2014-07-09 18:54:06 +0000
@@ -1,5 +1,8 @@
 2014-07-09  Stefan Monnier  <address@hidden>
 
+       * vc/log-edit.el (log-edit-changelog-entries): Don't both visiting
+       a non-existing file (bug#17970).
+
        * faces.el (face-name): Undo last change.
        (x-resolve-font-name): Don't call face-name (bug#17956).
 

=== modified file 'lisp/vc/log-edit.el'
--- a/lisp/vc/log-edit.el       2014-07-01 15:15:03 +0000
+++ b/lisp/vc/log-edit.el       2014-07-09 18:54:06 +0000
@@ -905,44 +905,45 @@
              ;; that memoizing which is undesired here.
              (setq change-log-default-name nil)
              (find-change-log)))))
-    (with-current-buffer (find-file-noselect changelog-file-name)
-      (unless (eq major-mode 'change-log-mode) (change-log-mode))
-      (goto-char (point-min))
-      (if (looking-at "\\s-*\n") (goto-char (match-end 0)))
-      (if (not (log-edit-changelog-ours-p))
-         (list (current-buffer))
-       (save-restriction
-         (log-edit-narrow-changelog)
-         (goto-char (point-min))
-
-         ;; Search for the name of FILE relative to the ChangeLog.  If that
-         ;; doesn't occur anywhere, they're not using full relative
-         ;; filenames in the ChangeLog, so just look for FILE; we'll accept
-         ;; some false positives.
-         (let ((pattern (file-relative-name
-                         file (file-name-directory changelog-file-name))))
-           (if (or (string= pattern "")
-                   (not (save-excursion
-                          (search-forward pattern nil t))))
-               (setq pattern (file-name-nondirectory file)))
-
-            (setq pattern (concat "\\(^\\|[^[:alnum:]]\\)"
-                                  (regexp-quote pattern)
-                                  "\\($\\|[^[:alnum:]]\\)"))
-
-           (let (texts
-                  (pos (point)))
-             (while (and (not (eobp)) (re-search-forward pattern nil t))
-               (let ((entry (log-edit-changelog-entry)))
-                  (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))))))))
+    (when (file-exists-p changelog-file-name)
+      (with-current-buffer (find-file-noselect changelog-file-name)
+        (unless (eq major-mode 'change-log-mode) (change-log-mode))
+        (goto-char (point-min))
+        (if (looking-at "\\s-*\n") (goto-char (match-end 0)))
+        (if (not (log-edit-changelog-ours-p))
+            (list (current-buffer))
+          (save-restriction
+            (log-edit-narrow-changelog)
+            (goto-char (point-min))
+
+            ;; Search for the name of FILE relative to the ChangeLog.  If that
+            ;; doesn't occur anywhere, they're not using full relative
+            ;; filenames in the ChangeLog, so just look for FILE; we'll accept
+            ;; some false positives.
+            (let ((pattern (file-relative-name
+                            file (file-name-directory changelog-file-name))))
+              (if (or (string= pattern "")
+                      (not (save-excursion
+                             (search-forward pattern nil t))))
+                  (setq pattern (file-name-nondirectory file)))
+
+              (setq pattern (concat "\\(^\\|[^[:alnum:]]\\)"
+                                    (regexp-quote pattern)
+                                    "\\($\\|[^[:alnum:]]\\)"))
+
+              (let (texts
+                    (pos (point)))
+                (while (and (not (eobp)) (re-search-forward pattern nil t))
+                  (let ((entry (log-edit-changelog-entry)))
+                    (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)))))))))
 
 (defun log-edit-changelog-insert-entries (buffer beg end &rest files)
   "Insert the text from BUFFER between BEG and END.


reply via email to

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