From 2e702c7ed4d31bf1972ee6f9cb5dca82042b26f4 Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Wed, 15 Nov 2023 15:56:09 +0300 Subject: [PATCH] + --- sys/md/md_tty.pas | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/sys/md/md_tty.pas b/sys/md/md_tty.pas index 4040fa3d..0addf08a 100644 --- a/sys/md/md_tty.pas +++ b/sys/md/md_tty.pas @@ -57,18 +57,21 @@ end; function ttydisc_read(tp:p_tty;uio:p_uio;ioflag:Integer):Integer; var - len:QWORD; - S:RawByteString; + LEN:QWORD; + BLK:IO_STATUS_BLOCK; + OFFSET:Int64; + BUF:array[0..1023] of AnsiChar; begin - Readln(S); - - len:=Length(S); - if (len > uio^.uio_resid) then - begin - len:=uio^.uio_resid; - end; - - Result:=uiomove(PChar(S), len, uio); + //init + BLK:=Default(IO_STATUS_BLOCK); + OFFSET:=0; + // + LEN:=uio^.uio_resid; + if (len>Length(BUF)) then len:=Length(BUF); + // + NtReadFile(tp^.t_rd_handle,0,nil,nil,@BLK,@BUF,LEN,@OFFSET,nil); + // + Result:=uiomove(@BUF, BLK.Information, uio); end; function ttydisc_write(tp:p_tty;uio:p_uio;ioflag:Integer):Integer;