+ int i = 0;
+ while (tp->name != NULL) {
+ if (tp->subcmd) {
+ cmd_tbl_t *sub = tp->subcmd;
+ while (sub->name != NULL) {
+ if (sub->flags & CTBL_SUBCMDAUTO) {
+ uint_fast8_t len = strlen_P(sub->name);
+ if (len > maxlen_cmd)
+ maxlen_cmd = len;
+ cmd_list[i++] = sub;
+ }
+ sub++;
+ }
+ }
+ if ((tp->flags & CTBL_SUBCMDAUTO) == 0) {
+ uint_fast8_t len = strlen_P(tp->name);
+ if (len > maxlen_cmd)
+ maxlen_cmd = len;
+ cmd_list[i++] = tp;
+ }
+ tp++;