[clim-desktop-cvs] CVS clim-desktop

thenriksen thenriksen at common-lisp.net
Sat Jun 3 18:14:42 UTC 2006


Update of /project/clim-desktop/cvsroot/clim-desktop
In directory clnet:/tmp/cvs-serv21320

Modified Files:
	swine.lisp swine-cmds.lisp 
Log Message:
Added `evaluating-interactively' macro for providing error messages
when Climacs cannot convert some some text to code for evaluation or
compilation, added usage of this macro to Eval Region and Compile
Definition.


--- /project/clim-desktop/cvsroot/clim-desktop/swine.lisp	2006/06/03 17:50:56	1.22
+++ /project/clim-desktop/cvsroot/clim-desktop/swine.lisp	2006/06/03 18:14:42	1.23
@@ -150,6 +150,11 @@
   `(let ((,package-sym (usable-package (slot-value ,syntax 'package))))
      , at body))
 
+(defmacro evaluating-interactively (&body body)
+  `(handler-case (progn , at body)
+     (end-of-file ()
+                  (esa:display-message "Unbalanced parentheses in form."))))
+
 ;;; Real code:
 
 (defun macroexpand-token (syntax token &optional (all nil))
@@ -192,11 +197,7 @@
                                      (offset start)
                                      (offset end)))
            (values (multiple-value-list
-                    (handler-case (eval-string string)
-                      (error (condition)
-                        (progn (beep)
-                               (esa:display-message "~A" condition)
-                               (return-from eval-region nil))))))
+                    (eval-string string)))
            ;; Enclose each set of values in {}.
            (result (apply #'format nil "~{{~:[No values~;~:*~{~S~^,~}~]}~}"
                           values)))
--- /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp	2006/06/01 23:21:29	1.20
+++ /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp	2006/06/03 18:14:42	1.21
@@ -82,8 +82,9 @@
         (point (point (current-window))))
     (when (mark> mark point)
       (rotatef mark point))
-   (eval-region mark point
-                (syntax (buffer (current-window))))))
+    (evaluating-interactively
+     (eval-region mark point
+                  (syntax (buffer (current-window)))))))
 
 (esa:set-key 'com-eval-region
 	     'lisp-table
@@ -92,9 +93,10 @@
 (define-command (com-compile-definition :name t :command-table lisp-table)
     ()
   "Compile and load definition at point."
-  (compile-definition-interactively (point (current-window))
-                                    (current-window)
-                                    (syntax (buffer (current-window)))))
+  (evaluating-interactively 
+   (compile-definition-interactively (point (current-window))
+                                     (current-window)
+                                     (syntax (buffer (current-window))))))
 
 (esa:set-key 'com-compile-definition
 	     'lisp-table




More information about the Clim-desktop-cvs mailing list