-;;; saveplace.el --- automatically save place in files.
+;;; saveplace.el --- automatically save place in files
;; Copyright (C) 1993, 1994 Free Software Foundation, Inc.
-;; Author: Karl Fogel <kfogel@cs.oberlin.edu>
+;; Author: Karl Fogel <kfogel@red-bean.com>
;; Maintainer: FSF
;; Created: July, 1993
;; Keywords: bookmarks, placeholders
(or save-place-loaded (load-save-place-alist-from-file))
(if buffer-file-name
(progn
- (let ((cell (assoc buffer-file-name save-place-alist)))
+ (let ((cell (assoc buffer-file-name save-place-alist))
+ (position (if (not (eq major-mode 'hexl-mode))
+ (point)
+ (1+ (hexl-current-address)))))
(if cell
- (setq save-place-alist (delq cell save-place-alist))))
- (if save-place
- (setq save-place-alist
- (cons (cons buffer-file-name
- (if (not (eq major-mode 'hexl-mode))
- (point)
- (1+ (hexl-current-address))))
- save-place-alist))))))
+ (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-alist-to-file ()
(let ((file (expand-file-name save-place-file)))
(message "Saving places to %s..." file)
(set-buffer (get-buffer-create " *Saved Places*"))
(delete-region (point-min) (point-max))
- (if (file-readable-p file)
- (insert-file-contents file))
- (delete-region (point-min) (point-max))
- (goto-char (point-min))
(print save-place-alist (current-buffer))
(let ((version-control
(cond
(provide 'saveplace) ; why not...
;;; saveplace.el ends here
-