summaryrefslogtreecommitdiff
path: root/lisp/saveplace.el
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1997-09-25 01:01:05 +0000
committerKarl Heuer <kwzh@gnu.org>1997-09-25 01:01:05 +0000
commit298f79d49a3e8d9edd95076a9b3951fd638b435b (patch)
tree8d2d8aec6796ac19d6e86aceb44a88334df5d39e /lisp/saveplace.el
parent3de7a85a3db0f85ffbd338d9379a4d8788666e79 (diff)
downloademacs-298f79d49a3e8d9edd95076a9b3951fd638b435b.tar.gz
(save-place-to-alist): Optimize out the degenerate
case when point is 1.
Diffstat (limited to 'lisp/saveplace.el')
-rw-r--r--lisp/saveplace.el19
1 files changed, 10 insertions, 9 deletions
diff --git a/lisp/saveplace.el b/lisp/saveplace.el
index b3d3a24a2f5..5ac3f344c62 100644
--- a/lisp/saveplace.el
+++ b/lisp/saveplace.el
@@ -125,16 +125,17 @@ To save places automatically in all files, put this in your `.emacs' file:
(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)))