]> Devi Nivas Git - cs3210-lab1.git/commitdiff
handle EOF in shell
authorrsc <rsc>
Wed, 8 Aug 2007 08:39:07 +0000 (08:39 +0000)
committerrsc <rsc>
Wed, 8 Aug 2007 08:39:07 +0000 (08:39 +0000)
sh.c

diff --git a/sh.c b/sh.c
index 4a43b274620218968fa60bf2676be959c43884d7..e74fa7241b1c9d572aaf3cee8fda90d1c8c81b4e 100644 (file)
--- 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