From 46d959f0cb9de4fdce4a4dbb89e80d05ca100069 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Mon, 14 May 2007 23:52:39 +0000 Subject: [PATCH] Fix the NUL device so it returns 0 bytes for reads, independent of whether cooked or raw mode is used. It was broken for raw mode. Fixes problem with DJGPP sed (see http://sourceforge.net/tracker/index.php?func=detail&aid=1429741&group_id=49784&atid=457447) git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1306 6ac86273-5f31-0410-b378-82cca8765d1b --- kernel/dosfns.c | 2 +- kernel/kernel.asm | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/dosfns.c b/kernel/dosfns.c index 2e97e47..f18f685 100644 --- a/kernel/dosfns.c +++ b/kernel/dosfns.c @@ -263,7 +263,7 @@ long DosRWSft(int sft_idx, size_t n, void FAR * bp, int mode) /* Test for eof and exit */ /* immediately if it is */ - if (!(s->sft_flags & SFT_FEOF) || (s->sft_flags & SFT_FNUL)) + if (!(s->sft_flags & SFT_FEOF)) return 0; if (s->sft_flags & SFT_FCONIN) diff --git a/kernel/kernel.asm b/kernel/kernel.asm index fe01dd5..db8257c 100644 --- a/kernel/kernel.asm +++ b/kernel/kernel.asm @@ -223,6 +223,10 @@ _nul_intr: push es push bx les bx,[cs:_ReqPktPtr] ;es:bx--> rqheadr + cmp byte [es:bx+2],4 ;if read, set 0 read + jne no_nul_read + mov word [es:bx+12h],0 +no_nul_read: or word [es:bx+3],100h ;set "done" flag pop bx pop es