From 7f3db3e9e37440e9ca8f054c255961a4b989ec13 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Tue, 20 Oct 1992 21:47:52 +0000 Subject: [PATCH] Make ->environment not fail when the file will not be loaded. --- v7/src/edwin/edwin.ldr | 340 +++++++++++++++++++++-------------------- 1 file changed, 175 insertions(+), 165 deletions(-) diff --git a/v7/src/edwin/edwin.ldr b/v7/src/edwin/edwin.ldr index 4e273baa4..e1cae7fcd 100644 --- a/v7/src/edwin/edwin.ldr +++ b/v7/src/edwin/edwin.ldr @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: edwin.ldr,v 1.35 1992/10/20 20:02:23 jinx Exp $ +$Id: edwin.ldr,v 1.36 1992/10/20 21:47:52 jinx Exp $ Copyright (c) 1989-1992 Massachusetts Institute of Technology @@ -40,168 +40,178 @@ MIT in each case. |# (lambda (package/loader key-alist) (let ((to-avoid-list (if (file-exists? "edwin.bad") (fasload "edwin.bad") - '()))) - (define (load file env) - (if (string-member? file to-avoid-list) - (begin (newline) - (write-string "* skipping ") - (write-string file) - false) - (begin (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)) - - (let ((environment (->environment '(EDWIN)))) - (load "utils" environment) - (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 "regops" environment) - (load "motion" environment) - (load "search" environment) - (load "image" environment) - (load "comman" environment) - (load "comtab" (->environment '(EDWIN COMTAB))) - (load "modes" environment) - (load "buffer" environment) - (load "bufset" environment) - (load "undo" (->environment '(EDWIN UNDO))) - (load "display" (->environment '(EDWIN DISPLAY-TYPE))) - (load "screen" (->environment '(EDWIN SCREEN))) - (load "winren" environment) - - (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-set-and-initialize! '("xterm") - (->environment '(EDWIN SCREEN X-SCREEN))) - (load-set-and-initialize! '("key") - (->environment '(EDWIN KEYS))) - - (let ((env (->environment '(EDWIN SCREEN CONSOLE-SCREEN)))) - (load-set-and-initialize! '("termcap" "tterm") env) - (if (eq? (lookup 'os-type) 'dos) - (begin - (load "ansi" env) - (if (load "bios" env) - ((access bios-initialize-package! env)))))) - - (load "edtstr" environment) - (load "editor" environment) - (load "curren" environment) - (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 "rgxcmp" (->environment '(EDWIN REGULAR-EXPRESSION-COMPILER))) - (load "linden" (->environment '(EDWIN LISP-INDENTATION))) - - (load-case 'os-type '((unix . "unix") (dos . "dos")) environment) - - (load "fileio" environment) - - (if (eq? (lookup 'os-type) 'unix) - (load-option 'SUBPROCESS)) - (load-case 'os-type '((unix . "process") (dos . "dosproc")) - (->environment '(EDWIN PROCESS))) - - (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 "cinden" (->environment '(EDWIN C-INDENTATION))) - (load "comhst" environment) - (load "comint" environment) - (load "compile" environment) - (load "debug" (->environment '(EDWIN DEBUGGER))) - - (let ((env (->environment '(EDWIN DIRED)))) - (load "dired" env) + '())) + (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)) + + (let ((environment (->environment '(EDWIN)))) + (load "utils" environment) + (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 "regops" environment) + (load "motion" environment) + (load "search" environment) + (load "image" environment) + (load "comman" environment) + (load "comtab" (->environment '(EDWIN COMTAB))) + (load "modes" environment) + (load "buffer" environment) + (load "bufset" environment) + (load "undo" (->environment '(EDWIN UNDO))) + (load "display" (->environment '(EDWIN DISPLAY-TYPE))) + (load "screen" (->environment '(EDWIN SCREEN))) + (load "winren" environment) + + (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-set-and-initialize! '("xterm") + (->environment '(EDWIN SCREEN X-SCREEN))) + (load-set-and-initialize! '("key") + (->environment '(EDWIN KEYS))) + + (let ((env (->environment '(EDWIN SCREEN CONSOLE-SCREEN)))) + (load-set-and-initialize! '("termcap" "tterm") env) + (if (eq? (lookup 'os-type) 'dos) + (begin + (load "ansi" env) + (if (load "bios" env) + ((access bios-initialize-package! env)))))) + + (load "edtstr" environment) + (load "editor" environment) + (load "curren" environment) + (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 "rgxcmp" (->environment '(EDWIN REGULAR-EXPRESSION-COMPILER))) + (load "linden" (->environment '(EDWIN LISP-INDENTATION))) + + (load-case 'os-type '((unix . "unix") (dos . "dos")) environment) + + (load "fileio" environment) + (if (eq? (lookup 'os-type) 'unix) - (load "dirunx" env))) - - (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 "rcs" (->environment '(EDWIN RCS))) - (load "reccom" (->environment '(EDWIN RECTANGLE))) - (load "regcom" (->environment '(EDWIN REGISTER-COMMAND))) - (load "replaz" environment) - (load "rmail" (->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 "wincom" environment) - (load "scrcom" environment) - (load "xcom" (->environment '(EDWIN X-COMMANDS))) - (load-set '("modefs" "xmodef") environment) - (load "rename" environment) - (load "loadef" environment) - (load-set-and-initialize! '("bochser" "bochsmod") - (->environment '(EDWIN BOCHSER))) - (load "notify" environment) - (load "outline" environment)))) \ No newline at end of file + (load-option 'SUBPROCESS)) + (load-case 'os-type '((unix . "process") (dos . "dosproc")) + (->environment '(EDWIN PROCESS))) + + (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 "cinden" (->environment '(EDWIN C-INDENTATION))) + (load "comhst" environment) + (load "comint" environment) + (load "compile" environment) + (load "debug" (->environment '(EDWIN DEBUGGER))) + + (let ((env (->environment '(EDWIN DIRED)))) + (load "dired" env) + (if (eq? (lookup 'os-type) 'unix) + (load "dirunx" env))) + + (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 "rcs" (->environment '(EDWIN RCS))) + (load "reccom" (->environment '(EDWIN RECTANGLE))) + (load "regcom" (->environment '(EDWIN REGISTER-COMMAND))) + (load "replaz" environment) + (load "rmail" (->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 "wincom" environment) + (load "scrcom" environment) + (load "xcom" (->environment '(EDWIN X-COMMANDS))) + (load-set '("modefs" "xmodef") environment) + (load "rename" environment) + (load "loadef" environment) + (load-set-and-initialize! '("bochser" "bochsmod") + (->environment '(EDWIN BOCHSER))) + (load "notify" environment) + (load "outline" environment))))) \ No newline at end of file -- 2.25.1