diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2011-04-08 11:37:15 -0400 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2011-04-08 11:37:15 -0400 |
commit | cbb59342310c395a04b5dc85454938167793dd96 (patch) | |
tree | 833ee203c2b09cd9f826cc25081811d38e15a484 /src | |
parent | e3971c4440fc828326aaeec79d1a53638d67ed0f (diff) | |
download | emacs-cbb59342310c395a04b5dc85454938167793dd96.tar.gz |
Remove internal_with_output_to_temp_buffer, replacing sole user with Lisp.
* lisp/help.el (help-form-show): New function, to be called from C.
Put help-form output in a buffer named differently than *Help*.
* src/keyboard.c (read_char): Call Lisp function help-form-show,
instead of using internal_with_output_to_temp_buffer.
(Qhelp_form_show): New var.
* src/lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
* src/print.c (internal_with_output_to_temp_buffer): Function deleted.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 10 | ||||
-rw-r--r-- | src/keyboard.c | 10 | ||||
-rw-r--r-- | src/lisp.h | 2 | ||||
-rw-r--r-- | src/print.c | 23 | ||||
-rw-r--r-- | src/window.c | 3 |
5 files changed, 16 insertions, 32 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 3e4100878c4..e74643be30a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2011-04-08 Chong Yidong <cyd@stupidchicken.com> + + * keyboard.c (read_char): Call Lisp function help-form-show, + instead of using internal_with_output_to_temp_buffer. + (Qhelp_form_show): New var. + + * print.c (internal_with_output_to_temp_buffer): Function deleted. + + * lisp.h (internal_with_output_to_temp_buffer): Remove prototype. + 2011-04-06 Chong Yidong <cyd@stupidchicken.com> * process.c (Flist_processes): Removed to Lisp. diff --git a/src/keyboard.c b/src/keyboard.c index ae4fddb2c89..70bd47181b1 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -260,6 +260,8 @@ Lisp_Object Qdeferred_action_function; Lisp_Object Qinput_method_exit_on_first_char; Lisp_Object Qinput_method_use_echo_area; +Lisp_Object Qhelp_form_show; + /* File in which we write all commands we read. */ FILE *dribble; @@ -3095,10 +3097,7 @@ read_char (int commandflag, int nmaps, Lisp_Object *maps, Lisp_Object prev_event = Fcons (Fcurrent_window_configuration (Qnil), help_form_saved_window_configs); record_unwind_protect (read_char_help_form_unwind, Qnil); - - tem0 = Feval (Vhelp_form, Qnil); - if (STRINGP (tem0)) - internal_with_output_to_temp_buffer ("*Help*", print_help, tem0); + call0 (Qhelp_form_show); cancel_echoing (); do @@ -11602,6 +11601,9 @@ syms_of_keyboard (void) Qinput_method_use_echo_area = intern_c_string ("input-method-use-echo-area"); staticpro (&Qinput_method_use_echo_area); + Qhelp_form_show = intern_c_string ("help-form-show"); + staticpro (&Qhelp_form_show); + Fset (Qinput_method_exit_on_first_char, Qnil); Fset (Qinput_method_use_echo_area, Qnil); diff --git a/src/lisp.h b/src/lisp.h index f3016d521d1..250c0d807ac 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -2775,8 +2775,6 @@ extern Lisp_Object Qprint_escape_newlines; extern void write_string (const char *, int); extern void print_error_message (Lisp_Object, Lisp_Object, const char *, Lisp_Object); -extern Lisp_Object internal_with_output_to_temp_buffer - (const char *, Lisp_Object (*) (Lisp_Object), Lisp_Object); #define FLOAT_TO_STRING_BUFSIZE 350 extern void float_to_string (char *, double); extern void syms_of_print (void); diff --git a/src/print.c b/src/print.c index c076e1ec973..f68f04ac5fa 100644 --- a/src/print.c +++ b/src/print.c @@ -520,29 +520,6 @@ temp_output_buffer_setup (const char *bufname) specbind (Qstandard_output, buf); } - -/* FIXME: Use Lisp's with-output-to-temp-buffer instead! */ -Lisp_Object -internal_with_output_to_temp_buffer (const char *bufname, Lisp_Object (*function) (Lisp_Object), Lisp_Object args) -{ - int count = SPECPDL_INDEX (); - Lisp_Object buf, val; - struct gcpro gcpro1; - - GCPRO1 (args); - record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); - temp_output_buffer_setup (bufname); - buf = Vstandard_output; - UNGCPRO; - - val = (*function) (args); - - GCPRO1 (val); - temp_output_buffer_show (buf); - UNGCPRO; - - return unbind_to (count, val); -} static void print (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag); static void print_preprocess (Lisp_Object obj); diff --git a/src/window.c b/src/window.c index 5ca46dd3316..d023f9a29cd 100644 --- a/src/window.c +++ b/src/window.c @@ -3664,9 +3664,6 @@ temp_output_buffer_show (register Lisp_Object buf) BEGV = BEG; ZV = Z; SET_PT (BEG); -#if 0 /* rms: there should be no reason for this. */ - XBUFFER (buf)->prevent_redisplay_optimizations_p = 1; -#endif set_buffer_internal (old); if (!NILP (Vtemp_buffer_show_function)) |