]> git.eshelyaron.com Git - emacs.git/commitdiff
Removed all `bookmark-xemacsp' conditional code relating to menus. Do
authorKarl Fogel <kfogel@red-bean.com>
Sat, 30 Dec 1995 19:52:40 +0000 (19:52 +0000)
committerKarl Fogel <kfogel@red-bean.com>
Sat, 30 Dec 1995 19:52:40 +0000 (19:52 +0000)
";;;###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'.

lisp/bookmark.el

index 73480a0b174efed97626888cd641e27b5ae52fcc..f80acc9db0cc535e5cc6df332e4db341bae0189a 100644 (file)
@@ -5,7 +5,7 @@
 ;; Author: Karl Fogel <kfogel@cyclic.com>
 ;; Maintainer: Karl Fogel <kfogel@cyclic.com>
 ;; Created: July, 1993
-;; Author's Update Number: 2.6.13
+;; Author's Update Number: see variable `bookmark-version'.
 ;; Keywords: bookmarks, placeholders, annotations
 
 ;;; Summary:
@@ -69,6 +69,8 @@
 ;; Thanks to Mikio Nakajima <PBC01764@niftyserve.or.jp> for many bugs
 ;; reported and fixed.
 
+;; Thank you, Michael Kifer, for contributing the XEmacs support.
+
 ;; Enough with the credits already, get on to the good stuff:
 
 ;; FAVORITE CHINESE RESTAURANT: 
 \f
 ;;;; Code:
 
+(defconst bookmark-version "2.6.19"
+  "Version number of bookmark.el.  This is not related to the version
+of Emacs bookmark comes with; it is used solely by bookmark's
+maintainers to avoid version confusion.")
+
 ;;; Misc comments:
 ;;
 ;; If variable bookmark-use-annotations is non-nil, an annotation is
@@ -176,12 +183,29 @@ following in your .emacs:
 
 ;;; No user-serviceable parts beyond this point.
 
+;; Is it XEmacs?
+(defconst bookmark-xemacsp
+  (string-match "\\(Lucid\\|Xemacs\\)" emacs-version))
+
+
 ;; Added  for lucid emacs  compatibility, db
 (or (fboundp 'defalias)  (fset 'defalias 'fset))
 
 ;; suggested for lucid compatibility by david hughes:
 (or (fboundp 'frame-height)  (defalias 'frame-height 'screen-height))
 
+;; This variable is probably obsolete now...
+(or (boundp 'baud-rate)
+    ;; some random value higher than 9600    
+    (setq baud-rate 19200))
+
+;; XEmacs apparently call this `buffer-substring-without-properties',
+;; sigh.
+(or (fboundp 'buffer-substring-no-properties)
+    (if (fboundp 'buffer-substring-without-properties)
+        (fset 'buffer-substring-no-properties
+              'buffer-substring-without-properties)
+      (fset 'buffer-substring-no-properties 'buffer-substring)))
 
 \f
 ;;; Keymap stuff:
@@ -474,7 +498,10 @@ Optional third arg OVERWRITE means replace any existing bookmarks with
 this name."
   (bookmark-maybe-load-default-file)
   (let ((stripped-name (copy-sequence name)))
-    (set-text-properties 0 (length stripped-name) nil stripped-name)
+    (or bookmark-xemacsp
+        ;; XEmacs's `set-text-properties' doesn't work on
+        ;; free-standing strings, apparently.
+        (set-text-properties 0 (length stripped-name) nil stripped-name))
     (if (and (bookmark-get-bookmark stripped-name) (not overwrite))
         ;; already existing boookmark under that name and
         ;; no prefix arg means just overwrite old bookmark
@@ -1958,6 +1985,33 @@ strings returned are not."
     (cons (concat "-*- " name " -*-") pane-list)))
 
 
+(defun bookmark-build-xemacs-menu (name entries function)
+  "Build a menu named NAME from the strings in ENTRIES.
+That is, ENTRIES is a list of strings that appear as the choices
+in the menu.
+The visible entries are truncated to `bookmark-menu-length', but the
+strings returned are not."
+  (let* (lst 
+        (pane-list
+         (progn
+           (while entries
+             (let ((str (car entries)))
+               (setq lst (cons
+                          (vector
+                           (if (> (length str) bookmark-menu-length)
+                               (substring str 0 bookmark-menu-length)
+                             str)
+                           (list function str)
+                           t)
+                          lst))
+               (setq entries (cdr entries))))
+           (nreverse lst))))
+
+    ;; Return the menu:
+    (append (if popup-menu-titles (list (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
@@ -2071,23 +2125,34 @@ corresponding bookmark function from Lisp \(the one without the
 ;; We MUST autoload EACH form used to set up this variable's value, so
 ;; that the whole job is done in loaddefs.el.
 
+;; FSF Emacs menubar stuff
+;; The odd conditional structure is due to the limitations of autoload
+;; cookies.
+
 ;;;###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)
+    (if menu-bar-final-items 
+        (setq menu-bar-final-items
+              (cons 'bookmark menu-bar-final-items)))
+  (setq menu-bar-final-items '(bookmark)))
+
 ;;;###autoload
 (define-key menu-bar-bookmark-map [load]
-  '("Load a Bookmark File" . bookmark-load))
+  '("Load a Bookmark File..." . bookmark-load))
 
 ;;;###autoload
 (define-key menu-bar-bookmark-map [write]
-  '("Write \(to another file\)" . bookmark-write))
+  '("Save Bookmarks As..." . bookmark-write))
 
 ;;;###autoload
 (define-key menu-bar-bookmark-map [save]
-  '("Save  \(in default file\)" . bookmark-save))
+  '("Save Bookmarks" . bookmark-save))
 
 ;;;###autoload
 (define-key menu-bar-bookmark-map [edit]