diff --git a/usage.go b/usage.go index 64ed901..fa01229 100644 --- a/usage.go +++ b/usage.go @@ -5,6 +5,7 @@ import ( "io" "os" "path/filepath" + "reflect" "strings" ) @@ -76,6 +77,7 @@ func (p *Parser) WriteHelp(w io.Writer) { } } + // write the list of options fmt.Fprint(w, "\noptions:\n") for _, spec := range options { printOption(w, spec) @@ -103,9 +105,11 @@ func printOption(w io.Writer, spec *spec) { // Check if spec.dest is zero value or not // If it isn't a default value have been added v := spec.dest - z := reflect.Zero(v.Type()) - if v.Interface() != z.Interface() { - fmt.Fprintf(w, " [default: %v]", v) + if v.IsValid() { + z := reflect.Zero(v.Type()) + if v.Interface() != z.Interface() { + fmt.Fprintf(w, " [default: %v]", v) + } } fmt.Fprint(w, "\n") }