? .clbuild-skip-update
Index: slime.el
===================================================================
RCS file: /project/slime/cvsroot/slime/slime.el,v
retrieving revision 1.905
diff -u -r1.905 slime.el
--- slime.el	16 Feb 2008 19:26:22 -0000	1.905
+++ slime.el	20 Feb 2008 14:26:06 -0000
@@ -1860,7 +1860,12 @@
   (or slime-dispatching-connection
       slime-buffer-connection
       slime-default-connection))
-  
+ 
+(defun maybe-slime (message)
+  "Ask the user if Slime should be started."
+  (when (y-or-n-p message)
+    (slime)))
+
 (defun slime-connection ()
   "Return the connection to use for Lisp interaction.
 Signal an error if there's no connection."
@@ -1868,7 +1873,11 @@
     (cond ((and (not conn) slime-net-processes)
            (error "No default connection selected."))
           ((not conn)
-           (error "Not connected."))
+           (if (not (maybe-slime "No connection: start Slime? "))
+               (error "No connection.")
+             (while (not (setq conn (slime-current-connection)))
+               (sit-for 1))
+             conn))
           ((not (eq (process-status conn) 'open))
            (error "Connection closed."))
           (t conn))))
@@ -7821,10 +7830,9 @@
 
 (def-slime-selector-method ?r
   "SLIME Read-Eval-Print-Loop."
-  (cond ((slime-current-connection)      
-         (slime-output-buffer))
-        ((y-or-n-p "No connection: start Slime? ")
-         (slime))))
+  (if (slime-current-connection)      
+      (slime-output-buffer)
+    (maybe-slime "No connection: start Slime? ")))
 
 (def-slime-selector-method ?i
   "*inferior-lisp* buffer."
