[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/bookmark.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/bookmark.el |
Date: |
Mon, 11 Aug 2003 13:30:02 -0400 |
Index: emacs/lisp/bookmark.el
diff -c emacs/lisp/bookmark.el:1.64 emacs/lisp/bookmark.el:1.65
*** emacs/lisp/bookmark.el:1.64 Sat Aug 2 18:04:16 2003
--- emacs/lisp/bookmark.el Mon Aug 11 13:30:02 2003
***************
*** 456,476 ****
Optional second arg DEFAULT is a string to return if the user enters
the empty string."
(bookmark-maybe-load-default-file) ; paranoia
! (let* ((completion-ignore-case bookmark-completion-ignore-case)
! (default default)
! (prompt (if default
! (concat prompt (format " (%s): " default))
! (concat prompt ": ")))
! (str
! (completing-read prompt
! bookmark-alist
! nil
! 0
! nil
! 'bookmark-history)))
! (if (string-equal "" str)
! (list default)
! (list str))))
(defmacro bookmark-maybe-historicize-string (string)
--- 456,476 ----
Optional second arg DEFAULT is a string to return if the user enters
the empty string."
(bookmark-maybe-load-default-file) ; paranoia
! (if (listp last-nonmenu-event)
! (bookmark-menu-popup-paned-menu t prompt (bookmark-all-names))
! (let* ((completion-ignore-case bookmark-completion-ignore-case)
! (default default)
! (prompt (if default
! (concat prompt (format " (%s): " default))
! (concat prompt ": ")))
! (str
! (completing-read prompt
! bookmark-alist
! nil
! 0
! nil
! 'bookmark-history)))
! (if (string-equal "" str) default str))))
(defmacro bookmark-maybe-historicize-string (string)
***************
*** 924,933 ****
(defun bookmark-edit-annotation (bookmark)
"Pop up a buffer for editing bookmark BOOKMARK's annotation."
! (let ((buf (current-buffer))
! (point (point)))
! (pop-to-buffer (generate-new-buffer-name "*Bookmark Annotation Compose*"))
! (bookmark-edit-annotation-mode bookmark)))
(defun bookmark-insert-current-bookmark ()
--- 924,931 ----
(defun bookmark-edit-annotation (bookmark)
"Pop up a buffer for editing bookmark BOOKMARK's annotation."
! (pop-to-buffer (generate-new-buffer-name "*Bookmark Annotation Compose*"))
! (bookmark-edit-annotation-mode bookmark))
(defun bookmark-insert-current-bookmark ()
***************
*** 1046,1052 ****
will then jump to the new location, as well as recording it in place
of the old one in the permanent bookmark record."
(interactive
! (bookmark-completing-read "Jump to bookmark" bookmark-current-bookmark))
(bookmark-maybe-historicize-string bookmark)
(let ((cell (bookmark-jump-noselect bookmark)))
(and cell
--- 1044,1051 ----
will then jump to the new location, as well as recording it in place
of the old one in the permanent bookmark record."
(interactive
! (list (bookmark-completing-read "Jump to bookmark"
! bookmark-current-bookmark)))
(bookmark-maybe-historicize-string bookmark)
(let ((cell (bookmark-jump-noselect bookmark)))
(and cell
***************
*** 1139,1145 ****
This makes an already existing bookmark point to that file, instead of
the one it used to point at. Useful when a file has been renamed
after a bookmark was set in it."
! (interactive (bookmark-completing-read "Bookmark to relocate"))
(bookmark-maybe-historicize-string bookmark)
(bookmark-maybe-load-default-file)
(let* ((bmrk-filename (bookmark-get-filename bookmark))
--- 1138,1144 ----
This makes an already existing bookmark point to that file, instead of
the one it used to point at. Useful when a file has been renamed
after a bookmark was set in it."
! (interactive (list (bookmark-completing-read "Bookmark to relocate")))
(bookmark-maybe-historicize-string bookmark)
(bookmark-maybe-load-default-file)
(let* ((bmrk-filename (bookmark-get-filename bookmark))
***************
*** 1156,1162 ****
"Insert the name of the file associated with BOOKMARK.
Optional second arg NO-HISTORY means don't record this in the
minibuffer history list `bookmark-history'."
! (interactive (bookmark-completing-read "Insert bookmark location"))
(or no-history (bookmark-maybe-historicize-string bookmark))
(let ((start (point)))
(prog1
--- 1155,1161 ----
"Insert the name of the file associated with BOOKMARK.
Optional second arg NO-HISTORY means don't record this in the
minibuffer history list `bookmark-history'."
! (interactive (list (bookmark-completing-read "Insert bookmark location")))
(or no-history (bookmark-maybe-historicize-string bookmark))
(let ((start (point)))
(prog1
***************
*** 1191,1197 ****
While you are entering the new name, consecutive C-w's insert
consecutive words from the text of the buffer into the new bookmark
name."
! (interactive (bookmark-completing-read "Old bookmark name"))
(bookmark-maybe-historicize-string old)
(bookmark-maybe-load-default-file)
--- 1190,1196 ----
While you are entering the new name, consecutive C-w's insert
consecutive words from the text of the buffer into the new bookmark
name."
! (interactive (list (bookmark-completing-read "Old bookmark name")))
(bookmark-maybe-historicize-string old)
(bookmark-maybe-load-default-file)
***************
*** 1224,1230 ****
`bookmark-alist' is nil. If that happens, you need to load in some
bookmarks. See help on function `bookmark-load' for more about
this."
! (interactive (bookmark-completing-read "Insert bookmark contents"))
(bookmark-maybe-historicize-string bookmark)
(bookmark-maybe-load-default-file)
(let ((orig-point (point))
--- 1223,1229 ----
`bookmark-alist' is nil. If that happens, you need to load in some
bookmarks. See help on function `bookmark-load' for more about
this."
! (interactive (list (bookmark-completing-read "Insert bookmark contents")))
(bookmark-maybe-historicize-string bookmark)
(bookmark-maybe-load-default-file)
(let ((orig-point (point))
***************
*** 1247,1253 ****
Optional second arg BATCH means don't update the bookmark list buffer,
probably because we were called from there."
(interactive
! (bookmark-completing-read "Delete bookmark" bookmark-current-bookmark))
(bookmark-maybe-historicize-string bookmark)
(bookmark-maybe-load-default-file)
(let ((will-go (bookmark-get-bookmark bookmark)))
--- 1246,1253 ----
Optional second arg BATCH means don't update the bookmark list buffer,
probably because we were called from there."
(interactive
! (list (bookmark-completing-read "Delete bookmark"
! bookmark-current-bookmark)))
(bookmark-maybe-historicize-string bookmark)
(bookmark-maybe-load-default-file)
(let ((will-go (bookmark-get-bookmark bookmark)))
***************
*** 1533,1541 ****
(if (interactive-p)
(switch-to-buffer (get-buffer-create "*Bookmark List*"))
(set-buffer (get-buffer-create "*Bookmark List*")))
! (let ((buffer-read-only nil))
! (delete-region (point-max) (point-min))
! (goto-char (point-min)) ;sure are playing it safe...
(insert "% Bookmark\n- --------\n")
(bookmark-maybe-sort-alist)
(mapcar
--- 1533,1540 ----
(if (interactive-p)
(switch-to-buffer (get-buffer-create "*Bookmark List*"))
(set-buffer (get-buffer-create "*Bookmark List*")))
! (let ((inhibit-read-only t))
! (erase-buffer)
(insert "% Bookmark\n- --------\n")
(bookmark-maybe-sort-alist)
(mapcar
***************
*** 1638,1644 ****
(goto-char (point-min))
(forward-line 2)
(setq bookmark-bmenu-hidden-bookmarks ())
! (let ((buffer-read-only nil))
(while (< (point) (point-max))
(let ((bmrk (bookmark-bmenu-bookmark)))
(setq bookmark-bmenu-hidden-bookmarks
--- 1637,1643 ----
(goto-char (point-min))
(forward-line 2)
(setq bookmark-bmenu-hidden-bookmarks ())
! (let ((inhibit-read-only t))
(while (< (point) (point-max))
(let ((bmrk (bookmark-bmenu-bookmark)))
(setq bookmark-bmenu-hidden-bookmarks
***************
*** 1671,1677 ****
(backward-word 1)
(setq bookmark-bmenu-bookmark-column (current-column)))
(save-excursion
! (let ((buffer-read-only nil))
(while bookmark-bmenu-hidden-bookmarks
(move-to-column bookmark-bmenu-bookmark-column t)
(bookmark-kill-line)
--- 1670,1676 ----
(backward-word 1)
(setq bookmark-bmenu-bookmark-column (current-column)))
(save-excursion
! (let ((inhibit-read-only t))
(while bookmark-bmenu-hidden-bookmarks
(move-to-column bookmark-bmenu-bookmark-column t)
(bookmark-kill-line)
***************
*** 1774,1780 ****
(interactive)
(beginning-of-line)
(if (bookmark-bmenu-check-position)
! (let ((buffer-read-only nil))
(delete-char 1)
(insert ?>)
(forward-line 1)
--- 1773,1779 ----
(interactive)
(beginning-of-line)
(if (bookmark-bmenu-check-position)
! (let ((inhibit-read-only t))
(delete-char 1)
(insert ?>)
(forward-line 1)
***************
*** 1793,1799 ****
(goto-char (point-min))
(while (re-search-forward "^>" nil t)
(setq tem (bookmark-bmenu-bookmark))
! (let ((buffer-read-only nil))
(delete-char -1)
(insert ?\ ))
(or (string-equal tem bmrk)
--- 1792,1798 ----
(goto-char (point-min))
(while (re-search-forward "^>" nil t)
(setq tem (bookmark-bmenu-bookmark))
! (let ((inhibit-read-only t))
(delete-char -1)
(insert ?\ ))
(or (string-equal tem bmrk)
***************
*** 1940,1946 ****
(beginning-of-line)
(if (bookmark-bmenu-check-position)
(progn
! (let ((buffer-read-only nil))
(delete-char 1)
;; any flags to reset according to circumstances? How about a
;; flag indicating whether this bookmark is being visited?
--- 1939,1945 ----
(beginning-of-line)
(if (bookmark-bmenu-check-position)
(progn
! (let ((inhibit-read-only t))
(delete-char 1)
;; any flags to reset according to circumstances? How about a
;; flag indicating whether this bookmark is being visited?
***************
*** 1967,1973 ****
(interactive)
(beginning-of-line)
(if (bookmark-bmenu-check-position)
! (let ((buffer-read-only nil))
(delete-char 1)
(insert ?D)
(forward-line 1)
--- 1966,1972 ----
(interactive)
(beginning-of-line)
(if (bookmark-bmenu-check-position)
! (let ((inhibit-read-only t))
(delete-char 1)
(insert ?D)
(forward-line 1)
***************
*** 2047,2195 ****
;;; Menu bar stuff. Prefix is "bookmark-menu".
- (defun bookmark-menu-build-paned-menu (name entries)
- "Build a multi-paned menu named NAME from the strings in ENTRIES.
- That is, ENTRIES is a list of strings which appear as the choices
- in the menu. The number of panes depends on the number of entries.
- The visible entries are truncated to `bookmark-menu-length', but the
- strings returned are not."
- (let* ((f-height (/ (frame-height) 2))
- (pane-list
- (let (temp-pane-list
- (iter 0))
- (while entries
- (let (lst
- (count 0))
- (while (and (< count f-height) entries)
- (let ((str (car entries)))
- (setq lst (cons
- (cons
- (if (> (length str) bookmark-menu-length)
- (substring str 0 bookmark-menu-length)
- str)
- str)
- lst))
- (setq entries (cdr entries))
- (setq count (1+ count))))
- (setq iter (1+ iter))
- (setq
- temp-pane-list
- (cons
- (cons
- (format "-*- %s (%d) -*-" name iter)
- (nreverse lst))
- temp-pane-list))))
- (nreverse temp-pane-list))))
-
- ;; Return the menu:
- (cons (concat "-*- " name " -*-") pane-list)))
-
-
(defun bookmark-menu-popup-paned-menu (event name entries)
"Pop up multi-paned menu at EVENT, return string chosen from ENTRIES.
That is, ENTRIES is a list of strings which appear as the choices
in the menu.
! The number of panes depends on the number of entries."
! (interactive "e")
! (x-popup-menu event (bookmark-menu-build-paned-menu name entries)))
!
!
! (defun bookmark-menu-popup-paned-bookmark-menu (event name)
! "Pop up menu of bookmarks, return chosen bookmark.
! Pop up at EVENT, menu's name is NAME.
! The number of panes depends on the number of bookmarks."
! (bookmark-menu-popup-paned-menu event name (bookmark-all-names)))
!
!
! (defun bookmark-popup-menu-and-apply-function (func-sym menu-label event)
! ;; help function for making menus that need to apply a bookmark
! ;; function to a string.
! (let* ((choice (bookmark-menu-popup-paned-bookmark-menu
! event menu-label)))
! (if choice (apply func-sym (list choice)))))
!
!
! ;;;###autoload
! (defun bookmark-menu-insert (event)
! "Insert the text of the file pointed to by bookmark BOOKMARK.
! You may have a problem using this function if the value of variable
! `bookmark-alist' is nil. If that happens, you need to load in some
! bookmarks. See help on function `bookmark-load' for more about
! this.
!
! Warning: this function only takes an EVENT as argument. Use the
! corresponding bookmark function from Lisp \(the one without the
! \"-menu-\" in its name\)."
! (interactive "e")
! (bookmark-popup-menu-and-apply-function
! 'bookmark-insert "Insert Bookmark Contents" event))
!
!
! ;;;###autoload
! (defun bookmark-menu-jump (event)
! "Jump to bookmark BOOKMARK (a point in some file).
! You may have a problem using this function if the value of variable
! `bookmark-alist' is nil. If that happens, you need to load in some
! bookmarks. See help on function `bookmark-load' for more about
! this.
!
! Warning: this function only takes an EVENT as argument. Use the
! corresponding bookmark function from Lisp \(the one without the
! \"-menu-\" in its name\)."
! (interactive "e")
! (bookmark-popup-menu-and-apply-function
! 'bookmark-jump "Jump to Bookmark" event))
!
!
! ;;;###autoload
! (defun bookmark-menu-locate (event)
! "Insert the name of the file associated with BOOKMARK.
! \(This is not the same as the contents of that file\).
!
! Warning: this function only takes an EVENT as argument. Use the
! corresponding bookmark function from Lisp \(the one without the
! \"-menu-\" in its name\)."
! (interactive "e")
! (bookmark-popup-menu-and-apply-function
! 'bookmark-insert-location "Insert Bookmark Location" event))
!
!
! ;;;###autoload
! (defun bookmark-menu-rename (event)
! "Change the name of OLD-BOOKMARK to NEWNAME.
! If called from keyboard, prompts for OLD-BOOKMARK and NEWNAME.
! If called from menubar, OLD-BOOKMARK is selected from a menu, and
! prompts for NEWNAME.
! If called from Lisp, prompts for NEWNAME if only OLD-BOOKMARK was
! passed as an argument. If called with two strings, then no prompting
! is done. You must pass at least OLD-BOOKMARK when calling from Lisp.
!
! While you are entering the new name, consecutive C-w's insert
! consecutive words from the text of the buffer into the new bookmark
! name.
!
! Warning: this function only takes an EVENT as argument. Use the
! corresponding bookmark function from Lisp \(the one without the
! \"-menu-\" in its name\)."
! (interactive "e")
! (bookmark-popup-menu-and-apply-function
! 'bookmark-rename "Rename Bookmark" event))
!
!
! ;;;###autoload
! (defun bookmark-menu-delete (event)
! "Delete the bookmark named NAME from the bookmark list.
! Removes only the first instance of a bookmark with that name. If
! there are one or more other bookmarks with the same name, they will
! not be deleted. Defaults to the \"current\" bookmark \(that is, the
! one most recently used in this file, if any\).
!
! Warning: this function only takes an EVENT as argument. Use the
! corresponding bookmark function from Lisp \(the one without the
! \"-menu-\" in its name\)."
! (interactive "e")
! (bookmark-popup-menu-and-apply-function
! 'bookmark-delete "Delete Bookmark" event))
;; Thanks to Roland McGrath for fixing menubar.el so that the
--- 2046,2083 ----
;;; Menu bar stuff. Prefix is "bookmark-menu".
(defun bookmark-menu-popup-paned-menu (event name entries)
"Pop up multi-paned menu at EVENT, return string chosen from ENTRIES.
That is, ENTRIES is a list of strings which appear as the choices
in the menu.
! The number of panes depends on the number of entries.
! The visible entries are truncated to `bookmark-menu-length', but the
! strings returned are not."
! (let ((f-height (/ (frame-height) 2))
! (pane-list nil)
! (iter 0))
! (while entries
! (let (lst
! (count 0))
! (while (and (< count f-height) entries)
! (let ((str (car entries)))
! (push (cons
! (if (> (length str) bookmark-menu-length)
! (substring str 0 bookmark-menu-length)
! str)
! str)
! lst)
! (setq entries (cdr entries))
! (setq count (1+ count))))
! (setq iter (1+ iter))
! (push (cons
! (format "-*- %s (%d) -*-" name iter)
! (nreverse lst))
! pane-list)))
!
! ;; Popup the menu and return the string.
! (x-popup-menu event (cons (concat "-*- " name " -*-")
! (nreverse pane-list)))))
;; Thanks to Roland McGrath for fixing menubar.el so that the
***************
*** 2201,2210 ****
;; Emacs menubar stuff.
;;;###autoload
! (defvar menu-bar-bookmark-map (make-sparse-keymap "Bookmark functions"))
;;;###autoload
! (defalias 'menu-bar-bookmark-map (symbol-value 'menu-bar-bookmark-map))
;; make bookmarks appear toward the right side of the menu.
(if (boundp 'menu-bar-final-items)
--- 2089,2110 ----
;; Emacs menubar stuff.
;;;###autoload
! (defvar menu-bar-bookmark-map
! (let ((map (make-sparse-keymap "Bookmark functions")))
! (define-key map [load] '("Load a Bookmark File..." . bookmark-load))
! (define-key map [write] '("Save Bookmarks As..." . bookmark-write))
! (define-key map [save] '("Save Bookmarks" . bookmark-save))
! (define-key map [edit] '("Edit Bookmark List" . bookmark-bmenu-list))
! (define-key map [delete] '("Delete Bookmark" . bookmark-delete))
! (define-key map [rename] '("Rename Bookmark" . bookmark-rename))
! (define-key map [locate] '("Insert Location" . bookmark-locate))
! (define-key map [insert] '("Insert Contents" . bookmark-insert))
! (define-key map [set] '("Set Bookmark" . bookmark-set))
! (define-key map [jump] '("Jump to Bookmark" . bookmark-jump))
! map))
;;;###autoload
! (defalias 'menu-bar-bookmark-map menu-bar-bookmark-map)
;; make bookmarks appear toward the right side of the menu.
(if (boundp 'menu-bar-final-items)
***************
*** 2213,2267 ****
(cons 'bookmark menu-bar-final-items)))
(setq menu-bar-final-items '(bookmark)))
- ;;;###autoload (define-key menu-bar-bookmark-map [load]
- ;;;###autoload '("Load a Bookmark File..." . bookmark-load))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [write]
- ;;;###autoload '("Save Bookmarks As..." . bookmark-write))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [save]
- ;;;###autoload '("Save Bookmarks" . bookmark-save))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [edit]
- ;;;###autoload '("Edit Bookmark List" . bookmark-bmenu-list))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [delete]
- ;;;###autoload '("Delete Bookmark" . bookmark-menu-delete))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [rename]
- ;;;###autoload '("Rename Bookmark" . bookmark-menu-rename))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [locate]
- ;;;###autoload '("Insert Location" . bookmark-menu-locate))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [insert]
- ;;;###autoload '("Insert Contents" . bookmark-menu-insert))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [set]
- ;;;###autoload '("Set Bookmark" . bookmark-set))
-
- ;;;###autoload (define-key menu-bar-bookmark-map [jump]
- ;;;###autoload '("Jump to Bookmark" . bookmark-menu-jump))
-
;;;; end bookmark menu stuff ;;;;
;;; Load Hook
(defvar bookmark-load-hook nil
! "Hook to run at the end of loading bookmark.")
;;; Exit Hook, called from kill-emacs-hook
(defvar bookmark-exit-hook nil
! "Hook to run when emacs exits")
(defun bookmark-exit-hook-internal ()
"Save bookmark state, if necessary, at Emacs exit time.
This also runs `bookmark-exit-hooks'."
! (and
! (progn (run-hooks 'bookmark-exit-hooks) t)
! bookmark-alist
! (bookmark-time-to-save-p t)
! (bookmark-save)))
(add-hook 'kill-emacs-hook 'bookmark-exit-hook-internal)
--- 2113,2136 ----
(cons 'bookmark menu-bar-final-items)))
(setq menu-bar-final-items '(bookmark)))
;;;; end bookmark menu stuff ;;;;
;;; Load Hook
(defvar bookmark-load-hook nil
! "Hook run at the end of loading bookmark.")
;;; Exit Hook, called from kill-emacs-hook
(defvar bookmark-exit-hook nil
! "Hook run when emacs exits.")
(defun bookmark-exit-hook-internal ()
"Save bookmark state, if necessary, at Emacs exit time.
This also runs `bookmark-exit-hooks'."
! (run-hooks 'bookmark-exit-hooks)
! (and bookmark-alist
! (bookmark-time-to-save-p t)
! (bookmark-save)))
(add-hook 'kill-emacs-hook 'bookmark-exit-hook-internal)