diff src/minibuf.c @ 76369:488516b0de0a

(read_minibuf): Bind inhibit-read-only a bit longer so as to handle correctly prompts with read-only property.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 07 Mar 2007 02:13:26 +0000
parents c76aa2fa987a
children 24884385912f
line wrap: on
line diff
--- a/src/minibuf.c	Tue Mar 06 23:43:59 2007 +0000
+++ b/src/minibuf.c	Wed Mar 07 02:13:26 2007 +0000
@@ -700,27 +700,27 @@
     specbind (Qinhibit_read_only, Qt);
     specbind (Qinhibit_modification_hooks, Qt);
     Ferase_buffer ();
+
+    if (!NILP (current_buffer->enable_multibyte_characters)
+	&& ! STRING_MULTIBYTE (minibuf_prompt))
+      minibuf_prompt = Fstring_make_multibyte (minibuf_prompt);
+    
+    /* Insert the prompt, record where it ends.  */
+    Finsert (1, &minibuf_prompt);
+    if (PT > BEG)
+      {
+	Fput_text_property (make_number (BEG), make_number (PT),
+			    Qfront_sticky, Qt, Qnil);
+	Fput_text_property (make_number (BEG), make_number (PT),
+			    Qrear_nonsticky, Qt, Qnil);
+	Fput_text_property (make_number (BEG), make_number (PT),
+			    Qfield, Qt, Qnil);
+	Fadd_text_properties (make_number (BEG), make_number (PT),
+			      Vminibuffer_prompt_properties, Qnil);
+      }
     unbind_to (count1, Qnil);
   }
 
-  if (!NILP (current_buffer->enable_multibyte_characters)
-      && ! STRING_MULTIBYTE (minibuf_prompt))
-    minibuf_prompt = Fstring_make_multibyte (minibuf_prompt);
-
-  /* Insert the prompt, record where it ends.  */
-  Finsert (1, &minibuf_prompt);
-  if (PT > BEG)
-    {
-      Fput_text_property (make_number (BEG), make_number (PT),
-			  Qfront_sticky, Qt, Qnil);
-      Fput_text_property (make_number (BEG), make_number (PT),
-			  Qrear_nonsticky, Qt, Qnil);
-      Fput_text_property (make_number (BEG), make_number (PT),
-			  Qfield, Qt, Qnil);
-      Fadd_text_properties (make_number (BEG), make_number (PT),
-			    Vminibuffer_prompt_properties, Qnil);
-    }
-
   minibuf_prompt_width = (int) current_column (); /* iftc */
 
   /* Put in the initial input.  */