X | sed "s%^srcdir =.*\$$%srcdir = `pwd`%" >Make.new
X @cat Make.new > Makefile
X @rm -f Make.new
X
Xstamp:
X touch stamp
X
Xdisk: realclean
X cd ..; tar cvf /dev/rfd0 jlisp-$(jlversion)
X
X
X# DO NOT remove following line!
X#END_OF_MAKE
X
CEST_TOUT
if test `wc -c < jlisp-1.03/Makefile` -ne 2594 ; then
echo "file jlisp-1.03/Makefile has been corrupted (should be 2594 bytes)"
fi
fi
if test -f jlisp-1.03/ToDo -a "$1" != "-c" ; then
echo "will not overwrite jlisp-1.03/ToDo"
else
echo " x - jlisp-1.03/ToDo (112 bytes)"
sed 's/^X//' > jlisp-1.03/ToDo << \CEST_TOUT
X
X IPC
X hashtables
X undefine ?
X logical fncs: ror rol
X bignums, complexnums
X OOP
X
X finish format
X (~f ~e ~g)
X
X
X
CEST_TOUT
if test `wc -c < jlisp-1.03/ToDo` -ne 112 ; then
echo "file jlisp-1.03/ToDo has been corrupted (should be 112 bytes)"
fi
fi
if test -f jlisp-1.03/bin/if-changed -a "$1" != "-c" ; then
echo "will not overwrite jlisp-1.03/bin/if-changed"
else
echo " x - jlisp-1.03/bin/if-changed (88 bytes)"
sed 's/^X//' > jlisp-1.03/bin/if-changed << \CEST_TOUT
X#! /bin/sh
X
Xexec 2> /dev/null
X
Xif cmp $2 $3; then
X echo $2 unchanged
Xelse
X $1 $2 $3
Xfi
X
CEST_TOUT
chmod +x jlisp-1.03/bin/if-changed
if test `wc -c < jlisp-1.03/bin/if-changed` -ne 88 ; then
echo "file jlisp-1.03/bin/if-changed has been corrupted (should be 88 bytes)"
fi
fi
if test -f jlisp-1.03/etc/example-.jlisprc -a "$1" != "-c" ; then
echo "will not overwrite jlisp-1.03/etc/example-.jlisprc"
else
echo " x - jlisp-1.03/etc/example-.jlisprc (314 bytes)"
sed 's/^X//' > jlisp-1.03/etc/example-.jlisprc << \CEST_TOUT
X
X;;;; an example .jlisprc file
X
X(set! load-path (append
X (list (expand-filename "~/src/lisp"))
X load-path))
X
X(add-hook 'quit-hooks (lambda ()
X (display "Bye Bye\n")))
X
X(add-hook 'before-gc-hooks
X (lambda () (display "Garbage collecting...\n")))
X
X
CEST_TOUT
if test `wc -c < jlisp-1.03/etc/example-.jlisprc` -ne 314 ; then
echo "file jlisp-1.03/etc/example-.jlisprc has been corrupted (should be 314 bytes)"
fi
fi
if test -f jlisp-1.03/etc/example-emacs -a "$1" != "-c" ; then
echo "will not overwrite jlisp-1.03/etc/example-emacs"
else
echo " x - jlisp-1.03/etc/example-emacs (1755 bytes)"
sed 's/^X//' > jlisp-1.03/etc/example-emacs << \CEST_TOUT
X
X;;;; example emacs mode code for editing jlisp code
X
X(setq auto-mode-alist
X (append '(("\\.jl$" . jeff-lisp-mode)
X ("/\\.jlisprc". jeff-lisp-mode))
X auto-mode-alist))
X
X
X;;; jeff-lisp-mode is essentially emacs-lisp-mode with sugar on top...
X
X(defun jeff-lisp-mode ()
X "mode for editting jlisp code"
X (interactive)
X (emacs-lisp-mode)
X (setq mode-name "jeff-lisp")
X (setq major-mode 'jeff-lisp-mode)
X
X ;; get indent nice...
X (put 'do 'lisp-indent-hook 2)
X (put 'do* 'lisp-indent-hook 2)
X (put 'dolist 'lisp-indent-hook 1)
X (put 'dotimes 'lisp-indent-hook 1)
X (put 'case 'lisp-indent-hook 1)
X (put 'when 'lisp-indent-hook 1)
X (put 'unless 'lisp-indent-hook 1)
X (put 'while 'lisp-indent-hook 1)
X (put 'macro 'lisp-indent-hook 1)
X (put 'defmac 'lisp-indent-hook 'defun)
X
X (run-hooks 'jeff-lisp-mode-hook))
X
X
X;;; and of course it has to look nice hilit...
X(hilit-set-mode-patterns
X 'jeff-lisp-mode
X '(
X (";.*" nil comment)
X ("#|" "|#" comment)
X (hilit-string-find ?\\ violetred-underline)
X ("^\\s *(def\\(un\\|mac\\)[ \t\n]" "\\()\\|nil\\)" defun)
X ("^\\s *(def\\(ine\\|var\\)" nil define)
X ("\\(#t\\|#f\\)" nil maroon)
X ("^\\s *(\\(provide\\|require\\|\\(auto\\)?load\\).*$" nil include)
X ("\\s *\\&\\(rest\\|optional\\)\\s *" nil keyword)
X ("(\\(let\\*?\\|cond\\|case\\|if\\|or\\|and\\|map\\(car\\|concat\\)\\|prog[n1*]?\\|while\\|lambda\\|macro\\|set\\([qf!]\\|-car\\|-cdr\\|s!\\)?\\|unwind-protect\\|catch\\|throw\\|error\\)[ \t\n]" 1 keyword)
X ("(\\(car\\|cdr\\|cons\\|nconc\\|list\\|vector\\|nth\\|eq\\|equal\\|eqv\\|eval\\|funcall\\|apply\\)[ \t\n]" 1 keyword)
X ))
X
X
X
X
CEST_TOUT
if test `wc -c < jlisp-1.03/etc/example-emacs` -ne 1755 ; then
echo "file jlisp-1.03/etc/example-emacs has been corrupted (should be 1755 bytes)"
fi
fi
if test -f jlisp-1.03/lisp/all-syms.jl -a "$1" != "-c" ; then
echo "will not overwrite jlisp-1.03/lisp/all-syms.jl"
else
echo " x - jlisp-1.03/lisp/all-syms.jl (1052 bytes)"
sed 's/^X//' > jlisp-1.03/lisp/all-syms.jl << \CEST_TOUT
X
X(defun all-syms ()
X ;; this is the deep-binding symtab version...
X (let* ((ce (current-enviornment))
X (sym-list ()))
X
X (for-each (lambda (ev)
X ;; traverse the env vector
X (let ((i (length ev))
X (sc ()))
X (while (>= i 0)
X ;; follow symbox chains
X (set! sc (nth ev i))
X (while (nnullp sc)
X (set! sym-list (cons sc sym-list))
X (set! sc (symbox-chain-next sc)))
X (-- i))))
X ce)
X
X sym-list))
X
X(defun all-docs (sl)
X (let ((dl ()))
X (for-each (lambda (sym)
X (let ((ds (assq '.docstring (get-props sym))))
X (if ds
X (set! dl (acons sym (cdr ds) dl)))))
X sl)
X dl))
X
X(define *all-docs* #f)
X
X(defun appropos (huh)
X "(appropos keyword) find a function dealing with keyword"
X (let ((al ())
X (dl (or *all-docs* (set! *all-docs* (all-docs (all-syms))))))