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

1.1     ! root        1: ;;                                     -[Thu Nov 17 09:51:33 1988 by layer]-
        !             2: ;;
        !             3: ;; The Allegro CL part of the Emacs/Lisp interface
        !             4: ;;
        !             5: ;; copyright (c) 1985, 1986 Franz Inc, Alameda, Ca. 
        !             6: ;; copyright (c) 1986, 1987, 1988 Franz Inc, Berkeley, Ca.
        !             7: ;;
        !             8: ;; The software, data and information contained herein are proprietary
        !             9: ;; to, and comprise valuable trade secrets of, Franz, Inc.  They are
        !            10: ;; given in confidence by Franz, Inc. pursuant to a written license
        !            11: ;; agreement, and stored only in accordance with the terms of such license.
        !            12: ;;
        !            13: ;; Restricted Rights Legend
        !            14: ;; ------------------------
        !            15: ;; Use, duplication, and disclosure by the Government are subject to
        !            16: ;; restrictions of Restricted Rights for Commercial Software developed
        !            17: ;; at private expense as specified in DOD FAR 52.227-7013 (c) (1) (ii).
        !            18: ;;
        !            19: ;; $Header: emacs.cl,v 1.1 88/11/17 12:15:21 layer Exp $
        !            20: 
        !            21: (provide :emacs)
        !            22: 
        !            23: (in-package :excl)
        !            24: 
        !            25: (eval-when (compile)
        !            26: 
        !            27: (defmacro do-package-symbols ((var &optional (package '*package*) result-form)
        !            28:                              &rest forms
        !            29:                              &environment env)
        !            30:   (let ((pkg (gensym))
        !            31:        (p (gensym))
        !            32:        (body (third (parse-body forms env))))
        !            33:     `(let ((,pkg ,package))
        !            34:       (if (not (packagep ,pkg)) (error "non-package to do-symbols: ~s" ,pkg))
        !            35:       (prog nil
        !            36:         (maphash #'(lambda (xx ,var)
        !            37:                      (declare (ignore xx) (ignore-if-unused ,var))
        !            38:                      ,@body)
        !            39:                  (fast (package-internal-symbols ,pkg)))
        !            40:         (maphash #'(lambda (xx ,var)
        !            41:                      (declare (ignore xx) (ignore-if-unused ,var))
        !            42:                      ,@body)
        !            43:                  (fast (package-external-symbols ,pkg)))
        !            44:         (return ,result-form)))))
        !            45: )
        !            46: 
        !            47: (defun list-all-completions (string &optional package functions-only)
        !            48:   "Return a list of all the accessible symbols with a print name starting
        !            49: with the substring STRING. If PACKAGE is given, then the reference package
        !            50: is PACKAGE."
        !            51:   (declare (optimize (speed 3)))
        !            52:   (let* ((substring (simple-string string))
        !            53:         (substring-length (fast (length substring)))
        !            54:         (substring-fixnums (apropos-fixnums substring substring-length))
        !            55:         result pkg packages)
        !            56:     (declare (simple-string substring))
        !            57:     (if* package
        !            58:        then (setq pkg (or (and (packagep package) package)
        !            59:                          (fasl-find-package package)))
        !            60:            (setq packages nil)
        !            61:        else (setq pkg *package*)
        !            62:            (setq packages (package-use-list pkg)))
        !            63:     (dolist (p packages)
        !            64:       (do-external-symbols (symbol p)
        !            65:        (if (and (or (null functions-only)
        !            66:                     (fboundp symbol))
        !            67:                 (list-all-completions-search symbol substring-fixnums
        !            68:                                              substring-length))
        !            69:            (push symbol result))))
        !            70:     (do-package-symbols (symbol pkg)
        !            71:       (if (and (or (null functions-only)
        !            72:                   (fboundp symbol))
        !            73:               (list-all-completions-search symbol substring-fixnums
        !            74:                                            substring-length))
        !            75:          (push symbol result)))
        !            76:     (delete-duplicates result :test #'eq)))
        !            77: 
        !            78: (defun list-all-completions-search (symbol fixnums flength)
        !            79:   (declare (optimize (speed 3) (safety 0))
        !            80:           (list fixnums)
        !            81:           (fixnum flength))
        !            82:   (let* ((name (symbol-name symbol))
        !            83:         (symbol-length (the fixnum (length name))))
        !            84:     (declare (type fixnum symbol-length))
        !            85:     (if (< symbol-length flength)
        !            86:        (return-from list-all-completions-search nil))
        !            87:     (do* ((index 0 (the fixnum (1+ index)))
        !            88:          (fixnums fixnums (cdr fixnums)))
        !            89:         ((= index flength) t)
        !            90:       (declare (type simple-string name)
        !            91:               (type fixnum index))
        !            92:       (unless (= (the fixnum (char-code (schar name index)))
        !            93:                 (the fixnum (car fixnums)))
        !            94:        (return nil)))))

unix.superglobalmegacorp.com

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