@@ -162,15 +162,25 @@ void ArgumentParser::print_usage_and_exit(int exit_code) const
162162 }
163163 log->format (" \n\n " );
164164 log->format (" FLAGS:\n " );
165+ u32 longest_short_flag = 0 ;
166+ u32 longest_long_flag = 0 ;
165167 for (u32 i = 0 ; i < flags.count ; i++) {
166168 auto flag = flags.items [i];
167- log->format (" %.*s, %.*s" ,
169+ if (flag.short_name .size () > longest_short_flag)
170+ longest_short_flag = flag.short_name .size ();
171+ if (flag.long_name .size () > longest_long_flag)
172+ longest_long_flag = flag.long_name .size ();
173+ }
174+
175+ for (u32 i = 0 ; i < flags.count ; i++) {
176+ auto flag = flags.items [i];
177+ log->format (" %.*s%*c%.*s%*c" ,
168178 flag.short_name .size (), flag.short_name .data (),
169- flag.long_name .size (), flag.long_name .data ()
179+ (longest_short_flag - flag.short_name .size () + 1 ), ' ' ,
180+ flag.long_name .size (), flag.long_name .data (),
181+ (longest_long_flag - flag.long_name .size () + 1 ), ' '
170182 );
171- // for (; bytes < 40; bytes++)
172- // out.write(" "sv).ignore();
173- log->format (" %.*s" , flag.explanation .size (), flag.explanation .data ());
183+ log->format (" %.*s\n " , flag.explanation .size (), flag.explanation .data ());
174184 }
175185 log->format (" \n " );
176186 if (options.count != 0 ) {
0 commit comments