[lice @ dont load the .asd file]
[lice.git] / recursive-edit.lisp
blob35ae86512227d4a4314b23c2433ee750cb1541a8
1 ;;; Implement the recursive edit.
3 (in-package "LICE")
5 (defvar *recursive-edit-depth* 0
6 "The current recursive-edit depth.")
8 ;; TODO: Restore the window/buffer layout
9 (defun recursive-edit ()
10 (let* ((*recursive-edit-depth* (1+ *recursive-edit-depth*))
11 ;; reset the command keys for the recursive edit
12 (*this-command-keys* nil)
13 ;; restore the last command
14 (*last-command* *last-command*)
15 (ret (catch 'exit
16 (with-lice-debugger
17 (loop
18 (frame-render (selected-frame))
19 (top-level-next-event))))))
20 ;; return the ret val.
21 (dformat +debug-v+ "ret ~a~%" ret)
22 (when ret
23 (signal 'quit))))
25 (provide :lice-0.1/recursive-edit)