summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2011-04-08 11:37:15 -0400
committerChong Yidong <cyd@stupidchicken.com>2011-04-08 11:37:15 -0400
commitcbb59342310c395a04b5dc85454938167793dd96 (patch)
tree833ee203c2b09cd9f826cc25081811d38e15a484 /src
parente3971c4440fc828326aaeec79d1a53638d67ed0f (diff)
downloademacs-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/ChangeLog10
-rw-r--r--src/keyboard.c10
-rw-r--r--src/lisp.h2
-rw-r--r--src/print.c23
-rw-r--r--src/window.c3
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))