X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Fcmdline.c;h=e6662bd339105c2d72cd142a446fa3a21832027e;hb=2e949478bc20b52358b9093a8d3ae88d186fb8fc;hp=6d37885bbb1ea50f8ff03b29f6e40d238e9addbd;hpb=c1d9d291f2bc55b98d5f25ea7c0ee2f33f16b1b6;p=libcmdline.git diff --git a/src/lib/cmdline.c b/src/lib/cmdline.c index 6d37885..e6662bd 100644 --- a/src/lib/cmdline.c +++ b/src/lib/cmdline.c @@ -97,13 +97,16 @@ cmdline_complete_buffer(struct rdline *rdl, const char *buf, return cmdline_complete(cl, buf, state, dstbuf, dstsize); } -void +int cmdline_write_char(struct rdline *rdl, char c) { + int ret = -1; struct cmdline *cl = rdl->opaque; - if (cl->s_out >= 0) { - write(cl->s_out, &c, 1); - } + + if (cl->s_out >= 0) + ret = write(cl->s_out, &c, 1); + + return ret; } @@ -222,10 +225,10 @@ cmdline_interact(struct cmdline *cl) c = -1; while (1) { - read(cl->s_in, &c, 1); - if (cmdline_in(cl, &c, 1) < 0) { + if (read(cl->s_in, &c, 1) < 0) + break; + if (cmdline_in(cl, &c, 1) < 0) break; - } } cmdline_free(cl); }