File tree Expand file tree Collapse file tree 4 files changed +24
-17
lines changed
Expand file tree Collapse file tree 4 files changed +24
-17
lines changed Original file line number Diff line number Diff line change @@ -3335,6 +3335,20 @@ impl Command {
33353335 self . usage_name . as_deref ( )
33363336 }
33373337
3338+ #[ inline]
3339+ #[ cfg( feature = "usage" ) ]
3340+ pub ( crate ) fn get_usage_name_fallback ( & self ) -> & str {
3341+ self . get_usage_name ( )
3342+ . unwrap_or_else ( || self . get_bin_name_fallback ( ) )
3343+ }
3344+
3345+ #[ inline]
3346+ #[ cfg( not( feature = "usage" ) ) ]
3347+ #[ allow( dead_code) ]
3348+ pub ( crate ) fn get_usage_name_fallback ( & self ) -> & str {
3349+ self . get_bin_name_fallback ( )
3350+ }
3351+
33383352 /// Get the name of the binary.
33393353 #[ inline]
33403354 pub fn get_display_name ( & self ) -> Option < & str > {
@@ -3347,6 +3361,12 @@ impl Command {
33473361 self . bin_name . as_deref ( )
33483362 }
33493363
3364+ /// Get the name of the binary.
3365+ #[ inline]
3366+ pub ( crate ) fn get_bin_name_fallback ( & self ) -> & str {
3367+ self . bin_name . as_deref ( ) . unwrap_or_else ( || self . get_name ( ) )
3368+ }
3369+
33503370 /// Set binary name. Uses `&mut self` instead of `self`.
33513371 pub fn set_bin_name ( & mut self , name : impl Into < String > ) {
33523372 self . bin_name = Some ( name. into ( ) ) ;
Original file line number Diff line number Diff line change @@ -135,7 +135,7 @@ impl<'cmd> Usage<'cmd> {
135135 let literal = & self . styles . get_literal ( ) ;
136136 let placeholder = & self . styles . get_placeholder ( ) ;
137137
138- let bin_name = self . get_name ( ) ;
138+ let bin_name = self . cmd . get_usage_name_fallback ( ) ;
139139 if !bin_name. is_empty ( ) {
140140 // the trim won't properly remove a leading space due to the formatting
141141 let _ = write ! (
@@ -176,7 +176,7 @@ impl<'cmd> Usage<'cmd> {
176176 styled. trim_end ( ) ;
177177 let _ = write ! ( styled, "{}" , USAGE_SEP ) ;
178178 if self . cmd . is_args_conflicts_with_subcommands_set ( ) {
179- let bin_name = self . get_name ( ) ;
179+ let bin_name = self . cmd . get_usage_name_fallback ( ) ;
180180 // Short-circuit full usage creation since no args will be relevant
181181 let _ = write ! (
182182 styled,
@@ -211,13 +211,6 @@ impl<'cmd> Usage<'cmd> {
211211 }
212212 }
213213
214- fn get_name ( & self ) -> & str {
215- self . cmd
216- . get_usage_name ( )
217- . or_else ( || self . cmd . get_bin_name ( ) )
218- . unwrap_or_else ( || self . cmd . get_name ( ) )
219- }
220-
221214 // Determines if we need the `[OPTIONS]` tag in the usage string
222215 fn needs_options_tag ( & self ) -> bool {
223216 debug ! ( "Usage::needs_options_tag" ) ;
Original file line number Diff line number Diff line change @@ -501,10 +501,7 @@ impl<'cmd> Parser<'cmd> {
501501 self . cmd ,
502502 arg_os. display ( ) . to_string ( ) ,
503503 candidates,
504- self . cmd
505- . get_bin_name ( )
506- . unwrap_or_else ( || self . cmd . get_name ( ) )
507- . to_owned ( ) ,
504+ self . cmd . get_bin_name_fallback ( ) . to_owned ( ) ,
508505 suggested_trailing_arg,
509506 Usage :: new ( self . cmd ) . create_usage_with_title ( & [ ] ) ,
510507 ) ;
Original file line number Diff line number Diff line change @@ -63,10 +63,7 @@ impl<'cmd> Validator<'cmd> {
6363 }
6464 }
6565 if !has_subcmd && self . cmd . is_subcommand_required_set ( ) {
66- let bn = self
67- . cmd
68- . get_bin_name ( )
69- . unwrap_or_else ( || self . cmd . get_name ( ) ) ;
66+ let bn = self . cmd . get_bin_name_fallback ( ) ;
7067 return Err ( Error :: missing_subcommand (
7168 self . cmd ,
7269 bn. to_string ( ) ,
You can’t perform that action at this time.
0 commit comments