diff --git a/top/top.c b/top/top.c index fb686cee..566b9d80 100644 --- a/top/top.c +++ b/top/top.c @@ -3182,13 +3182,13 @@ static void parse_args (char **args) { else TOGw(Curwin, View_CPUSUM); OFFw(Curwin, View_CPUNOD); SETw(Curwin, View_STATES); - break; + goto bump_cp; case 'b': Batch = 1; - break; + goto bump_cp; case 'c': TOGw(Curwin, Show_CMDLIN); - break; + goto bump_cp; case 'd': if (cp[1]) ++cp; else if (*args) cp = *args++; @@ -3206,10 +3206,10 @@ static void parse_args (char **args) { if (!(got = strchr(get, tolower(*cp)))) error_exit(fmtmk(N_fmt(BAD_memscale_fmt), *cp)); Rc.summ_mscale = (int)(got - get); - } break; + } goto bump_cp; case 'H': Thread_mode = 1; - break; + goto bump_cp; case 'h': case 'v': puts(fmtmk(N_fmt(HELP_cmdline_fmt) @@ -3218,7 +3218,7 @@ static void parse_args (char **args) { case 'i': TOGw(Curwin, Show_IDLEPS); Curwin->rc.maxtasks = 0; - break; + goto bump_cp; case 'n': if (cp[1]) cp++; else if (*args) cp = *args++; @@ -3246,7 +3246,7 @@ static void parse_args (char **args) { puts(N_col(i)); bye_bye(NULL); case 'p': - { unsigned pid; char *p; + { int pid; char *p; if (Curwin->usrseltyp) error_exit(N_txt(SELECT_clash_txt)); do { if (cp[1]) cp++; @@ -3255,7 +3255,7 @@ static void parse_args (char **args) { if (Monpidsidx >= MONPIDMAX) error_exit(fmtmk(N_fmt(LIMIT_exceed_fmt), MONPIDMAX)); if (1 != sscanf(cp, "%d", &pid) - || strpbrk(cp, "+-.")) + || strpbrk(cp, wrong_str)) error_exit(fmtmk(N_fmt(BAD_mon_pids_fmt), cp)); if (!pid) pid = getpid(); for (i = 0; i < Monpidsidx; i++) @@ -3265,14 +3265,13 @@ static void parse_args (char **args) { if (!(p = strchr(cp, ','))) break; cp = p; } while (*cp); - } - break; + } break; case 's': Secure_mode = 1; - break; + goto bump_cp; case 'S': TOGw(Curwin, Show_CTIMES); - break; + goto bump_cp; case 'u': case 'U': { const char *errmsg; @@ -3303,8 +3302,9 @@ static void parse_args (char **args) { } // end: switch (*cp) // advance cp and jump over any numerical args used above - if (*cp) cp += strspn(&cp[1], numbs_str) + 1; - + if (*cp) cp += strspn(&cp[1], numbs_str); +bump_cp: + ++cp; } // end: while (*cp) } // end: while (*args)