summaryrefslogtreecommitdiffstats
path: root/elk.init
diff options
context:
space:
mode:
Diffstat (limited to 'elk.init')
-rw-r--r--elk.init36
1 files changed, 31 insertions, 5 deletions
diff --git a/elk.init b/elk.init
index f6dded0..6f09672 100644
--- a/elk.init
+++ b/elk.init
@@ -1,5 +1,5 @@
;;;"elk.init" Initialisation file for SLIB for ELK 2.1 -*- Scheme -*-
-;;; Copyright (C) 1991, 1992, 1993 Aubrey Jaffer.
+;;; Copyright (C) 1991, 1992, 1993, 1994, 1997 Aubrey Jaffer.
;
;Permission to copy this software, to redistribute it, and to use it
;for any purpose is granted, subject to the following restrictions and
@@ -41,7 +41,7 @@
;;; (scheme-implementation-version) should return a string describing
;;; the version the scheme implementation loading this file.
-(define (scheme-implementation-version) "?2.1")
+(define (scheme-implementation-version) "3.0")
;;; (implementation-vicinity) should be defined to be the pathname of
;;; the directory where any auxillary files to your Scheme
@@ -56,6 +56,10 @@
;;; (library-vicinity) should be defined to be the pathname of the
;;; directory where files of Scheme library functions reside.
+(require 'unix)
+(define getenv unix-getenv)
+(define system unix-system)
+
(define library-vicinity
(let ((library-path
(or (getenv "SCHEME_LIBRARY_PATH")
@@ -67,6 +71,14 @@
(else "")))))
(lambda () library-path)))
+;;; (home-vicinity) should return the vicinity of the user's HOME
+;;; directory, the directory which typically contains files which
+;;; customize a computer environment for a user.
+
+(define home-vicinity
+ (let ((home-path (getenv "HOME")))
+ (lambda () home-path)))
+
;;; *features* should be set to a list of symbols describing features
;;; of this implementation. Suggestions for features are:
@@ -117,8 +129,6 @@
(let ((tmp (string-append "slib_" (number->string cntr))))
(if (file-exists? tmp) (tmpnam) tmp)))))
-(require 'unix)
-
; Pull in GENTENV and SYSTEM
;;; (FILE-EXISTS? <string>) already here.
@@ -218,8 +228,24 @@
(evl o))
(set! *load-pathname* old-load-pathname)))))
+(define slib:warn
+ (lambda args
+ (let ((port (current-error-port)))
+ (display "Warn: " port)
+ (for-each (lambda (x) (display x port)) args))))
+
;;; define an error procedure for the library
-(define slib:error error)
+(define slib:error
+ (lambda args
+ (let ((port (open-output-string))
+ (err (if (and (pair? args) (symbol? (car args)))
+ (car args) 'slib))
+ (args (if (and (pair? args) (symbol? (car args)))
+ (cdr args) args)))
+ (for-each (lambda (x) (display x port) (display " " port)) args)
+ (let ((str (get-output-string port)))
+ (close-output-port port)
+ (error err str)))))
;;; define these as appropriate for your system.
(define slib:tab #\tab)