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

From: Andy Sawyer <[email-masked]>
Date: Thu, 6 Feb 2014 18:57:57 +0000

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"))))