X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=madtty%2Fmadtty.h;h=2ad212e0e553c553809d3b399ccbd00906d1c2dd;hb=880886ae6dca338d2d57e4b85cf984f4022ec520;hp=373d1f36935a2a7aced4ca6a918e477c48763543;hpb=5618d7a42ce62103e5f29da3756b81f57198b22f;p=apps%2Fmadtty.git diff --git a/madtty/madtty.h b/madtty/madtty.h index 373d1f3..2ad212e 100644 --- a/madtty/madtty.h +++ b/madtty/madtty.h @@ -118,12 +118,14 @@ typedef struct RoteTerm_ { * that will be used for newly inserted * characters */ + int pty; /* pty of the process */ pid_t childpid; /* pid of the child process running in the * terminal; 0 for none. This is READ-ONLY. */ 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) --- */ @@ -166,7 +168,7 @@ void rote_vt_destroy(RoteTerm *rt); * to execute the command and will exit with status 127. You can catch * that by installing a SIGCHLD handler if you want. */ -pid_t rote_vt_forkpty(RoteTerm *rt, const char *command); +pid_t rote_vt_forkpty(RoteTerm *rt, const char *path, const char *argv[]); /* Disconnects the RoteTerm from its forked child process. This function * should be called when the child process dies or something of the sort. @@ -174,14 +176,7 @@ pid_t rote_vt_forkpty(RoteTerm *rt, const char *command); * certainly tidy. */ void rote_vt_forsake_child(RoteTerm *rt); -/* Does some data plumbing, that is, sees if the sub process has - * something to write to the terminal, and if so, write it. If you - * called rote_vt_fork to start a forked process, you must call - * this function regularly to update the terminal. - * - * This function will not block, that is, if there is no data to be - * read from the child process it will return immediately. */ -void rote_vt_update(RoteTerm *rt); +int rote_vt_read(RoteTerm *rt, char *buf, int buflen); /* Puts data into the terminal: if there is a forked process running, * the data will be sent to it. If there is no forked process, @@ -214,8 +209,6 @@ void rote_vt_inject(RoteTerm *rt, const char *data, int length); * cursor of the terminal is supposed to be. * * This function does not call wrefresh(win); you have to do that yourself. - * This function automatically calls rote_vt_update prior to drawing - * so that the drawn contents are accurate. */ void rote_vt_draw(RoteTerm *rt, WINDOW *win, int startrow, int startcol, void (*cur_set_attr)(WINDOW *win, unsigned char attr)); @@ -240,13 +233,4 @@ 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); - #endif /* MADTTY_MADTTY_H */