From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michal Nazarewicz Newsgroups: gmane.emacs.devel Subject: [PATCHv5 3/4] `remember-append-to-file' appending to buffer bug fix Date: Fri, 28 Jun 2013 16:40:54 +0200 Message-ID: <4641fe38732b829855187836b2e9b16089514238.1372429581.git.mina86@mina86.com> References: NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1372430510 27202 80.91.229.3 (28 Jun 2013 14:41:50 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 28 Jun 2013 14:41:50 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jun 28 16:41:51 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UsZrz-0001vO-0p for ged-emacs-devel@m.gmane.org; Fri, 28 Jun 2013 16:41:51 +0200 Original-Received: from localhost ([::1]:60341 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UsZry-0000Ik-KC for ged-emacs-devel@m.gmane.org; Fri, 28 Jun 2013 10:41:50 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46776) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UsZrO-0007kY-Vm for emacs-devel@gnu.org; Fri, 28 Jun 2013 10:41:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UsZrK-0001wl-Sx for emacs-devel@gnu.org; Fri, 28 Jun 2013 10:41:14 -0400 Original-Received: from mail-ea0-x229.google.com ([2a00:1450:4013:c01::229]:34442) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UsZrK-0001v3-IH for emacs-devel@gnu.org; Fri, 28 Jun 2013 10:41:10 -0400 Original-Received: by mail-ea0-f169.google.com with SMTP id h15so1097483eak.0 for ; Fri, 28 Jun 2013 07:41:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :in-reply-to:references; bh=Hgx6xguUP+0qd82r9BwwCKY/FHRWjZ2HUx+remzOKsA=; b=e1M7FcC03lUEPX62gf9BSfOPHDqRYpVcc4fGfOYCH6CM9EBwONINcXcUvxFGp5BKBa akXUrfdHlD4heAnsNgfB8mVBt614ecyeW8qCZsQwa7xNQEv1zBMK3BjrJb5ozEpFI5Ap 3hhPcne64h8nynEpNVg18Yb8iDjibwqdsULANAGqZ6nbaqgeAbnkab0QH+ZAB3HG2CeK 8iUB1JL0IdNzOk/pmRM9pInKV9VMc1kL+NiCj3KYisqax+6DTUzZXfW649fXfQOTpPlV uvlC5uv1o6wZ1IVeENuSwAXhs4SJ9aaI2ao63Yf0vGrL7KbOITQQKojZ7T57FWNF6oQP +LGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :in-reply-to:references:x-gm-message-state; bh=Hgx6xguUP+0qd82r9BwwCKY/FHRWjZ2HUx+remzOKsA=; b=h8ossGnERcXIFEU/eEbNl62y2qiksMVhXREOzrDrYSwvBBLorG1g52JjfuH0cuvhCV WeYpBGOhWTKfDke+q2dWEVNt3oVPYLcRPF1hWLBdCFXxhlp3bLjBc/Rixl8RK+1eQ2Jp MeQPAy5bF8WFxRnxBOEXZxx7hP/MOHAhYRcbZuS7eeNAegM9qB687lQlWiJmMA7Q1ixT UkE+2sUY4nmV5Wb+YtqgjKkpO/KMstAfoZxxYsBBsGPSE7HFZaBdxFFE265sxME4b/fG rxclfbvr4/3OwRAC5LN3byfRRS1JCU3XkIGi+5HSidNhiC2qEpVt3Qd/If1/shArfSyS vsMg== X-Received: by 10.15.26.199 with SMTP id n47mr14184937eeu.88.1372430469738; Fri, 28 Jun 2013 07:41:09 -0700 (PDT) Original-Received: from mpn-glaptop.corp.google.com ([2620:0:105f:301:3899:bd8c:7f4a:bec8]) by mx.google.com with ESMTPSA id i2sm10938994eeu.4.2013.06.28.07.41.08 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 28 Jun 2013 07:41:09 -0700 (PDT) X-Mailer: git-send-email 1.8.3.1 In-Reply-To: In-Reply-To: Original-References: X-Gm-Message-State: ALoCoQlomkQ1k7EUADigmeGvhHB4Lz2UFQjOfEiVgnSjxNXccRrEAhKXJ01nMpd6bgng1DecG3dBvMlDCpCZuFg8Dm38+1HEa4autuAnp8uE6mvniN1KL+NxxrW2+va1Ue+Q8DeHpWMnpKm1qvWHwycFVnJU02XkCwpsIv/mCBtCBa5tiZb8P4+0fwxHLfJd/aO/cERj7gzq X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4013:c01::229 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:161218 Archived-At: From: Michal Nazarewicz * 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 + + * 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 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