Mercurial > emacs
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. */