(DEFMACRO PRESERVING-POINT (&BODY BODY) (LET (($POINT (GENSYM))) `(LET ((,$POINT (COPY-BP (POINT) (BP-STATUS (POINT))))) (UNWIND-PROTECT (PROGN ,@BODY) (MOVE-BP (POINT) ,$POINT) (FLUSH-BP ,$POINT))))) (DEFMACRO PRESERVING-MARK (&BODY BODY) (LET (($MARK (GENSYM))) `(LET (,$MARK) (WHEN (WINDOW-MARK-P *WINDOW*) (SETQ ,$MARK (COPY-BP (MARK) :NORMAL)) (UNWIND-PROTECT (PROGN ,@BODY) (MOVE-BP (MARK) ,$MARK) (SETF (WINDOW-MARK-P *WINDOW*) T) (FLUSH-BP ,$MARK)))))) #| (SETQ *LISP-INDENT-OFFSET-ALIST* (ACONS 'IF '(1 3) *LISP-INDENT-OFFSET-ALIST*)) |# (EVAL-WHEN (EVAL LOAD) (SEND TV:WHO-LINE-DOCUMENTATION-WINDOW :REFRESH)) ;+++ should decache mouse-doc