@@ -115,7 +115,7 @@ impl<'a> Help<'a> {
115
115
/// Writes the parser help to the wrapped stream.
116
116
pub fn write_help ( & mut self , parser : & Parser ) -> ClapResult < ( ) > {
117
117
if let Some ( h) = parser. meta . help_str {
118
- try!( writeln ! ( self . writer, "{}" , h) . map_err ( Error :: from) ) ;
118
+ try!( write ! ( self . writer, "{}" , h) . map_err ( Error :: from) ) ;
119
119
} else if let Some ( ref tmpl) = parser. meta . template {
120
120
try!( self . write_templated_help ( & parser, tmpl) ) ;
121
121
} else {
@@ -143,7 +143,13 @@ impl<'a> Help<'a> {
143
143
arg_v. push ( arg)
144
144
}
145
145
}
146
+ let mut first = true ;
146
147
for arg in arg_v {
148
+ if !first {
149
+ try!( self . writer . write ( b"\n " ) ) ;
150
+ } else {
151
+ first = false ;
152
+ } ;
147
153
try!( self . write_arg ( arg. as_base ( ) , longest) ) ;
148
154
}
149
155
Ok ( ( ) )
@@ -166,8 +172,14 @@ impl<'a> Help<'a> {
166
172
btm. insert ( arg. name ( ) , arg) ;
167
173
}
168
174
}
175
+ let mut first = true ;
169
176
for ( _, btm) in ord_m. into_iter ( ) {
170
177
for ( _, arg) in btm. into_iter ( ) {
178
+ if !first {
179
+ try!( self . writer . write ( b"\n " ) ) ;
180
+ } else {
181
+ first = false ;
182
+ } ;
171
183
try!( self . write_arg ( arg. as_base ( ) , longest) ) ;
172
184
}
173
185
}
@@ -184,7 +196,6 @@ impl<'a> Help<'a> {
184
196
try!( self . long ( arg, longest) ) ;
185
197
try!( self . val ( arg, longest) ) ;
186
198
try!( self . help ( arg, longest) ) ;
187
- try!( self . writer . write ( b"\n " ) ) ;
188
199
Ok ( ( ) )
189
200
}
190
201
@@ -458,45 +469,33 @@ impl<'a> Help<'a> {
458
469
459
470
let unified_help = parser. is_set ( AppSettings :: UnifiedHelpMessage ) ;
460
471
461
- let mut first = true ;
462
-
463
472
if unified_help && ( flags || opts) {
464
473
let opts_flags = parser. iter_flags ( )
465
474
. map ( as_arg_trait)
466
475
. chain ( parser. iter_opts ( ) . map ( as_arg_trait) ) ;
467
476
try!( color ! ( self , "OPTIONS:\n " , Warning ) ) ;
468
477
try!( self . write_args ( opts_flags) ) ;
469
- first = false ;
470
478
} else {
471
479
if flags {
472
480
try!( color ! ( self , "FLAGS:\n " , Warning ) ) ;
473
481
try!( self . write_args ( parser. iter_flags ( )
474
482
. map ( as_arg_trait) ) ) ;
475
- first = false ;
476
483
}
477
484
if opts {
478
- if !first {
479
- try!( self . writer . write ( b"\n " ) ) ;
480
- }
485
+ try!( self . writer . write ( b"\n \n " ) ) ;
481
486
try!( color ! ( self , "OPTIONS:\n " , Warning ) ) ;
482
487
try!( self . write_args ( parser. iter_opts ( ) . map ( as_arg_trait) ) ) ;
483
- first = false ;
484
488
}
485
489
}
486
490
487
491
if pos {
488
- if !first {
489
- try!( self . writer . write ( b"\n " ) ) ;
490
- }
492
+ try!( self . writer . write ( b"\n \n " ) ) ;
491
493
try!( color ! ( self , "ARGS:\n " , Warning ) ) ;
492
494
try!( self . write_args_unsorted ( parser. iter_positionals ( ) . map ( as_arg_trait) ) ) ;
493
- first = false ;
494
495
}
495
496
496
497
if subcmds {
497
- if !first {
498
- try!( self . writer . write ( b"\n " ) ) ;
499
- }
498
+ try!( self . writer . write ( b"\n \n " ) ) ;
500
499
try!( color ! ( self , "SUBCOMMANDS:\n " , Warning ) ) ;
501
500
try!( self . write_subcommands ( & parser) ) ;
502
501
}
@@ -515,8 +514,14 @@ impl<'a> Help<'a> {
515
514
longest = cmp:: max ( longest, sc. p . meta . name . len ( ) ) ;
516
515
}
517
516
517
+ let mut first = true ;
518
518
for ( _, btm) in ord_m. into_iter ( ) {
519
519
for ( _, sc) in btm. into_iter ( ) {
520
+ if !first {
521
+ try!( self . writer . write ( b"\n " ) ) ;
522
+ } else {
523
+ first = false ;
524
+ }
520
525
try!( self . write_arg ( sc, longest) ) ;
521
526
}
522
527
}
@@ -575,7 +580,7 @@ impl<'a> Help<'a> {
575
580
}
576
581
577
582
if let Some ( h) = parser. meta . more_help {
578
- try!( write ! ( self . writer, "{}\n " , h) ) ;
583
+ try!( write ! ( self . writer, "{}" , h) ) ;
579
584
}
580
585
581
586
self . writer . flush ( ) . map_err ( Error :: from)
0 commit comments