emacs-devel
[Top][All Lists]
Advanced

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

[PATCHv5 3/4] `remember-append-to-file' appending to buffer bug fix


From: Michal Nazarewicz
Subject: [PATCHv5 3/4] `remember-append-to-file' appending to buffer bug fix
Date: Fri, 28 Jun 2013 16:40:54 +0200

From: 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).
---
 lisp/ChangeLog             | 10 ++++++++++
 lisp/textmodes/remember.el | 25 ++++++++++++++-----------
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 678f040..983e0a4 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,13 @@
+2013-06-28  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-28  Michal Nazarewicz  <address@hidden>
 
        Add `remember-notes' function to store random notes across Emacs
diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el
index 0fe36f8..aa10aeb 100644
--- a/lisp/textmodes/remember.el
+++ b/lisp/textmodes/remember.el
@@ -408,19 +408,22 @@ exists) might be changed.  This is only of importance if 
you are using
   "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]