+(defun save-place--setup-hooks (add)
+ (cond
+ (add
+ (add-hook 'find-file-hook #'save-place-find-file-hook t)
+ (add-hook 'dired-initial-position-hook #'save-place-dired-hook)
+ (unless noninteractive
+ (add-hook 'kill-emacs-hook #'save-place-kill-emacs-hook))
+ (add-hook 'kill-buffer-hook #'save-place-to-alist))
+ (t
+ ;; We should remove the hooks, but only if save-place-mode
+ ;; is nil everywhere. Is it worth the trouble, tho?
+ ;; (unless (or (default-value 'save-place-mode)
+ ;; (cl-some <save-place-local-mode-p> (buffer-list)))
+ ;; (remove-hook 'find-file-hook #'save-place-find-file-hook)
+ ;; (remove-hook 'dired-initial-position-hook #'save-place-dired-hook)
+ ;; (remove-hook 'kill-emacs-hook #'save-place-kill-emacs-hook)
+ ;; (remove-hook 'kill-buffer-hook #'save-place-to-alist))
+ )))
+