Implemented conditional loading of files to make both DOS + Unix happy.
authorHenry M. Wu <edu/mit/csail/zurich/mhwu>
Tue, 12 May 1992 18:19:26 +0000 (18:19 +0000)
committerHenry M. Wu <edu/mit/csail/zurich/mhwu>
Tue, 12 May 1992 18:19:26 +0000 (18:19 +0000)
v7/src/edwin/edwin.ldr
v7/src/edwin/edwin.sf
v7/src/edwin/make.scm

index d60288c0c7761ee5f2576b06a71ff8818a6d3e05..2bf22d54f74dd93d99680be292dd62586d118ccc 100644 (file)
 ;;; -*-Scheme-*-
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/edwin.ldr,v 1.29 1992/04/22 21:31:06 mhwu Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/edwin.ldr,v 1.30 1992/05/12 18:18:34 mhwu Exp $
 ;;; program to load package contents
 ;;; **** This program (unlike most .ldr files) is not generated by a program.
 
 (declare (usual-integrations))
 
-(lambda (load key-alist)
-  key-alist
-  (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 '(EDWIN)))
-    (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))
-    (let ((env (->environment '(EDWIN X-SCREEN))))
-      (load "xterm" env)
-      ((access initialize-package! env)))
-    (let ((env (->environment '(EDWIN KEYS))))
-      (load "key" env)
-      ((access initialize-package! env)))
-    (let ((env (->environment '(EDWIN CONSOLE-SCREEN))))
-      (load "termcap" env)
-      (load "ansi" env)
-      (load "tterm" env)
-      ((access initialize-package! env)))    
-    (load "edtstr" environment)
-    (load "editor" environment)
-    (load "curren" environment)
-    (load "simple" environment)
-    (load "debuge" environment)
-    (load "calias" 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 "unix" environment)
-    (load "fileio" environment)
-    (load-option 'SUBPROCESS)
-    (load "process" (->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 "comint" environment)
-    (load "compile" environment)
-    (load "debug" (->environment '(EDWIN DEBUGGER)))
-    (load "dired" (->environment '(EDWIN DIRED)))
-    (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 "tags" (->environment '(EDWIN TAGS)))
-    (load "texcom" environment)
-    (load "wincom" environment)
-    (load "scrcom" environment)
-    (load "xcom" (->environment '(EDWIN X-COMMANDS)))
-    (load "modefs" environment)
-    (load "rename" environment)
-    (load "loadef" environment)
-    (let ((env (->environment '(EDWIN BOCHSER))))
-      (load "bochser" env)
-      (load "bochsmod" env)
-      ((access initialize-bochser-mode! env)))
-    (load "notify" environment)
-    (load "outline" environment)))
\ No newline at end of file
+(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-and-initialize! files env)
+      (define (load-all files)
+       (if (null? files)
+           true
+           (let ((val (load (car files) env)))
+             (boolean-and val (load-all (cdr files))))))
+      (and (load-all files)
+          ((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 '(EDWIN)))
+      (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-set-and-initialize! '("xterm")
+                               (->environment '(EDWIN X-SCREEN)))
+      (load-set-and-initialize! '("key")
+                               (->environment '(EDWIN KEYS)))
+      (load-set-and-initialize! '("termcap" "ansi" "tterm")
+                               (->environment '(EDWIN CONSOLE-SCREEN)))
+      (load "edtstr" environment)
+      (load "editor" environment)
+      (load "curren" environment)
+      (load "simple" environment)
+      (load "debuge" environment)
+      (load "calias" 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 "comint" environment)
+      (load "compile" environment)
+      (load "debug" (->environment '(EDWIN DEBUGGER)))
+      (load "dired" (->environment '(EDWIN DIRED)))
+      (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 "tags" (->environment '(EDWIN TAGS)))
+      (load "texcom" environment)
+      (load "wincom" environment)
+      (load "scrcom" environment)
+      (load "xcom" (->environment '(EDWIN X-COMMANDS)))
+      (load "modefs" 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
index 246f56565d42ddd94f76e081c4f716047db4dd69..fac264994b9c1b60e86fa17d9911886dcc233852 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/edwin.sf,v 1.9 1991/03/10 05:21:17 cph Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/edwin.sf,v 1.10 1992/05/12 18:19:02 mhwu Exp $
 ;;;
 ;;;    Copyright (c) 1991 Massachusetts Institute of Technology
 ;;;
    "edwin"))
 (sf "edwin.con" "edwin.bcon")
 (if (not (file-processed? "edwin" "ldr" "bldr"))
-    (sf "edwin.ldr" "edwin.bldr"))
\ No newline at end of file
+    (sf "edwin.ldr" "edwin.bldr"))
+(if (and (file-exists? "edwin.avd")
+        (not (file-processed? "edwin" "avd" "bad")))
+    (fasdump (read-file "edwin.avd") "edwin.bad"))
\ No newline at end of file
index 01c2a1bd2b3728d532b2743fa38f29ce4247fbc5..4aa557b8728679b96714469241b842971473884b 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/make.scm,v 3.69 1992/03/24 23:32:17 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/make.scm,v 3.70 1992/05/12 18:19:26 mhwu Exp $
 
 Copyright (c) 1989-92 Massachusetts Institute of Technology
 
@@ -36,5 +36,8 @@ MIT in each case. |#
 
 (declare (usual-integrations))
 
-(package/system-loader "edwin" '() 'QUERY)
+(package/system-loader
+ "edwin"
+ `((os-type . ,(intern (microcode-identification-item 'OS-NAME-STRING))))
+ 'QUERY)
 (add-system! (make-system "Edwin" 3 69 '()))
\ No newline at end of file