X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-misc.lisp;h=7b07e83a263f72fc6009e48da5321aaf8030373e;hb=1a68f34a511841986710cc0012417a8633ab7241;hp=8c798e2947391e4f95bcc645bb5947399d5d8d02;hpb=7665c62819f24bac3445e7eb5bb3428f48ecb120;p=sbcl.git diff --git a/src/code/target-misc.lisp b/src/code/target-misc.lisp index 8c798e2..7b07e83 100644 --- a/src/code/target-misc.lisp +++ b/src/code/target-misc.lisp @@ -151,6 +151,24 @@ are running on, or NIL if we can't find any useful information." "Return a string with the long form of the site name, or NIL if not known." *long-site-name*) +;;;; ED +(defvar *ed-functions* nil + "See function documentation for ED.") + +(defun ed (&optional x) + "Starts the editor (on a file or a function if named). Functions +from the list *ED-FUNCTIONS* are called in order with X as an argument +until one of them returns non-NIL; these functions are responsible for +signalling a FILE-ERROR to indicate failure to perform an operation on +the file system." + (dolist (fun *ed-functions* + (error 'extension-failure + :format-control "Don't know how to ~S ~A" + :format-arguments (list 'ed x) + :references (list '(:sbcl :variable *ed-functions*)))) + (when (funcall fun x) + (return t)))) + ;;;; dribble stuff ;;; Each time we start dribbling to a new stream, we put it in