/* Terminal private data */
struct RoteTermPrivate_ {
- bool escaped; /* whether we are currently reading an
- * escape sequence */
+ bool escaped; /* whether we are currently reading an
+ * escape sequence */
- bool graphmode; /* whether terminal is in graphical
- * character mode or not */
+ bool graphmode; /* whether terminal is in graphical
+ * character mode or not */
- int scrolltop, scrollbottom; /* current scrolling region of terminal */
- int saved_x, saved_y; /* saved cursor position */
+ int scrolltop, scrollbottom; /* current scrolling region of terminal */
+ int saved_x, saved_y; /* saved cursor position */
- char esbuf[ESEQ_BUF_SIZE]; /* 0-terminated string. Does NOT include
- * the initial escape (\x1B) character. */
- int esbuf_len; /* length of buffer. The following property
- * is always kept: esbuf[esbuf_len] == '\0' */
+ char esbuf[ESEQ_BUF_SIZE]; /* 0-terminated string. Does NOT include
+ * the initial escape (\x1B) character. */
+ int esbuf_len; /* length of buffer. The following property
+ * is always kept: esbuf[esbuf_len] == '\0' */
- int pty; /* file descriptor for the pty attached to
- * this terminal. -1 if none. */
+ int pty; /* file descriptor for the pty attached to
+ * this terminal. -1 if none. */
- /* custom escape sequence handler */
- rote_es_handler_t handler;
+ /* custom escape sequence handler */
+ rote_es_handler_t handler;
};
-#endif
+/* Interprets a CSI escape sequence stored in rt->pd->esbuf,
+ * changing rt to reflect the effect of the sequence. This function
+ * will not change rt->pd->esbuf, rt->pd->escaped or other escape-sequence
+ * related fields in it */
+void rote_es_interpret_csi(RoteTerm *rt);
+#endif