rem: if(err2) goto total_failure; err2 = thread_option_check();
context: int arg_parse(int argc, char *argv[]){  const char *err = NULL;  const char *err2 = NULL;  ps_argc = argc;  ps_argv = argv;  thisarg = 0;  if(personality & PER_FORCE_BSD) goto try_bsd;  err = parse_all_options();  if(err) goto try_bsd;  err = process_sf_options(!not_pure_unix);  if(err) goto try_bsd;  err = thread_option_check();  if(err) goto try_bsd;  err = select_bits_setup();  if(err) goto try_bsd;  choose_dimensions();  return 0;try_bsd:  trace("--------- now try BSD ------\n");  reset_global();  reset_parser();  reset_sortformat();  format_flags = 0;  ps_argc = argc;  ps_argv = argv;  thisarg = 0;  /* no need to reset flagptr */  not_pure_unix=1;  force_bsd=1;  prefer_bsd_defaults=1;  if(!( (PER_OLD_m|PER_BSD_m) & personality )) /* if default m setting... */    personality |= PER_OLD_m; /* Prefer old Linux over true BSD. */  /* Do not set PER_FORCE_BSD! It is tested below. */  err2 = parse_all_options();  if(err2) goto total_failure;  err2 = process_sf_options(!not_pure_unix);  if(err2) goto total_failure;  err2 = thread_option_check();  if(err2) goto total_failure;  err2 = select_bits_setup();  if(err2) goto total_failure;  // Feel a need to patch this out? First of all, read the FAQ.  // Second of all, talk to me. Without this warning, people can  // get seriously confused. Ask yourself if users would freak out  // about "ps -aux" suddenly changing behavior if a user "x" were  // added to the system.  if(!(personality & PER_FORCE_BSD))    fprintf(stderr, "Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html\n");  // Remember: contact albert@users.sf.net or procps-feedback@lists.sf.net  // if you should feel tempted. Be damn sure you understand all  // the issues. The same goes for other stuff too, BTW. Please ask.  // I'm happy to justify various implementation choices.  choose_dimensions();  return 0;total_failure:  reset_parser();  if(personality & PER_FORCE_BSD) fprintf(stderr, "ERROR: %s\n", err2);  else fprintf(stderr, "ERROR: %s\n", err);  fwrite(help_message,1,strlen(help_message),stderr);  exit(1);  /* return 1; */ /* useless */}