From f8f7fcbebdae7d3c8ac697373d0769d1ccfc31ae Mon Sep 17 00:00:00 2001 From: rsc Date: Wed, 8 Aug 2007 08:39:07 +0000 Subject: handle EOF in shell --- sh.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'sh.c') diff --git a/sh.c b/sh.c index 4a43b27..e74fa72 100644 --- a/sh.c +++ b/sh.c @@ -42,12 +42,15 @@ main(void) { while(1){ puts("$ "); - memset(buf, '\0', sizeof(buf)); - gets(buf, sizeof(buf)); + memset(buf, 0, sizeof buf); + gets(buf, sizeof buf); + if(buf[0] == 0) // EOF + break; if(parse(buf) < 0) continue; runcmd(); } + exit(); } int -- cgit v1.2.3