tree234 *screen; /* lines on primary screen */
tree234 *alt_screen; /* lines on alternate screen */
int disptop; /* distance scrolled back (0 or -ve) */
+ int tempsblines; /* number of lines in temporary
+ scrollback */
unsigned long *cpos; /* cursor position (convenience) */
int beep_overloaded;
long lastbeep;
-#define TSIZE (sizeof(unsigned long))
+#define TTYPE unsigned long
+#define TSIZE (sizeof(TTYPE))
#define fix_cpos do { \
term->cpos = lineptr(term->curs.y) + term->curs.x; \
} while(0)
struct scrollregion *scrollhead, *scrolltail;
#endif /* OPTIMISE_SCROLL */
- unsigned long curr_attr, save_attr;
+ unsigned long default_attr, curr_attr, save_attr;
unsigned long erase_char;
bufchain inbuf; /* terminal input buffer */
int alt_cset, alt_sco_acs, alt_utf;
int alt_t, alt_b;
int alt_which;
+ int alt_sblines; /* # of lines on alternate screen that should be used for scrollback. */
#define ARGS_MAX 32 /* max # of esc sequence arguments */
#define ARG_DEFAULT 0 /* if an arg isn't specified */
* than only the default.
*/
Config cfg;
+
+ /*
+ * from_backend calls term_out, but it can also be called from
+ * the ldisc if the ldisc is called _within_ term_out. So we
+ * have to guard against re-entrancy - if from_backend is
+ * called recursively like this, it will simply add data to the
+ * end of the buffer term_out is in the process of working
+ * through.
+ */
+ int in_term_out;
+
+ /*
+ * These are buffers used by the bidi and Arabic shaping code.
+ */
+ unsigned long *ltemp;
+ bidi_char *wcFrom, *wcTo;
+ unsigned long **pre_bidi_cache, **post_bidi_cache;
+ int bidi_cache_size;
};
#define in_utf(term) ((term)->utf || (term)->ucsdata->line_codepage==CP_UTF8)