X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/1375eb51603466b723ab7dd1ca4194ee5d662f75..0765e7c133eb393d8cd0292af444543c2edf8ccc:/lunaix-os/hal/term/term_io.c diff --git a/lunaix-os/hal/term/term_io.c b/lunaix-os/hal/term/term_io.c index 729e549..835659d 100644 --- a/lunaix-os/hal/term/term_io.c +++ b/lunaix-os/hal/term/term_io.c @@ -33,7 +33,7 @@ do_read_raw(struct term* tdev) max_lb_sz -= sz; // TODO pass a flags to read to indicate it is non blocking ops - sz += chdev->ops.read_async(chdev, inbuffer, sz, max_lb_sz); + sz += chdev->ops.read_async(chdev, &inbuffer[sz], 0, max_lb_sz); } rbuffer_puts(line_in->next, inbuffer, sz); @@ -61,7 +61,6 @@ term_read_noncano(struct term* tdev) { struct device* chdev = tdev->chdev; return do_read_raw(tdev); - ; } static int @@ -95,19 +94,19 @@ int term_flush(struct term* tdev) { if ((tdev->oflags & _OPOST)) { - lcntl_transform_inseq(tdev); + lcntl_transform_outseq(tdev); } struct linebuffer* line_out = &tdev->line_out; size_t xmit_len = line_out->current->len; - void* xmit_buf = line_out->next->buffer; + char* xmit_buf = line_out->next->buffer; rbuffer_gets(line_out->current, xmit_buf, xmit_len); off_t off = 0; int ret = 0; while (xmit_len && ret >= 0) { - ret = tdev->chdev->ops.write(tdev->chdev, xmit_buf, off, xmit_len); + ret = tdev->chdev->ops.write(tdev->chdev, &xmit_buf[off], 0, xmit_len); xmit_len -= ret; off += ret; }