diff lisp/hyperbole/hsite.el @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/hyperbole/hsite.el	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,291 @@
+;;!emacs
+;;
+;; FILE:         hsite.el
+;; SUMMARY:      Site-specific setup for Hyperbole
+;; USAGE:        GNU Emacs Lisp Library
+;; KEYWORDS:     hypermedia, local
+;;
+;; AUTHOR:       Bob Weiner
+;; ORG:          Brown U.
+;;
+;; ORIG-DATE:    15-Apr-91 at 00:48:49
+;; LAST-MOD:      3-Nov-95 at 22:51:43 by Bob Weiner
+;;
+;; This file is part of Hyperbole.
+;; Available for use and distribution under the same terms as GNU Emacs.
+;;
+;; Copyright (C) 1991-1995, Free Software Foundation, Inc.
+;; Developed with support from Motorola Inc.
+;;
+;; DESCRIPTION:  
+;;
+;;   See the "README" file for installation instructions.
+;;
+;;   "hsite.el" may be byte-compiled if you like but normally it is not.
+;;
+;;   Be sure to have users load any personal mail/news initializations
+;;   before they load this file if any of Hyperbole's mail or news
+;;   support features are enabled either herein or within their personal
+;;   Hyperbole initializations.  Otherwise, the mail/news support may
+;;   not be configured properly.
+;;
+;; DESCRIP-END.
+
+;;; ************************************************************************
+;;; Read the comments and modify as desired.
+;;; ************************************************************************
+
+(message "Initializing Hyperbole, please wait...")
+
+;;; ************************************************************************
+;;; SMART SETTINGS
+;;; ************************************************************************
+
+(defvar hkey-always-display-menu nil
+  "*Non-nil means always display the Smart Menu window when the Action or Assist Key is pressed and the Smart Menu system has been loaded.
+If a Smart Menu is already displayed, perform another Action or Assist Key
+function.")
+
+(defvar smart-scroll-proportional t
+  "*Non-nil means Smart Keys should scroll relative to current line when pressed at the end of a line.
+Action Key moves current line to top of window.  Assist Key moves current
+line to bottom of window.  Repeated presses then scroll up or down a
+windowful.  Nil value instead ignores current line and always scrolls up or
+down a windowful.")
+
+;;; ************************************************************************
+;;; HYPERBOLE DIRECTORY SETTING
+;;; ************************************************************************
+
+(require 'hyperbole)
+
+;;; ************************************************************************
+;;; INTERNET SETTINGS
+;;; ************************************************************************
+
+;; String to be used in the call: (hpath:rfc rfc-num) to create an ange-ftp
+;; path to the RFC document for 'rfc-num'.  Uncomment and alter this setting
+;; if another site is closer for you.
+;; (setq hpath:rfc "/anonymous@ds.internic.net:rfc/rfc%s.txt")
+
+;; When a user creates an explicit button, Hyperbole tries to store her
+;; Internet e-mail address with the button by using the formula, email-id =
+;; <user-id>@<domainname>.  Not every system has its domainname set
+;; up properly, however.  If you do a {M-x load-file hypb.elc RET} and then
+;; hit {C-x C-e} after the closing paren of the following function,
+;; (hypb:domain-name), you will see whether or not yours is configured
+;; properly.  If it is not, uncomment the following line and set it to the
+;; proper value.
+
+;; (setenv "DOMAINNAME" "mot.com")
+
+;;; ************************************************************************
+;;; XEMACS, GNU EMACS 19, AND EPOCH CONFIGURATION
+;;; ************************************************************************
+
+;; No-op unless set by one of the conditionals below.
+(defun hui:but-flash ())
+
+(if (and hyperb:emacs19-p window-system)
+    (progn
+      (require 'hui-em19-b)
+      ;; Highlight explicit buttons whenever a file is read in.
+      (var:append 'find-file-hooks '(hproperty:but-create))
+      (fset 'hui:but-flash 'hproperty:but-flash)
+      ;;
+      ;; Substitute for the nil argument below a valid X color name with
+      ;; which to highlight buttons if the default highlighting does not
+      ;; appeal to you. See "hui-em19-b.el" for how this works.
+      (hproperty:cycle-but-color nil)
+      ;;
+      ;; Non-nil means visually emphasize that button under mouse cursor is
+      ;; selectable.
+      (setq hproperty:but-emphasize-p nil)
+      ;;
+      ;; If you find that the Hyperbole button flash time is too slow
+      ;; or too fast, adjust it here.
+      (setq hproperty:but-flash-time 1000)
+      ))
+
+(if (and hyperb:lemacs-p (not noninteractive))
+    (progn
+      (require 'hui-xe-but)
+      ;;
+      ;; If running XEmacs 19.8 or below, don't highlight explicit buttons
+      ;; whenever a file is read in since this can cause a sporadic crash
+      ;; when find-files are done.
+      (if hyperb:kotl-p (var:append 'find-file-hooks '(hproperty:but-create)))
+      (fset 'hui:but-flash 'hproperty:but-flash)
+      ;;
+      ;; Substitute for the nil argument below a valid X color name with
+      ;; which to highlight buttons if the default highlighting does not
+      ;; appeal to you. See "hui-xe-but.el" for how this works.
+      (hproperty:cycle-but-color nil)
+      ;;
+      ;; Non-nil means visually emphasize that button under mouse cursor is
+      ;; selectable.
+      (setq hproperty:but-emphasize-p nil)
+      ;;
+      ;; If you find that the Hyperbole button flash time is too slow
+      ;; or too fast, adjust it here.
+      (setq hproperty:but-flash-time 1000)
+      ))
+
+(if (and hyperb:epoch-p (string= hyperb:epoch-p "V4"))
+    (progn
+      (require 'hui-epV4-b)
+      ;; Highlight explicit buttons whenever a file is read in.
+      (var:append 'find-file-hooks '(hproperty:but-create))
+      (fset 'hui:but-flash 'hproperty:but-flash)
+      ;; Substitute for the nil argument below a valid X color name with
+      ;; which to highlight buttons if the default highlighting does not
+      ;; appeal to you. See "hui-epV4-b.el" for how this works.
+      (hproperty:cycle-but-color nil)
+      ;; If you use Epoch and find that the Hyperbole button flash time is
+      ;; too slow or too fast, adjust it here.
+      (defvar hproperty:but-flash-time 1000
+	"Machine specific value for empty loop counter, Epoch but flash delay.")
+      ))
+
+;;; ************************************************************************
+;;; EXTERNAL SYSTEM ENCAPSULATIONS
+;;; ************************************************************************
+
+;;; Support for encapsulations of any of these external systems may be
+;;; enabled here.  You should be familiar with the external system before
+;;; you try to use the Hyperbole support for it.
+;;; Possible system encapsulations to include within the innermost set of
+;;; parentheses are:
+;;;   hsys-wais hsys-hbase
+;;; See files with the same name, e.g. "hsys-wais.el" for details on each
+;;; system.
+;;;
+;;; Note: hsys-w3 is automatically loaded by default by Hyperbole.
+(setq hibtypes:begin-load-hook
+      (list (function (lambda () (mapcar 'require '())))))
+
+;;; ************************************************************************
+;;; ONLINE LIBRARY CONFIGURATION
+;;; ************************************************************************
+
+;;; Support for online library document id references is loaded here but
+;;; requires some additional configuration before use.  See the DESCRIPTION
+;;; section in "hib-doc-id.el" for complete installation and use information.
+;;;
+(setq hibtypes:end-load-hook
+      (list (function (lambda () (mapcar 'require '(hib-doc-id))))))
+
+;;; ************************************************************************
+;;; HYPERBOLE INITIALIZATION
+;;; ************************************************************************
+
+;;; This call loads the whole Hyperbole system.
+;;; You may want to look at this file just to see what it does.
+;;;
+(require 'hinit)
+;;;
+;;; This call initializes the Hyperbole system for use.
+;;;
+(hyperb:init)
+
+;;; ************************************************************************
+;;; FILE VIEWER COMMAND SETTINGS
+;;; ************************************************************************
+
+(defvar hpath:display-alist
+  (let ((info-suffix "\\.info\\(-[0-9]+\\)?\\(\\.gz\\|\\.Z\\|-z\\)?$"))
+    (list
+     ;; Run the OO-Browser on OOBR or OOBR-FTR Environment files.
+     '("OOBR\\(-FTR\\)?$" . br-env-browse)
+     ;; Display the top node from Info online manuals.
+     (cons
+      (concat (` (, info-suffix)) "\\|/info/[^.]+$\\|/info-local/[^.]+$")
+      (` (lambda (file)
+	   (if (and (string-match (, info-suffix) file)
+		    (match-beginning 1))
+	       ;; Removed numbered trailer to get basic filename.
+	       (setq file (concat (substring file 0 (match-beginning 1))
+				  (substring file (match-end 1)))))
+	   (require 'info)
+	   (condition-case ()
+	       (Info-find-node file "Top")
+	     (error (if (and file (file-exists-p file))
+			(progn
+			  (if (get-buffer "*info*")
+			      (kill-buffer "*info*"))
+			  (Info-find-node file "*" nil t))
+		      (error "Invalid file")))))))
+     ))
+  "*Alist of (FILENAME-REGEXP . EDIT-FUNCTION) elements for calling special
+functions to display particular file types within Emacs.  See also
+'hpath:file-alist' for external display program settings.")
+
+;;; `hyperb:window-system' variable from "hversion.el" must be defined
+;;; prior to this variable definition.
+;;;
+(defvar hpath:find-alist
+  (let ((nextstep-suffixes '(("\\.\\(adaptor\\|app\\|bshlf\\|clr\\|concur\\|create\\|diagram\\|dp\\|e?ps\\|frame\\|gif\\|locus\\|Mesa\\|nib\\|project\\|rtf\\|sense\\|tiff\\|tree\\)$" . "open")))
+	(x-suffixes '(("\\.e?ps$" . "ghostview")
+		      ("\\.ps\\.g?[zZ]$" . "zcat %s | ghostview -")
+		      ("\\.\\(gif\\|tiff?\\|xbm\\|pm\\|pbm\\|jpe?g\\)"  . "xv")
+		      ("\\.xwd$" . "xwud -noclick -in")
+		      ("\\.ra?s$" . "snapshot -l")
+		      ("\\.xpm$" . "sxpm")
+		      ("\\.\\(fm\\|frame\\|mif\\)$" . "maker")
+		      ("\\.\\(doc\\|boo\\)$" . "ileaf")
+		      )))
+    (if (memq window-system '(dps ns))
+	nextstep-suffixes
+      (cdr (assoc hyperb:window-system
+		  (list (cons "emacs19" x-suffixes)  ; GNU Emacs V19 under X
+			(cons "lemacs"  x-suffixes)  ; XEmacs under X
+			(cons "xterm"   x-suffixes)  ; GNU Emacs V18 under X
+			(cons "epoch"   x-suffixes)  ; UofI Epoch under X
+			'("sun"     . nil)       ; SunView
+			(cons "next" nextstep-suffixes)
+			'("apollo"  . nil)       ; Display Manager
+			)))))
+  "*Alist of (FILENAME-REGEXP . EDIT-PROGRAM) elements for using window system
+dependent external programs to edit/display particular file types.  See also
+'hpath:display-alist' for internal, window-system independent display
+settings.")
+
+;;; ************************************************************************
+;;; LINK PATH VARIABLE SUBSTITUTION SETTINGS
+;;; ************************************************************************
+
+;;; The following variable permits sharing of links over wide areas, where
+;;; links may contain variable references whose values may differ between
+;;; link creator and link activator.
+;;;
+;;; When a link is created, if its path contains a match for any of the
+;;; variable values in hpath:variables, then the variable's symbol is
+;;; substituted for the literal value.  Hyperbole then replaces the variable
+;;; with a matching value when the link is resolved.
+;;;
+(defvar hpath:variables
+  '(hyperb:dir Info-directory Info-directory-list sm-directory load-path exec-path)
+  "*List of Emacs Lisp variable symbols to substitute within matching link paths.
+Each variable value, if bound, must be either a pathname or a list of pathnames.")
+
+;;; ************************************************************************
+;;; HYPERBOLE LOCAL VARIABLE SUPPORT
+;;; ************************************************************************
+
+;;; Uncomment this if you really need to be able to use Hyperbole variables
+;;; (and others with colons in their names) within file local variable lists.
+;;; See the source file for more details.
+;;;
+;;  (require 'hlvar)
+
+;;; ************************************************************************
+;;; SITE-SPECIFIC ADDITIONS - Add your Hyperbole configuration additions here.
+;;; ************************************************************************
+
+;;; ************************************************************************
+;;; END OF HYPERBOLE CONFIGURATION
+;;; ************************************************************************
+
+(provide 'hsite)
+
+(message "Hyperbole is ready for action.")