that it works, because I can't build the 20.6 raw tree...
2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
* bookmark.el (bookmark-insert-location, bookmark-bmenu-list)
(bookmark-bmenu-show-filenames, bookmark-bmenu-hide-filenames):
Call display-color-p and display-mouse-p instead of looking at
window-system.
code abstracted out of `bookmark-jump-noselect'. Now tries info
extensions as well as compression extensions.
(bookmark-jump-noselect): Use above new func.
(bookmark-jump-noselect): Use an inner save-window-excursion.
(bookmark-bmenu-switch-other-window): Temporarily set
pop-up-windows, same-window-buffer-names, and same-window-regexps,
to override Info's special display behaviors.
load the new list carefully, renaming bookmarks as necessary.
In docstring, mention new renaming behavior.
Optional arg OVERWRITE replaces inaccurately-named REVERT.
If file loaded was bookmark-default-file, then set
bookmarks-already-loaded to t.
(bookmark-import-new-list): New func.
(bookmark-maybe-rename): New func, helper to above.
(bookmark-set-name): Accept bookmark as either string (behaves
same as before) or list (treat it as a bookmark record).
(bookmark-set, bookmark-maybe-load-default-file)
(bookmark-jump-noselect, bookmark-rename)
(bookmark-show-annotation): Discard pointless `progn's.
(bookmark-bmenu-mark, bookmark-bmenu-unmark)
(bookmark-bmenu-backup-unmark, bookmark-bmenu-delete-backwards):
Renormalize position after all else is done.
(bookmark-edit-annotation-mode, bookmark-bmenu-list)
(bookmark-show-annotation, bookmark-show-all-annotations):
Use `x' instead of `(not (eq x nil))'.
(bookmark-yank-word): Inner save-excursion changed to progn.
(bookmark-send-annotation, bookmark-send-edited-annotation)
(bookmark-insert): Use buffer-string instead of buffer-substring.
(bookmark-make-cell): Make sure annotation and info-node strings
contain no text properties.
(bookmark-relocate): Remember to rebuild bmenu buffer after a
bookmark has been relocated.
(bookmark-bmenu-check-position): Return a meaningful value --
callers have apparently been assuming this anyway.
(bookmark-build-xemacs-menu): Unused function deleted.
(bookmark-version): Removed this variable; the Emacs version suffices.
(bookmark-bmenu-other-window-with-mouse): New function.
(bookmark-bmenu-mode-map): Bind mouse-2.
(bookmark-bmenu-list, bookmark-insert-location,
bookmark-bmenu-hide-filenames): Put text property on bookmarks.
(bookmark-bmenu-show-filenames): Remove text property from
white spaces generated by `move-to-column'.
(bookmark-bmenu-bookmark): Use `buffer-substring-no-properties'
instead of `buffer-substring'.
(bookmark-bmenu-mode-map): bind C-c C-c to bookmark-bmenu-this-window,
analogously to other Emacs listing modes such as *grep* and *occur*.
(bookmark-version): upped to 2.6.4.
bookmark-make-cell.
(bookmark-make-cell): if new optional arg `info-node' is non-nil, make
it be the bookmark's info-node.
(bookmark-info-current-node): new func.
(bookmark-set): call bookmark-make, passing result from above
bookmark-info-current-node.
(bookmark-send-annotation): same as above.
(bookmark-locate): defalias to bookmark-insert-location for backward
compatibility.
(bookmark-version): upped to 2.6.3.
";;;###autoloads" the as they were done in 2.6.13.
(bookmark-version): new var, set to 2.6.19.
(baud-rate): set to 19200 if not already bound.
(bookmark-make): don't call `set-text-properties' on a Lisp string if
this is XEmacs, because it won't work.
(buffer-substring-no-properties): if this is not fboundp, then fset it
to `buffer-substring-without-properties'.
Moved user variables to own section.
(bookmark-alist): Better doc string.
(bookmark-insert-current-bookmark): Doc string.
(bookmark-insert-buffer-name): Doc string.
(bookmark-set): Take optional NAME argument.
(bookmark-bmenu-select): Use member to test for string's presence.
Use a more efficent test at end, as suggested by Mikio Nakajima.
used to set up this variable's value, so that the whole job
is done in loaddefs.el.
(bookmark-menu-locate, bookmark-menu-jump, bookmark-menu-insert)
(bookmark-menu-delete, bookmark-menu-rename): Add autoloads.
Defvarred some variables to nil, solely to avoid compilation warnings.
Use "Author's Update Number:" instead of "Version:".
(bookmark-history): new var.
(bookmark-completing-read): use `bookmark-history'.
(bookmark-historicize-string): new macro.
Use this everywhere `bookmark-completing-read' is used, because
`completing-read' won't get a chance to add to `bookmark-history' if
we were invoked via a menu.
(bookmark-rename): use `bookmark-history' when reading the new name.
No need for the strange C-o binding anymore.
(bookmark-insert-buffer-name): Use bookmark-buffer-name.
Replaces bookmark-insert-current-file-name.
(bookmark-make-cell): Use set-text-properties,
not format, to clear text properties.
Changed format of bookmark-alist and therefore of bookmark files.
Have version stamps in bookmark files.
Automatically upgrade old bookmark files to new format.
Changed name of default bookmark file to ".emacs.bmk".
Replaced "Bookmark-menu" with "bookmark-bmenu". The
capitalization signified nothing; "bmenu" means "buffer-menu"
-- that is, bmenu code is for the dired-like of bookmarks that
appears when `list-bookmarks' is run, and the "bookmark-menu"
prefix is for the menu-bar.
Internally, use an alist instead of hardcoded list-positions
for storing bookmark information.
Applied <johng@media.mit.edu>'s patches for annotation support:
(bookmark-send-annotation, bookmark-read-annotation-mode)
(bookmark-edit-annotation-mode, bookmark-default-annotation-text)
(bookmark-read-annotation-text-func, bookmark-read-annotation)
(bookmark-send-edited-annotation, bookmark-edit-annotation):
New functions.
(bookmark-get-bookmark, bookmark-get-bookmark-record)
(bookmark-name-from-full-record, bookmark-set-name)
(bookmark-get-annotation, bookmark-set-annotation)
(bookmark-get-info-node, bookmark-set-info-node)
(bookmark-get-filename, bookmark-set-filename)
(bookmark-get-position, bookmark-set-position)
(bookmark-get-front-context-string, bookmark-set-front-context-string)
(bookmark-get-rear-context-string, bookmark-set-rear-context-string):
New subroutines.
(bookmark-file-format-version, bookmark-end-of-version-stamp-marker):
New variables.
(bookmark-grok-file-format-version, bookmark-maybe-upgrade-file-format)
(bookmark-upgrade-version-0-alist, bookmark-upgrade-file-format-from-0)
(bookmark-insert-file-format-version-stamp): New functions.
(bookmark-maybe-load-default-file):
Renamed from bookmark-try-default-file'.
(bookmark-old-default-file): New variable.
(bookmark-default-file): Renamed from `bookmark-file'.
New initial value, ".emacs.bmk".
(bookmark-make-cell): Use backquote.
Produce with the new format (Format Version 1).
Use `format' to strip text-properties.
(bookmark-write-file): Use `pp' instead of `princ'.
Call `bookmark-insert-file-format-version-stamp'.
(bookmark-all-names, bookmark-menu-popup-paned-bookmark-menu)
(bookmark-menu-build-paned-menu, bookmark-menu-popup-paned-menu)
(bookmark-insert-location): New functions.
(bookmark-completing-read): New function. Everyone who called
`completing-read' in the interactive spec now calls this.
(bookmark-load-hook): New hook.
(bookmark-make-menu-alist): Function deleted.
(bookmark-popup-menu-and-apply-function): replaces
`bookmark-make-menu-with-function'.
(bookmark-load): Use `bookmark-alist-from-buffer'.
Call `bookmark-maybe-upgrade-file-format'.
(bookmark-set): If Info mode, record Info-current-node.
Use `bookmark-bmenu-surreptitiously-rebuild-list'.
(bookmark-buffer-file-name): Handle Info files.
(bookmark-buffer-name): If Info mode, return Info-current-node.
(bookmark-jump-noselect): For info node, use Info-goto-node.
Use the helper functions, don't mess with the raw
alist (except in completion, which we'll take care of later).
Don't count on `bookmark-search-size' being correct; use the
length of `forward-str' and `behind-str' instead.
(bookmark-relocate): Use the helper functions; don't mess
with the raw alist except in completion.
(bookmark-rename): C-o in minibuffer now inserts old name.
(bookmark-delete): New arg BATCH.
(bookmark-bmenu-execute-deletions): Was `bookmark-bmenu-execute'.
Just call bookmark-delete with the BATCH arg.
Set the modification count and maybe save when done.
Save point intuitively.
(bookmark-insert-current-file-name): Just use `file-name-nondirectory'.
(bookmark-location): Made non-interactive.
(bookmark-bmenu-list): Replaces `list-bookmarks'.
Delete arg ANNOTATION. Use mapcar to simplify.
If not interactive-p, then use `set-buffer' instead of
`switch-to-buffer'.
(bookmark-kill-line): New function, used instead of kill-line.
(bookmark-search-size): Init to 16 instead of 500.
Got rid of ###autoload to put a bookmark menu on the menu-bar. Now it
will appear on the File menu, fourth item down. menu-bar.el will be
modified to do this.
(bookmark-load, bookmark-write-file): made enable-local-eval be nil
when loading a bookmark file, since bookmark context strings can
contain eval forms from the files in which the bookmarks are set, and
we don't want them evalled when .emacs-bkmrks is found!
upped version to 2.4.1 after doing this.
(bookmark-version-control): New variable.
(bookmark-jump): bookmark-jump now gives a
default value if no bookmark is entered manually.
(bookmark-set): Default to bookmark-current-bookmark or
buffer-name the way bookmark-jump does.
(ctl-x-map): Check if C-x r is a prefix before using it as one.
Include string "Bookmarks" in defining
[menu-bar bookmark] in global-map in the menu-bar code.
(menu-bar-bookmark-map): Supply t as 4th arg of autoload.
(bookmark-jump-noselect): New subroutine taken from
bookmark-jump. Support compressed files.
(bookmark-jump): Call bookmark-jump-noselect.
Offer to relocate if necessary, but change default dir to that of
the old bookmark in read-file-name.
(bookmark-set, bookmark-rename, bookmark-delete,
bookmark-write-file, bookmark-load, Bookmark-menu-show-filenames,
Bookmark-menu-hide-filenames, Bookmark-menu-bookmark,
Bookmark-menu-save, Bookmark-menu-load): Fixed the save-excursion
bugs by wrapping things in save-window-excursion as well.
(bookmark-make-menu-bar-alist): Added sorting.
(bookmark-map): Added new keybindings.
(bookmark-try-default-file): Set bookmarks-already-loaded to t after the load.
(list-bookmarks): Added bookmark menu stuff.
(Bookmark-menu-*): New functions.