diff src/minibuf.c @ 2268:61855263cb07

[xemacs-hg @ 2004-09-14 14:32:29 by james] Identify functions that don't return, including some DEFUNs.
author james
date Tue, 14 Sep 2004 14:33:07 +0000
parents 79c6ff3eef26
children 04bc9d2f42c7
line wrap: on
line diff
--- a/src/minibuf.c	Tue Sep 14 02:53:16 2004 +0000
+++ b/src/minibuf.c	Tue Sep 14 14:33:07 2004 +0000
@@ -134,13 +134,18 @@
   return Qnil;
 }
 
-DEFUN ("read-minibuffer-internal", Fread_minibuffer_internal, 1, 1, 0, /*
+DEFUN_NORETURN ("read-minibuffer-internal", Fread_minibuffer_internal,
+		1, 1, 0, /*
 Lowest-level interface to minibuffers.  Don't call this.
 */
        (prompt))
 {
   /* This function can GC */
-  int speccount = specpdl_depth ();
+
+  /* We used to record the specpdl_depth here, but since call_command_loop
+     never returns, we can never call unbind_to_1.  Since we exit via a throw,
+     we let whoever catches unbind for us. */
+
   Lisp_Object val;
 
   CHECK_STRING (prompt);
@@ -188,7 +193,7 @@
 
   val = call_command_loop (Qt);
 
-  return unbind_to_1 (speccount, val);
+  RETURN_NOT_REACHED (val);
 }