diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/minibuf.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/minibuf.c b/src/minibuf.c index 0b8b00ce2c9..d2a4c9b9538 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -630,8 +630,31 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, | |||
| 630 | Qrear_nonsticky, Qt, Qnil); | 630 | Qrear_nonsticky, Qt, Qnil); |
| 631 | Fput_text_property (make_number (BEG), make_number (PT), | 631 | Fput_text_property (make_number (BEG), make_number (PT), |
| 632 | Qfield, Qt, Qnil); | 632 | Qfield, Qt, Qnil); |
| 633 | Fadd_text_properties (make_number (BEG), make_number (PT), | 633 | if (Fconsp (Vminibuffer_prompt_properties)) |
| 634 | Vminibuffer_prompt_properties, Qnil); | 634 | { |
| 635 | /* We want to apply all properties from | ||
| 636 | `minibuffer-prompt-properties' to the region normally, | ||
| 637 | but if the `face' property is present, add that | ||
| 638 | property to the end of the face properties to avoid | ||
| 639 | overwriting faces. */ | ||
| 640 | Lisp_Object list = Vminibuffer_prompt_properties; | ||
| 641 | while (CONSP (list)) | ||
| 642 | { | ||
| 643 | Lisp_Object key = XCAR (list); | ||
| 644 | list = XCDR (list); | ||
| 645 | if (CONSP (list)) | ||
| 646 | { | ||
| 647 | Lisp_Object val = XCAR (list); | ||
| 648 | list = XCDR (list); | ||
| 649 | if (EQ (key, Qface)) | ||
| 650 | Fadd_face_text_property (make_number (BEG), | ||
| 651 | make_number (PT), val, Qt, Qnil); | ||
| 652 | else | ||
| 653 | Fput_text_property (make_number (BEG), make_number (PT), | ||
| 654 | key, val, Qnil); | ||
| 655 | } | ||
| 656 | } | ||
| 657 | } | ||
| 635 | } | 658 | } |
| 636 | unbind_to (count1, Qnil); | 659 | unbind_to (count1, Qnil); |
| 637 | } | 660 | } |