emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108662: * src/minibuf.c (Fread_st


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-24 r108662: * src/minibuf.c (Fread_string): Bind minibuffer-completion-table.
Date: Fri, 02 Nov 2012 01:45:58 -0000
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 108662
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Tue 2012-06-19 13:05:41 -0400
message:
  * src/minibuf.c (Fread_string): Bind minibuffer-completion-table.
modified:
  src/ChangeLog
  src/minibuf.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-06-19 16:56:28 +0000
+++ b/src/ChangeLog     2012-06-19 17:05:41 +0000
@@ -1,3 +1,7 @@
+2012-06-19  Stefan Monnier  <address@hidden>
+
+       * minibuf.c (Fread_string): Bind minibuffer-completion-table.
+
 2012-06-19  Dmitry Antipov  <address@hidden>
 
        * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:

=== modified file 'src/minibuf.c'
--- a/src/minibuf.c     2012-06-19 16:56:28 +0000
+++ b/src/minibuf.c     2012-06-19 17:05:41 +0000
@@ -1035,12 +1035,20 @@
   (Lisp_Object prompt, Lisp_Object initial_input, Lisp_Object history, 
Lisp_Object default_value, Lisp_Object inherit_input_method)
 {
   Lisp_Object val;
+  ptrdiff_t count = SPECPDL_INDEX ();
+
+  /* Just in case we're in a recursive minibuffer, make it clear that the
+     previous minibuffer's completion table does not apply to the new
+     minibuffer.
+     FIXME: `minibuffer-completion-table' should be buffer-local instead.  */
+  specbind (Qminibuffer_completion_table, Qnil);
+
   val = Fread_from_minibuffer (prompt, initial_input, Qnil,
                               Qnil, history, default_value,
                               inherit_input_method);
   if (STRINGP (val) && SCHARS (val) == 0 && ! NILP (default_value))
     val = CONSP (default_value) ? XCAR (default_value) : default_value;
-  return val;
+  return unbind_to (count, val);
 }
 
 DEFUN ("read-no-blanks-input", Fread_no_blanks_input, Sread_no_blanks_input, 
1, 3, 0,


reply via email to

[Prev in Thread] Current Thread [Next in Thread]