rename the project into madtty.
[apps/madtty.git] / rote.h
diff --git a/rote.h b/rote.h
index a4f6b3e..7654784 100644 (file)
--- a/rote.h
+++ b/rote.h
@@ -29,7 +29,11 @@ Copyright (c) 2004 Bruno T. C. de Oliveira
 #ifndef btco_ROTE_rote_h
 #define btco_ROTE_rote_h
 
+#ifdef USE_NCURSES
 #include <ncurses.h>
+#else
+#include <stdbool.h>
+#endif
 #include <sys/types.h>
 #include <unistd.h>
 #include <stdlib.h>
@@ -126,6 +130,7 @@ typedef struct RoteTerm_ {
 
    RoteTermPrivate *pd;         /* private state data */
 
+   bool insert;                 /* insert or replace mode */
    /* --- dirtiness flags: the following flags will be raised when the
     * corresponding items are modified. They can only be unset by YOU
     * (when, for example, you redraw the term or something) --- */
@@ -200,6 +205,7 @@ void rote_vt_write(RoteTerm *rt, const char *data, int length);
  */
 void rote_vt_inject(RoteTerm *rt, const char *data, int length);
 
+#ifdef USE_NCURSES
 /* Paints the virtual terminal screen on the given window, putting
  * the top-left corner at the given position. The cur_set_attr
  * function must set the curses attributes given a Rote attribute
@@ -221,6 +227,7 @@ void rote_vt_inject(RoteTerm *rt, const char *data, int length);
 void rote_vt_draw(RoteTerm *rt, WINDOW *win, int startrow, int startcol,
                   void (*cur_set_attr)(WINDOW *win, unsigned char attr));
 
+#endif
 /* Indicates to the terminal that the given key has been pressed.
  * This will cause the terminal to rote_vt_write() the appropriate
  * escape sequence for that key (that is, the escape sequence
@@ -240,6 +247,15 @@ void *rote_vt_take_snapshot(RoteTerm *rt);
  * This function does NOT free() the passed buffer */
 void rote_vt_restore_snapshot(RoteTerm *rt, void *snapbuf);
 
+/* Returns the pseudo tty descriptor associated with the given terminal.
+ * Please don't do weird things with it (like close it for instance),
+ * or things will break 
+ * 
+ * This function returns -1 if the given terminal does not yet have
+ * an associated pty. A pty is only associated to a terminal when
+ * needed, e.g. on a call to rote_vt_forkpty. */
+int rote_vt_get_pty_fd(RoteTerm *rt);
+
 /* Declaration of custom escape sequence callback type. See the
  * rote_vt_add_es_handler function for more info */
 typedef int (*rote_es_handler_t)(RoteTerm *rt, const char *es);