aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--logic/cmd.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/logic/cmd.go b/logic/cmd.go
index dac6aad..dd65a1b 100644
--- a/logic/cmd.go
+++ b/logic/cmd.go
@@ -50,13 +50,16 @@ func ParseCmd(s string) (Cmd, error) {
if i, exists := cmdTable[split[1]]; exists {
argv = append(argv, i)
argc++
+ } else {
+ return Cmd{}, fmt.Errorf("Invalid help topic \"%s\"", split[1])
}
}
if argc < 1 {
argv = append(argv, 0)
argc++
}
- case "i", "insert": fallthrough
+ case "i", "insert":
+ fallthrough
case "c", "cancel":
if len(split) < 2 {
return Cmd{}, errors.New(split[0] + ": missing argument")
@@ -66,7 +69,7 @@ func ParseCmd(s string) (Cmd, error) {
} else if i, err := strconv.Atoi(split[1]); err != nil {
return Cmd{}, err
} else if i < 1 || i > 13 {
- return Cmd{}, errors.New(split[0] + ": position out of range")
+ return Cmd{}, fmt.Errorf("%s: %d out of range", split[0], i)
} else {
argv = append(argv, i-1)
}
@@ -78,7 +81,7 @@ func ParseCmd(s string) (Cmd, error) {
return Cmd{}, err
}
if i < 1 || i > 5 {
- return Cmd{}, errors.New("r: dice index out of range")
+ return Cmd{}, fmt.Errorf("r: %d out of range", i)
}
argv = append(argv, i)
argc++
@@ -92,7 +95,7 @@ func ParseCmd(s string) (Cmd, error) {
argv = append(argv, cmdTable["pos"])
argc++
default:
- return Cmd{}, errors.New("Invalid command")
+ return Cmd{}, fmt.Errorf("Invalid command \"%v\"", split[0])
}
return Cmd{split[0], argv[0:argc], argc}, nil