mirror of
https://github.com/golang/go.git
synced 2024-09-21 10:28:27 +00:00
flag: handle nil os.Args when setting CommandLine at package level
Fixes #68340
Change-Id: I65037be6961e9ec720537713cb3f23ab9f5f8459
GitHub-Last-Rev: fadcb299c3
GitHub-Pull-Request: golang/go#68341
Reviewed-on: https://go-review.googlesource.com/c/go/+/597075
Reviewed-by: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
parent
53270be21c
commit
00cb41e14d
@ -1196,9 +1196,16 @@ func Parsed() bool {
|
||||
// CommandLine is the default set of command-line flags, parsed from [os.Args].
|
||||
// The top-level functions such as [BoolVar], [Arg], and so on are wrappers for the
|
||||
// methods of CommandLine.
|
||||
var CommandLine = NewFlagSet(os.Args[0], ExitOnError)
|
||||
var CommandLine *FlagSet
|
||||
|
||||
func init() {
|
||||
// It's possible for execl to hand us an empty os.Args.
|
||||
if len(os.Args) == 0 {
|
||||
CommandLine = NewFlagSet("", ExitOnError)
|
||||
} else {
|
||||
CommandLine = NewFlagSet(os.Args[0], ExitOnError)
|
||||
}
|
||||
|
||||
// Override generic FlagSet default Usage with call to global Usage.
|
||||
// Note: This is not CommandLine.Usage = Usage,
|
||||
// because we want any eventual call to use any updated value of Usage,
|
||||
|
Loading…
Reference in New Issue
Block a user