Subject: bug#16673: closed (Re: bug#16673: [saveplace] toggle-save-place doesn't toggle-save-place)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 28 Feb 2014 06:46:03 +0000

Your bug report

#16673: [saveplace] toggle-save-place doesn't toggle-save-place

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
16673: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16673
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#16673: [saveplace] toggle-save-place doesn't toggle-save-place
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Fri, 28 Feb 2014 01:44:58 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 24.4

Thanks; applied.

Subject: [saveplace] toggle-save-place doesn't toggle-save-place
From: Andy Sawyer <[email-masked]>
To: [email-masked]
Date: Thu, 6 Feb 2014 18:57:57 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi all,
  I noticed a while back that toggle-save-place doesn't actually toggle
save-place. Whilst I mostly run Aquamacs these days, the bug
exists in the existing codebase.

 In particular, in a buffer where save-place is nil, it is unconditionally
turned on. I submitted a path for this to the Aquamacs maintainer, and
include it here for your attention.

(I also took the opportunity to use prefix-numeric-value on the
argument, so it plays nice with C-u).

Regards,
 Andy

$ git diff saveplace.el
diff --git a/lisp/saveplace.el b/lisp/saveplace.el
index 91da103..0325475 100644
--- a/lisp/saveplace.el
+++ b/lisp/saveplace.el
@@ -156,12 +156,12 @@ file:
   (if (not (or buffer-file-name (and (derived-mode-p 'dired-mode)
      dired-directory)))
       (message "Buffer `%s' not visiting a file or directory" (buffer-name))
-    (if (and save-place (or (not parg) (<= parg 0)))
- (progn
-  (message "No place will be saved in this file")
-  (setq save-place nil))
-      (message "Place will be saved")
-      (setq save-place t))))
+    (setq save-place (if parg
+                         (> (prefix-numeric-value parg) 0)
+                       (not save-place)))
+    (message (if save-place
+                 "Place will be saved"
+               "No place will be saved in this file"))))