int from_backend(void *vterm, int is_stderr, char *data, int len)
int from_backend(void *vterm, int is_stderr, const char *data, int len)
int from_backend(void *vterm, int is_stderr, char *data, int len){    Terminal *term = (Terminal *)vterm;    assert(len > 0);    bufchain_add(&term->inbuf, data, len);    /*     * term_out() always completely empties inbuf. Therefore,     * there's no reason at all to return anything other than zero     * from this function, because there _can't_ be a question of     * the remote side needing to wait until term_out() has cleared     * a backlog.     *     * This is a slightly suboptimal way to deal with SSH2 - in     * principle, the window mechanism would allow us to continue     * to accept data on forwarded ports and X connections even     * while the terminal processing was going slowly - but we     * can't do the 100% right thing without moving the terminal     * processing into a separate thread, and that might hurt     * portability. So we manage stdout buffering the old SSH1 way:     * if the terminal processing goes slowly, the whole SSH     * connection stops accepting data until it's ready.     *     * In practice, I can't imagine this causing serious trouble.     */    return 0;}