261 lines
9.0 KiB
Scheme
261 lines
9.0 KiB
Scheme
#| -*-Scheme-*-
|
||
|
||
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
||
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||
2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
|
||
2017, 2018, 2019, 2020 Massachusetts Institute of Technology
|
||
|
||
This file is part of MIT/GNU Scheme.
|
||
|
||
MIT/GNU Scheme is free software; you can redistribute it and/or modify
|
||
it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation; either version 2 of the License, or (at
|
||
your option) any later version.
|
||
|
||
MIT/GNU Scheme is distributed in the hope that it will be useful, but
|
||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License
|
||
along with MIT/GNU Scheme; if not, write to the Free Software
|
||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
|
||
USA.
|
||
|
||
|#
|
||
|
||
;;; program to load package contents
|
||
;;; **** This program (unlike most .ldr files) is not generated by a program.
|
||
|
||
(declare (usual-integrations))
|
||
|
||
(lambda (package/loader key-alist)
|
||
(let ((to-avoid-list (if (file-exists? "edwin.bad")
|
||
(fasload "edwin.bad")
|
||
'()))
|
||
(bad-environment-tag '*bad-environment*))
|
||
(let ((->environment
|
||
(lambda (spec)
|
||
(if (name->package spec)
|
||
(->environment spec)
|
||
(cons bad-environment-tag spec)))))
|
||
(define (load file env)
|
||
(cond ((string-member? file to-avoid-list)
|
||
(newline)
|
||
(write-string "* skipping ")
|
||
(write-string file)
|
||
false)
|
||
((and (pair? env)
|
||
(eq? (car env) bad-environment-tag))
|
||
(error "Attempting to load into non-existent package"
|
||
file (cdr env)))
|
||
(else (package/loader file env)
|
||
true)))
|
||
(define (load-set files env)
|
||
(if (null? files)
|
||
true
|
||
(let ((val (load (car files) env)))
|
||
(boolean-and val (load-set (cdr files) env)))))
|
||
(define (load-set-and-initialize! files env)
|
||
(and (load-set files env)
|
||
((access initialize-package! env))))
|
||
(define (lookup var)
|
||
(cond ((assq var key-alist) => cdr)
|
||
(else false)))
|
||
(define (load-case var alist env)
|
||
(for-each (lambda (key/file)
|
||
(and (eq? (lookup var) (car key/file))
|
||
(load (cdr key/file) env)))
|
||
alist))
|
||
(define string-member? (member-procedure string=?))
|
||
(define (boolean-and a b) (and a b))
|
||
|
||
(if (memq (lookup 'os-type) '(unix nt))
|
||
(begin
|
||
(load-option 'subprocess)
|
||
(load-option 'synchronous-subprocess)))
|
||
(load-option 'rb-tree)
|
||
(load-option 'hash-table)
|
||
(load-option 'regular-expression)
|
||
(load-option 'mime-codec)
|
||
|
||
(let ((environment (->environment '(edwin))))
|
||
(load "utils" environment)
|
||
(load "adapters" (->environment '(edwin adapters)))
|
||
(load "string" (->environment '(edwin string)))
|
||
(load "nvector" environment)
|
||
(load "ring" environment)
|
||
(load "strtab" environment)
|
||
(load "strpad" environment)
|
||
(load "macros" (->environment '(edwin macros)))
|
||
(load "class" environment)
|
||
(load "clscon" (->environment '(edwin class-constructor)))
|
||
(load "clsmac" (->environment '(edwin class-macros)))
|
||
(load "xform"
|
||
(->environment
|
||
'(edwin class-macros transform-instance-variables)))
|
||
(load "paths" environment)
|
||
(load "struct" environment)
|
||
(load "grpops" (->environment '(edwin group-operations)))
|
||
(load "txtprp" (->environment '(edwin text-properties)))
|
||
(load "regops" environment)
|
||
(load "motion" environment)
|
||
(load "search" environment)
|
||
(load "image" environment)
|
||
(load "comman" environment)
|
||
(load "docstr" environment)
|
||
(if (not (memq (lookup 'os-type) '(dos nt)))
|
||
(set! (access *external-doc-strings?* environment) #f))
|
||
(load "comtab" (->environment '(edwin comtab)))
|
||
(load "modes" environment)
|
||
(load "buffer" environment)
|
||
(load "bufset" environment)
|
||
(load "display" (->environment '(edwin display-type)))
|
||
(load "screen" (->environment '(edwin screen)))
|
||
|
||
(let ((environment (->environment '(edwin window))))
|
||
(load "window" environment)
|
||
(load "utlwin" environment)
|
||
(load "bufwin" environment)
|
||
(load "bufwfs" environment)
|
||
(load "bufwiu" environment)
|
||
(load "bufwmc" environment)
|
||
(load "comwin" (->environment '(edwin window combination)))
|
||
(load "modwin" environment)
|
||
(load "buffrm" environment)
|
||
(load "edtfrm" environment))
|
||
|
||
(load "calias" environment)
|
||
(load "edtstr" environment)
|
||
(load "editor" environment)
|
||
(load "curren" environment)
|
||
;; "undo" must be loaded after "editor":
|
||
(load "undo" (->environment '(edwin undo)))
|
||
(load "simple" environment)
|
||
(load "debuge" environment)
|
||
(load "modlin" (->environment '(edwin modeline-string)))
|
||
(load "input" (->environment '(edwin keyboard)))
|
||
(load "prompt" (->environment '(edwin prompt)))
|
||
(load "comred" (->environment '(edwin command-reader)))
|
||
(load "bufinp" (->environment '(edwin buffer-input-port)))
|
||
(load "bufout" (->environment '(edwin buffer-output-port)))
|
||
(load "winout" (->environment '(edwin window-output-port)))
|
||
(load "things" environment)
|
||
(load "tparse" environment)
|
||
(load "syntax" environment)
|
||
(load "regexp" (->environment '(edwin regular-expression)))
|
||
(load "comatch" environment)
|
||
(load "keyparse" (->environment '(edwin keyparser)))
|
||
(load "linden" (->environment '(edwin lisp-indentation)))
|
||
|
||
(case (lookup 'os-type)
|
||
((unix)
|
||
(load "unix" environment))
|
||
((dos nt)
|
||
(load "dos" environment)
|
||
(load "dosfile" environment)))
|
||
|
||
(load "fileio" environment)
|
||
|
||
(let ((env (->environment '(edwin screen console-screen))))
|
||
(load-set-and-initialize! '("termcap" "tterm") env)
|
||
(if (memq (lookup 'os-type) '(dos nt))
|
||
(begin
|
||
(load "ansi" env)
|
||
(if (load "bios" env)
|
||
((access bios-initialize-package! env))))))
|
||
|
||
(case (lookup 'os-type)
|
||
((nt)
|
||
(load-set-and-initialize! '("win32")
|
||
(->environment '(edwin screen win32)))
|
||
(load-set-and-initialize! '("key-w32")
|
||
(->environment '(edwin win32-keys))))
|
||
((unix)
|
||
(load "xterm" (->environment '(edwin screen x-screen)))))
|
||
|
||
(load-case 'os-type
|
||
'((unix . "process")
|
||
(dos . "dosproc")
|
||
(nt . "process"))
|
||
(->environment '(edwin process)))
|
||
|
||
(load "mousecom" environment)
|
||
(case (lookup 'os-type)
|
||
((nt) (load "win32com" (->environment '(edwin win-commands)))))
|
||
;; debug depends on button1-down defined in mousecom
|
||
(load "debug" (->environment '(edwin debugger)))
|
||
|
||
(let ((env (->environment '(edwin dired))))
|
||
(load "dired" env)
|
||
(case (lookup 'os-type)
|
||
((unix) (load "dirunx" env))
|
||
((nt) (load "dirw32" env))))
|
||
|
||
(load "abbrev" environment)
|
||
(load "argred" (->environment '(edwin command-argument)))
|
||
(load "autold" environment)
|
||
(load "autosv" environment)
|
||
(load "basic" environment)
|
||
(load "bufcom" environment)
|
||
(load "bufmnu" (->environment '(edwin buffer-menu)))
|
||
(load "c-mode" environment)
|
||
(load "javamode" environment)
|
||
(load "cinden" (->environment '(edwin c-indentation)))
|
||
(load "comhst" environment)
|
||
(load "comint" environment)
|
||
(load "compile" environment)
|
||
(load "dabbrev" environment)
|
||
(load "evlcom" environment)
|
||
(load "filcom" environment)
|
||
(load "fill" environment)
|
||
(load "hlpcom" environment)
|
||
(load "info" (->environment '(edwin info)))
|
||
(load "intmod" (->environment '(edwin inferior-repl)))
|
||
(load "keymap" (->environment '(edwin command-summary)))
|
||
(load "kilcom" environment)
|
||
(load "kmacro" environment)
|
||
(load "lincom" environment)
|
||
(load "lspcom" environment)
|
||
(load "malias" (->environment '(edwin mail-alias)))
|
||
(load "motcom" environment)
|
||
(load "occur" (->environment '(edwin occurrence)))
|
||
(load "outline" environment)
|
||
;;(load "rcs" (->environment '(edwin rcs)))
|
||
(load "reccom" (->environment '(edwin rectangle)))
|
||
(load "regcom" (->environment '(edwin register-command)))
|
||
(load "replaz" environment)
|
||
(load "rfc822" (->environment '(edwin rfc822)))
|
||
(load "rmail" (->environment '(edwin rmail)))
|
||
(load "rmailsum" (->environment '(edwin rmail)))
|
||
(load "rmailsrt" (->environment '(edwin rmail)))
|
||
(load "schmod" environment)
|
||
(load "sendmail" (->environment '(edwin sendmail)))
|
||
(load "sercom" environment)
|
||
(load "iserch" (->environment '(edwin incremental-search)))
|
||
(load "shell" environment)
|
||
(load "tagutl" (->environment '(edwin tags)))
|
||
(load "texcom" environment)
|
||
(load "htmlmode" environment)
|
||
(load "diff" (->environment '(edwin diff)))
|
||
(load "rcsparse" (->environment '(edwin rcs-parse)))
|
||
(load "vc" (->environment '(edwin vc)))
|
||
(load "vc-rcs" (->environment '(edwin vc)))
|
||
(load "vc-cvs" (->environment '(edwin vc)))
|
||
(load "vc-svn" (->environment '(edwin vc)))
|
||
(load "vc-bzr" (->environment '(edwin vc)))
|
||
(load "vc-git" (->environment '(edwin vc)))
|
||
(load "wincom" environment)
|
||
(load "scrcom" environment)
|
||
(load "modefs" environment)
|
||
(load "loadef" environment)
|
||
#|
|
||
(load-set-and-initialize! '("bochser" "bochsmod")
|
||
(->environment '(edwin bochser)))
|
||
|#
|
||
(load "notify" environment)
|
||
(load "world-monitor" environment)
|
||
(if (access *external-doc-strings?* environment)
|
||
(begin
|
||
(set! (access *external-doc-strings?* environment) false)
|
||
(warn "Remember to use ``dump-doc-strings''!"))))))) |