In Go you can format numbers in different ways, as doucment in
https://go.dev/ref/spec#Integer_literals.
ParseInt with a base of 0 will infer the correct base for the number
based on a prefix 0x, 0b etc, and also supports the use of the _
to separate digits. This can be helpful with long numbers, to make
things easier to read.
This switches the ParseInt() calls to use a base of 0, ensuring that if
ParseValue is called with an int like 100_000 it'll parse correctly
instead of throw an error.
The patch makes sure that both values and pointer to values are checked
for custom TextUnmarshal implementation. This will allow to use go-arg
custom parsing as follows:
var args struct {
Arg CustomType
}
instead of
var args struct {
Arg *CustomType
}
Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>