Better error message that helps issue #49 .

This commit is contained in:
Tnze
2020-04-04 17:06:15 +08:00
parent 739761d434
commit 73727eccb9
2 changed files with 6 additions and 6 deletions

View File

@ -23,7 +23,7 @@ func main() {
args := flag.Args() args := flag.Args()
var o string var o string
o = "."// output dir o = "." // output dir
if len(args) < 2 { if len(args) < 2 {
usage() usage()
} }
@ -44,7 +44,7 @@ func main() {
} }
func usage() { func usage() {
_, _ = fmt.Fprintf(os.Stderr, "usage: %s [-x] [-r] r.<X>.<Z>.mc{a,c}\n", flag.Arg(0)) _, _ = fmt.Fprintf(os.Stderr, "usage: %s [-x] [-r] r.<X>.<Z>.mc{a,c}\n", os.Args[0])
os.Exit(1) os.Exit(1)
} }

View File

@ -32,7 +32,7 @@ func (d *Decoder) Decode(v interface{}) error {
err = d.unmarshal(val.Elem(), tagType, tagName) err = d.unmarshal(val.Elem(), tagType, tagName)
if err != nil { if err != nil {
return fmt.Errorf("nbt: %w", err) return fmt.Errorf("nbt: fail to decode tag %q: %w", tagName, err)
} }
return nil return nil
} }
@ -304,7 +304,7 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte, tagName string) err
if field != -1 { if field != -1 {
err = d.unmarshal(val.Field(field), tt, tn) err = d.unmarshal(val.Field(field), tt, tn)
if err != nil { if err != nil {
return err return fmt.Errorf("fail to decode tag %q: %w", tn, err)
} }
} else { } else {
if err := d.rawRead(tt); err != nil { if err := d.rawRead(tt); err != nil {
@ -329,7 +329,7 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte, tagName string) err
} }
v := reflect.New(val.Type().Elem()) v := reflect.New(val.Type().Elem())
if err = d.unmarshal(v.Elem(), tt, tn); err != nil { if err = d.unmarshal(v.Elem(), tt, tn); err != nil {
return err return fmt.Errorf("fail to decode tag %q: %w", tn, err)
} }
val.SetMapIndex(reflect.ValueOf(tn), v.Elem()) val.SetMapIndex(reflect.ValueOf(tn), v.Elem())
} }
@ -345,7 +345,7 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte, tagName string) err
} }
var value interface{} var value interface{}
if err = d.unmarshal(reflect.ValueOf(&value).Elem(), tt, tn); err != nil { if err = d.unmarshal(reflect.ValueOf(&value).Elem(), tt, tn); err != nil {
return err return fmt.Errorf("fail to decode tag %q: %w", tn, err)
} }
buf[tn] = value buf[tn] = value
} }