rem: static const char *usage =
add: static const char usage[] =
context: static void parse_args (char **args){   /* differences between us and the former top:      -C (separate CPU states for SMP) is left to an rcfile      -p (pid monitoring) allows, not requires, a comma delimited list      -q (zero delay) eliminated as redundant, incomplete and inappropriate            use: "nice -n-10 top -d0" to achieve what was only claimed      -c,i,S act as toggles (not 'on' switches) for enhanced user flexibility      .  no deprecated/illegal use of 'breakargv:' with goto      .  bunched args are actually handled properly and none are ignored      .  we tolerate NO whitespace and NO switches -- maybe too tolerant? */   static const char *usage =      " -hv | -bcisS -d delay -n iterations -p pid [,pid ...]";   float tmp_delay = MAXFLOAT;   char *p;   while (*args) {      char *cp = *(args++);      while (*cp) {         switch (*cp) {            case '\0':            case '-':               break;            case 'b':               Batch = 1;               break;            case 'c':               TOGw(Curwin, Show_CMDLIN);               break;            case 'd':               if (cp[1]) ++cp;               else if (*args) cp = *args++;               else std_err("-d requires argument");                  /* a negative delay will be dealt with shortly... */               if (1 != sscanf(cp, "%f", &tmp_delay))                  std_err(fmtmk("bad delay '%s'", cp));               break;            case 'h': case 'H':            case 'v': case 'V':               std_err(fmtmk("%s\nusage:\t%s%s"                  , procps_version, Myname, usage));            case 'i':               TOGw(Curwin, Show_IDLEPS);               Curwin->maxtasks = 0;               break;            case 'n':               if (cp[1]) cp++;               else if (*args) cp = *args++;               else std_err("-n requires argument");               if (1 != sscanf(cp, "%d", &Loops) || 1 > Loops)                  std_err(fmtmk("bad iterations arg '%s'", cp));               break;            case 'p':               do {                  if (cp[1]) cp++;                  else if (*args) cp = *args++;                  else std_err("-p argument missing");                  if (Monpidsidx >= MONPIDMAX)                     std_err(fmtmk("pid limit (%d) exceeded", MONPIDMAX));                  if (1 != sscanf(cp, "%d", &Monpids[Monpidsidx])                  || 0 > Monpids[Monpidsidx])                     std_err(fmtmk("bad pid '%s'", cp));                  if (!Monpids[Monpidsidx])                     Monpids[Monpidsidx] = getpid();                  Monpidsidx++;                  if (!(p = strchr(cp, ',')))                     break;                  cp = p;               } while (*cp);               break;            case 's':               Secure_mode = 1;               break;            case 'S':               TOGw(Curwin, Show_CTIMES);               break;            default :               std_err(fmtmk("unknown argument '%c'\nusage:\t%s%s"                  , *cp, Myname, usage));         } /* end: switch (*cp) */            /* advance cp and jump over any numerical args used above */         if (*cp) cp += strspn(&cp[1], "- ,.1234567890") + 1;      } /* end: while (*cp) */   } /* end: while (*args) */      /* fixup delay time, maybe... */   if (MAXFLOAT != tmp_delay) {      if (Secure_mode || 0 > tmp_delay)         msg_save("Delay time Not changed");      else         Delay_time = tmp_delay;   }}