Browse Source

Make EOF work slightly better in muesly command interpreter.

Beoran 4 years ago
parent
commit
6c4c374381
1 changed files with 9 additions and 3 deletions
  1. 9 3
      cmd/muesli/main.go

+ 9 - 3
cmd/muesli/main.go

@@ -3,6 +3,7 @@ package main
 import (
 	"fmt"
 	"os"
+    "io"
 	"path/filepath"
 )
 
@@ -48,7 +49,9 @@ func runLines(vm *muesli.VM, line *liner.State) error {
 		} else if err == liner.ErrPromptAborted {
 			os.Stderr.WriteString("Aborted\n")
 			return nil
-		} else {
+		} else if err == io.EOF { 
+            return nil
+        } else {
 			os.Stderr.WriteString(fmt.Sprintf("Error reading line: %s\n", err))
 		}
 	}
@@ -63,7 +66,9 @@ func runFile(vm *muesli.VM, name string) error {
 	}
 	ast := parser.Parse()
 	err = ast.ToError()
-	if err != nil {
+    if err == io.EOF { 
+        return nil
+    } else if err != nil {
 		os.Stderr.WriteString(fmt.Sprintf("%s: execution error\n", err))
 		return err
 	}
@@ -98,13 +103,14 @@ func main() {
 		f.Close()
 	} 
 	
-	if len(os.Args) > 0 {
+	if len(os.Args) > 1 {
 		for _, name := range os.Args {
 			err := runFile(vm, name)
 			if err != nil {
 				return
 			}
 		}
+        return 
 	}
 	
 	runLines(vm, line)