#include <signal.h>
#include <stdio.h>
#include <ctype.h>
+#include <setjmp.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
Control characters in STRING will have terminal-dependent effects.
Optional parameter TERMINAL specifies the tty terminal device to use.
-It may be a terminal object, a frame, or nil for the terminal used by the
-currently selected frame. */)
+It may be a terminal object, a frame, or nil for the terminal used by
+the currently selected frame. In batch mode, STRING is sent to stdout
+when TERMINAL is nil. */)
(string, terminal)
Lisp_Object string;
Lisp_Object terminal;
{
- struct terminal *t = get_tty_terminal (terminal, 1);
- struct tty_display_info *tty;
+ struct terminal *t = get_terminal (terminal, 1);
+ FILE *out;
/* ??? Perhaps we should do something special for multibyte strings here. */
CHECK_STRING (string);
if (!t)
error ("Unknown terminal device");
- tty = t->display_info.tty;
+ if (t->type == output_initial)
+ out = stdout;
+ else if (t->type != output_termcap && t->type != output_msdos_raw)
+ error ("Device %d is not a termcap terminal device", t->id);
+ else
+ {
+ struct tty_display_info *tty = t->display_info.tty;
- if (! tty->output)
- error ("Terminal is currently suspended");
+ if (! tty->output)
+ error ("Terminal is currently suspended");
- if (tty->termscript)
- {
- fwrite (SDATA (string), 1, SBYTES (string), tty->termscript);
- fflush (tty->termscript);
+ if (tty->termscript)
+ {
+ fwrite (SDATA (string), 1, SBYTES (string), tty->termscript);
+ fflush (tty->termscript);
+ }
+ out = tty->output;
}
- fwrite (SDATA (string), 1, SBYTES (string), tty->output);
- fflush (tty->output);
+ fwrite (SDATA (string), 1, SBYTES (string), out);
+ fflush (out);
UNBLOCK_INPUT;
return Qnil;
}
#endif
)
{
- Vinitial_window_system = intern ("x");
+ Vinitial_window_system = Qx;
#ifdef HAVE_X11
Vwindow_system_version = make_number (11);
#endif
#ifdef HAVE_NTGUI
if (!inhibit_window_system)
{
- Vinitial_window_system = intern ("w32");
+ Vinitial_window_system = Qw32;
Vwindow_system_version = make_number (1);
adjust_frame_glyphs_initially ();
return;
#endif
)
{
- Vinitial_window_system = intern("ns");
+ Vinitial_window_system = Qns;
Vwindow_system_version = make_number(10);
adjust_frame_glyphs_initially ();
return;