emacs-devel
[Top][All Lists]
Advanced

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

[PATCHv4 2/4] `remember-append-to-file' appending to buffer bug fix


From: Michal Nazarewicz
Subject: [PATCHv4 2/4] `remember-append-to-file' appending to buffer bug fix
Date: Mon, 24 Jun 2013 14:35:46 +0200

* remember.el (remember-append-to-file): Function used
`find-buffer-visiting' to check whether a file visiting
`remember-data-file` existed but then `get-buffer-visiting' to
retrieve it.  However, the latter requires exact string match so
it could return nil even though the former found a buffer.
Storing result of the `find-buffer-visiting' fixes the issue (and
saves one lookup).
---
 lisp/ChangeLog             | 10 ++++++++++
 lisp/textmodes/remember.el | 25 ++++++++++++++-----------
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 784415f..75b9533 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,13 @@
+2013-06-24  Michal Nazarewicz  <address@hidden>
+
+       * remember.el (remember-append-to-file): Function used
+       `find-buffer-visiting' to check whether a file visiting
+       `remember-data-file` existed but then `get-buffer-visiting' to
+       retrieve it.  However, the latter requires exact string match so
+       it could return nil even though the former found a buffer.
+       Storing result of the `find-buffer-visiting' fixes the issue (and
+       saves one lookup).
+
 2013-06-24  Daiki Ueno  <address@hidden>
 
        * epg.el (epg-make-context): Check if PROTOCOL is valid; embed the
diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el
index 5782f25..a14a34c 100644
--- a/lisp/textmodes/remember.el
+++ b/lisp/textmodes/remember.el
@@ -395,19 +395,22 @@ Subject: %s\n\n"
   "Remember, with description DESC, the given TEXT."
   (let ((text (buffer-string))
         (desc (remember-buffer-desc)))
-    (with-temp-buffer
-      (insert "\n" remember-leader-text (current-time-string)
-              " (" desc ")\n\n" text)
-      (if (not (bolp))
-          (insert "\n"))
-      (if (find-buffer-visiting remember-data-file)
-          (let ((remember-text (buffer-string)))
-            (set-buffer (get-file-buffer remember-data-file))
+    (let ((buf (find-buffer-visiting remember-data-file)))
+      (if buf
+          (with-current-buffer buf
             (save-excursion
               (goto-char (point-max))
-              (insert remember-text)
-              (when remember-save-after-remembering (save-buffer))))
-        (append-to-file (point-min) (point-max) remember-data-file)))))
+              (insert "\n" remember-leader-text (current-time-string)
+                      " (" desc ")\n\n" text)
+              (unless (bolp)
+                (insert "\n")))
+            (if remember-save-after-remembering (save-buffer)))
+        (with-temp-buffer
+          (insert "\n" remember-leader-text (current-time-string)
+                  " (" desc ")\n\n" text)
+          (unless (bolp)
+            (insert "\n"))
+          (append-to-file (point-min) (point-max) remember-data-file))))))
 
 (defun remember-region (&optional beg end)
   "Remember the data from BEG to END.
-- 
1.8.3.1




reply via email to

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