+2012-02-17 Tassilo Horn <tassilo@member.fsf.org>
+
+ * saveplace.el (save-place-ignore-files-regexp): New variable
+ allowing for excluding files from saving their location of point.
+ The default value matches the temporary commit message editing
+ files from Git, SVN, Bazaar, and Mercurial.
+ (save-place-to-alist): Use it.
+
2012-02-17 Lawrence Mitchell <wence@gmx.li>
Stefan Monnier <monnier@iro.umontreal.ca>
removable and network volumes."
:type 'regexp :group 'save-place)
+(defcustom save-place-ignore-files-regexp
+ "\\(?:COMMIT_EDITMSG\\|hg-editor-[[:alnum:]]+\\.txt\\|svn-commit\\.tmp\\|bzr_log\\.[[:alnum:]]+\\)$"
+ "Regexp matching files for which no location should be recorded.
+Useful for temporary file such as commit message files that are
+automatically created by the VCS."
+ :type 'regexp :group 'save-place)
+
(defun toggle-save-place (&optional parg)
"Toggle whether to save your place in this file between sessions.
If this mode is enabled, point is recorded when you kill the buffer
;; file. If not, do so, then feel free to modify the alist. It
;; will be saved again when Emacs is killed.
(or save-place-loaded (load-save-place-alist-from-file))
- (if buffer-file-name
- (progn
- (let ((cell (assoc buffer-file-name save-place-alist))
- (position (if (not (eq major-mode 'hexl-mode))
- (point)
- (with-no-warnings
- (1+ (hexl-current-address))))))
- (if cell
- (setq save-place-alist (delq cell save-place-alist)))
- (if (and save-place
- (not (= position 1))) ;; Optimize out the degenerate case.
- (setq save-place-alist
- (cons (cons buffer-file-name position)
- save-place-alist)))))))
+ (when (and buffer-file-name
+ (not (string-match save-place-ignore-files-regexp
+ buffer-file-name)))
+ (let ((cell (assoc buffer-file-name save-place-alist))
+ (position (if (not (eq major-mode 'hexl-mode))
+ (point)
+ (with-no-warnings
+ (1+ (hexl-current-address))))))
+ (if cell
+ (setq save-place-alist (delq cell save-place-alist)))
+ (if (and save-place
+ (not (= position 1))) ;; Optimize out the degenerate case.
+ (setq save-place-alist
+ (cons (cons buffer-file-name position)
+ save-place-alist))))))
(defun save-place-forget-unreadable-files ()
"Remove unreadable files from `save-place-alist'.