Mercurial > emacs
comparison src/callint.c @ 100688:8233f3e2beb4
* textprop.c (Qminibuffer_prompt): New variable.
(syms_of_textprop): Initialize it.
* callint.c (Fcall_interactively): For `c', `k', and `K' prompt
in minibuffer-prompt face. (Bug#1662)
author | Martin Rudalics <rudalics@gmx.at> |
---|---|
date | Fri, 26 Dec 2008 09:39:49 +0000 |
parents | 8971ddf55736 |
children | e038c1a8307c |
comparison
equal
deleted
inserted
replaced
100687:245c01516a02 | 100688:8233f3e2beb4 |
---|---|
43 extern Lisp_Object Vhistory_length; | 43 extern Lisp_Object Vhistory_length; |
44 extern Lisp_Object Vthis_original_command, real_this_command; | 44 extern Lisp_Object Vthis_original_command, real_this_command; |
45 | 45 |
46 Lisp_Object Vcommand_debug_status, Qcommand_debug_status; | 46 Lisp_Object Vcommand_debug_status, Qcommand_debug_status; |
47 Lisp_Object Qenable_recursive_minibuffers; | 47 Lisp_Object Qenable_recursive_minibuffers; |
48 extern Lisp_Object Qface, Qminibuffer_prompt; | |
48 | 49 |
49 /* Non-nil means treat the mark as active | 50 /* Non-nil means treat the mark as active |
50 even if mark_active is 0. */ | 51 even if mark_active is 0. */ |
51 Lisp_Object Vmark_even_if_inactive; | 52 Lisp_Object Vmark_even_if_inactive; |
52 | 53 |
539 Fother_buffer (Fcurrent_buffer (), Qnil, Qnil), | 540 Fother_buffer (Fcurrent_buffer (), Qnil, Qnil), |
540 Qnil); | 541 Qnil); |
541 break; | 542 break; |
542 | 543 |
543 case 'c': /* Character */ | 544 case 'c': /* Character */ |
545 /* Prompt in `minibuffer-prompt' face. */ | |
546 Fput_text_property (make_number (0), | |
547 make_number (SCHARS (callint_message)), | |
548 Qface, Qminibuffer_prompt, callint_message); | |
544 args[i] = Fread_char (callint_message, Qnil, Qnil); | 549 args[i] = Fread_char (callint_message, Qnil, Qnil); |
545 message1_nolog ((char *) 0); | 550 message1_nolog ((char *) 0); |
546 /* Passing args[i] directly stimulates compiler bug */ | 551 /* Passing args[i] directly stimulates compiler bug */ |
547 teml = args[i]; | 552 teml = args[i]; |
548 visargs[i] = Fchar_to_string (teml); | 553 visargs[i] = Fchar_to_string (teml); |
592 | 597 |
593 case 'k': /* Key sequence. */ | 598 case 'k': /* Key sequence. */ |
594 { | 599 { |
595 int speccount1 = SPECPDL_INDEX (); | 600 int speccount1 = SPECPDL_INDEX (); |
596 specbind (Qcursor_in_echo_area, Qt); | 601 specbind (Qcursor_in_echo_area, Qt); |
602 /* Prompt in `minibuffer-prompt' face. */ | |
603 Fput_text_property (make_number (0), | |
604 make_number (SCHARS (callint_message)), | |
605 Qface, Qminibuffer_prompt, callint_message); | |
597 args[i] = Fread_key_sequence (callint_message, | 606 args[i] = Fread_key_sequence (callint_message, |
598 Qnil, Qnil, Qnil, Qnil); | 607 Qnil, Qnil, Qnil, Qnil); |
599 unbind_to (speccount1, Qnil); | 608 unbind_to (speccount1, Qnil); |
600 teml = args[i]; | 609 teml = args[i]; |
601 visargs[i] = Fkey_description (teml, Qnil); | 610 visargs[i] = Fkey_description (teml, Qnil); |
620 | 629 |
621 case 'K': /* Key sequence to be defined. */ | 630 case 'K': /* Key sequence to be defined. */ |
622 { | 631 { |
623 int speccount1 = SPECPDL_INDEX (); | 632 int speccount1 = SPECPDL_INDEX (); |
624 specbind (Qcursor_in_echo_area, Qt); | 633 specbind (Qcursor_in_echo_area, Qt); |
634 /* Prompt in `minibuffer-prompt' face. */ | |
635 Fput_text_property (make_number (0), | |
636 make_number (SCHARS (callint_message)), | |
637 Qface, Qminibuffer_prompt, callint_message); | |
625 args[i] = Fread_key_sequence (callint_message, | 638 args[i] = Fread_key_sequence (callint_message, |
626 Qnil, Qt, Qnil, Qnil); | 639 Qnil, Qt, Qnil, Qnil); |
627 teml = args[i]; | 640 teml = args[i]; |
628 visargs[i] = Fkey_description (teml, Qnil); | 641 visargs[i] = Fkey_description (teml, Qnil); |
629 unbind_to (speccount1, Qnil); | 642 unbind_to (speccount1, Qnil); |