invoking them correctly. */
/* # include <curses.h> */
/* # include <term.h> */
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int tgetent (const char *, const char *);
-extern int tgetflag (const char *);
-extern int tgetnum (const char *);
-extern char *tgetstr (const char *, char **);
-extern void tputs (const char *, int, void (*)(int));
-#ifdef __cplusplus
-}
-#endif
+EXTERN_C int tgetent (const char *, const char *);
+EXTERN_C int tgetflag (const char *);
+EXTERN_C int tgetnum (const char *);
+EXTERN_C char *tgetstr (const char *, char **);
+EXTERN_C void tputs (const char *, int, void (*)(int));
+
#define FORCE_CURSOR_UPDATE(c) send_string_to_tty_console (c, 0, 0)
#define OUTPUTN(c, a, n) \
do { \
#endif
tty_frame_output_end (struct frame *f)
{
- struct device *d = XDEVICE (FRAME_DEVICE (f));
- struct console *c = XCONSOLE (DEVICE_CONSOLE (d));
+ struct console *c = XCONSOLE (FRAME_CONSOLE (f));
CONSOLE_TTY_CURSOR_X (c) = CONSOLE_TTY_FINAL_CURSOR_X (c);
CONSOLE_TTY_CURSOR_Y (c) = CONSOLE_TTY_FINAL_CURSOR_Y (c);
case IMAGE_TEXT:
case IMAGE_POINTER:
default:
- abort ();
+ ABORT ();
}
IMAGE_INSTANCE_OPTIMIZE_OUTPUT
(XIMAGE_INSTANCE (instance)) = 0;
elt++;
}
else
- abort ();
+ ABORT ();
}
}
OUTPUT1_IF (c, TTY_SD (c).init_motion);
OUTPUT1_IF (c, TTY_SD (c).cursor_visible);
OUTPUT1_IF (c, TTY_SD (c).keypad_on);
+
+ if (TTY_FLAGS (c).auto_margins)
+ OUTPUT1_IF (c, TTY_SD (c).disable_auto_margins);
}
/*****************************************************************************
OUTPUT1_IF (c, TTY_SD (c).keypad_off);
OUTPUT1_IF (c, TTY_SD (c).cursor_normal);
OUTPUT1_IF (c, TTY_SD (c).end_motion);
- tty_frame_output_end (XFRAME (CONSOLE_SELECTED_FRAME (c)));
+
+ if (TTY_FLAGS (c).auto_margins)
+ OUTPUT1_IF (c, TTY_SD (c).enable_auto_margins);
+
+ {
+ Lisp_Object frm = CONSOLE_SELECTED_FRAME (c);
+
+ if (!NILP (frm))
+ tty_frame_output_end (XFRAME (frm));
+ }
}
/*****************************************************************************
up or removed. */
+#ifdef NOT_YET
/* FLAGS - these don't need to be console local since only one console
can be being updated at a time. */
static int insert_mode_on; /* nonzero if in insert mode */
static int alternate_mode_on; /* nonzero if in alternate char set */
static int attributes_on; /* nonzero if any attributes on */
-#ifdef NOT_YET
static void
turn_on_insert (struct frame *f)
{
CONSOLE_TTY_DATA (c)->term_entry_buffer = (char *) xmalloc (2044);
bufptr = CONSOLE_TTY_DATA (c)->term_entry_buffer;
-#if !defined(WIN32)
+#ifdef SIGTTOU
/* SIGTT* don't exist under win32 */
EMACS_BLOCK_SIGNAL (SIGTTOU);
#endif
status = tgetent (entry_buffer, terminal_type);
-#if !defined(WIN32)
+#ifdef SIGTTOU
EMACS_UNBLOCK_SIGNAL (SIGTTOU);
#endif
#if 0
TTY_SD (c).audio_bell = "\07";
}
- TTY_SD (c).cursor_visible = tgetstr ("ve", &bufptr);
- TTY_SD (c).cursor_normal = tgetstr ("vs", &bufptr);
+ TTY_SD (c).cursor_visible = tgetstr ("vs", &bufptr);
+ TTY_SD (c).cursor_normal = tgetstr ("ve", &bufptr);
TTY_SD (c).init_motion = tgetstr ("ti", &bufptr);
TTY_SD (c).end_motion = tgetstr ("te", &bufptr);
TTY_SD (c).keypad_on = tgetstr ("ks", &bufptr);
TTY_SD (c).keypad_off = tgetstr ("ke", &bufptr);
+ TTY_SD (c).disable_auto_margins = tgetstr ("RA", &bufptr);
+ TTY_SD (c).enable_auto_margins = tgetstr ("SA", &bufptr);
/*
TTY_FLAGS (c).memory_below_frame = tgetflag ("db");
TTY_FLAGS (c).standout_width = tgetnum ("sg");
TTY_FLAGS (c).underline_width = tgetnum ("ug");
+ TTY_FLAGS (c).auto_margins = tgetflag ("am");
if (TTY_FLAGS (c).standout_width == -1)
TTY_FLAGS (c).standout_width = 0;
*/
cm_cost_init (c);
+#ifdef NOT_YET
/*
* Initialize local flags.
*/
underline_mode_on = 0;
alternate_mode_on = 0;
attributes_on = 0;
+#endif
/*
* Attempt to initialize the function_key_map to