# HG changeset patch # User Steve Losh # Date 1458941732 0 # Node ID d4ff64dea170455421af1a0d13cfa1d1b1b6c5de # Parent ab4a7458c22c748a0b1a4eb1b0ad60e39e101f6f Add a handy SBCL rlwrap wrapper diff -r ab4a7458c22c -r d4ff64dea170 bin/lisp --- a/bin/lisp Fri Mar 25 21:34:05 2016 +0000 +++ b/bin/lisp Fri Mar 25 21:35:32 2016 +0000 @@ -2,4 +2,4 @@ set -e -rlwrap sbcl "$@" +rlwrap-sbcl "$@" diff -r ab4a7458c22c -r d4ff64dea170 bin/regen-sbcl-completions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/regen-sbcl-completions Fri Mar 25 21:35:32 2016 +0000 @@ -0,0 +1,21 @@ +#!/usr/bin/env sbcl --script +(let (symbols) + (do-all-symbols (sym) + (let ((package (symbol-package sym))) + (cond + ((not (fboundp sym))) + ((or (eql #.(find-package :cl) package) + (eql #.(find-package :cl-user) package)) + (pushnew (symbol-name sym) symbols)) + ((eql #.(find-package :keyword) package) + (pushnew (concatenate 'string ":" (symbol-name sym)) symbols)) + (package + (pushnew (concatenate 'string (package-name package) + ":" + (symbol-name sym)) + symbols))))) + (with-open-file (output #.(concatenate 'string (posix-getenv "HOME") + "/.sbcl_completions") + :direction :output :if-exists :overwrite + :if-does-not-exist :create) + (format output "~{~(~A~)~%~}" (sort symbols #'string<)))) diff -r ab4a7458c22c -r d4ff64dea170 bin/rlwrap-sbcl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/rlwrap-sbcl Fri Mar 25 21:35:32 2016 +0000 @@ -0,0 +1,13 @@ +#!/bin/sh +BREAK_CHARS="(){}[],^%$#@\"\";''|\\" +RLWRAP= +if [ $TERM == "dumb" ]; then # slime + RLWRAP= +else + RLWRAP="rlwrap --remember --history-filename=$HOME/.sbcl_history --histsize=1000000 -c -b $BREAK_CHARS -f $HOME/.sbcl_completions" +fi +if [ $# -eq 0 ]; then + exec $RLWRAP sbcl +else # permits #!/usr/bin/env sbcl , but breaks sbcl --help, etc. + exec sbcl --script $* +fi