Annotation of 43BSDReno/contrib/emacs-18.55/dist-1.3/fi/clinit.cl, revision 1.1.1.1

1.1       root        1: ;; $Header: clinit.cl,v 1.8 89/02/14 17:17:05 layer Exp $
                      2: 
                      3: #|
                      4: 
                      5: ;; Put the following single line in your .login file:
                      6: 
                      7: setenv EMACSLIBRARY /usr/local/lib/emacs
                      8: 
                      9: ;; Then, put the following single form in your .emacs file:
                     10: 
                     11: (setq fi:unix-domain-socket
                     12:   (format "/tmp/%s_emacs_to_acl" (user-login-name)))
                     13: 
                     14: ;; Then, put the following single form in your .clinit file:
                     15: 
                     16: (defparameter *emacs-library*
                     17:   (let ((emacs-lib (si:getenv "EMACSLIBRARY")))
                     18:     (if emacs-lib (format nil "~a/lisp/fi/" emacs-lib))))
                     19: 
                     20: ;; plus one of the following three forms (after the above form)
                     21: 
                     22: ;;;;;;; Form 1
                     23: ;; this will load the ipc package and unconditionally start it up
                     24: (and *emacs-library*
                     25:      (load (merge-pathnames "clinit.cl" *emacs-library*))
                     26:      (load-and-start-ipc-package))
                     27: 
                     28: ;;;;;;; Form 2
                     29: ;; this will load the ipc package and start it up when `+ipc' is given on
                     30: ;; the Allegro CL command line.  For example, if you put the following in
                     31: ;; your .emacs file:
                     32: ;;
                     33: ;;     (setq fi:common-lisp-image-arguments '("+ipc"))
                     34: ;;
                     35: ;; then when you startup Allegro CL from within emacs (fi:common-lisp) you
                     36: ;; will automatically load and start the emacs/lisp interface.
                     37: (and *emacs-library*
                     38:      (find "+ipc" (system:command-line-arguments) :test #'string=)
                     39:      (load (merge-pathnames "clinit.cl" *emacs-library*))
                     40:      (load-and-start-ipc-package))
                     41: 
                     42: ;;;;;;; Form 3
                     43: ;; this will load the ipc package and require you to start it manually
                     44: ;; with the top-level command `:listen'.
                     45: (tpl:alias "listen" ()
                     46:   (and *emacs-library*
                     47:        (load (merge-pathnames "clinit.cl" *emacs-library*))
                     48:        (load-and-start-ipc-package)))
                     49: 
                     50: |#
                     51: 
                     52: ;;;;; NOTE:
                     53: ;; The rest of this file will be loaded when the forms you just added
                     54: ;; to your .clinit.cl are evaluated, so there is no need to put it in your
                     55: ;; .clinit.cl!!!
                     56: 
                     57: (defmacro svalue (package symbol)
                     58:   `(let ((p ,package) (s ,symbol))
                     59:      (values (find-symbol (symbol-name s) p))))
                     60: 
                     61: (defun load-and-start-ipc-package (&key (unix-domain nil udp))
                     62:   (excl::handler-case 
                     63:    (let ((emacs-library
                     64:          (format nil "~a/lisp/fi/" (si:getenv "EMACSLIBRARY"))))
                     65:      (if* emacs-library
                     66:        then (let* ((first (car si:*require-search-list*))
                     67:                    (do-pop (atom first)))
                     68:               (if do-pop (pop si:*require-search-list*))
                     69:               (push (make-pathname :directory emacs-library :type "fasl")
                     70:                     si:*require-search-list*)
                     71:               (push first si:*require-search-list*))
                     72:             (if (find-package :ipc)
                     73:                 (set (svalue :ipc :lisp-listener-daemon-ff-loaded) nil))
                     74:             (require :ipc)
                     75:             (require :emacs)
                     76:             (if udp (set (svalue :ipc :*unix-domain*) unix-domain))
                     77:             (let ((s (svalue :ipc :*socket-pathname*))
                     78:                   (socket-file
                     79:                    (format nil "/tmp/~a_emacs_to_acl"
                     80:                            (excl::userid-to-name
                     81:                             (funcall (svalue :ipc :getuid))))))
                     82:               (if (boundp s) (set s socket-file))
                     83:               (funcall (svalue :ipc :start-lisp-listener-daemon)))
                     84:        else (format t "~%EMACSLIBRARY is not in the environment~%")))
                     85:    (error (condition) (format t "error during ipc initialization: ~a"
                     86:                              condition))))

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.