Lines Matching refs:go

61 /*XXX this should go away */
360 Getopt go;
382 ksh_getopt_reset(&go, GF_ERROR|GF_PLUSOPT);
383 while ((optc = ksh_getopt(argv, &go, opts)) != -1) {
384 set = tobool(!(go.info & GI_PLUS));
390 array = go.optarg;
396 if (go.optarg == NULL) {
407 i = option(go.optarg);
430 bi_errorf("%s: %s", go.optarg, "bad option");
443 chvt(&go);
469 if (!(go.info & GI_MINUSMINUS) && argv[go.optind] &&
470 (argv[go.optind][0] == '-' || argv[go.optind][0] == '+') &&
471 argv[go.optind][1] == '\0') {
473 if (argv[go.optind][0] == '-') {
478 go.optind++;
482 *setargsp = !arrayset && ((go.info & GI_MINUSMINUS) ||
483 argv[go.optind]);
497 for (i = go.optind; argv[i]; i++)
499 qsort(&argv[go.optind], i - go.optind, sizeof(void *),
503 go.optind += set_array(array, tobool(arrayset > 0),
504 argv + go.optind);
506 return (go.optind);
955 ksh_getopt_reset(Getopt *go, int flags)
957 go->optind = 1;
958 go->optarg = NULL;
959 go->p = 0;
960 go->flags = flags;
961 go->info = 0;
962 go->buf[1] = '\0';
970 * or ':' and set go->optarg to the offending option character.
989 * in go->info.
992 ksh_getopt(const char **argv, Getopt *go, const char *optionsp)
997 if (go->p == 0 || (c = argv[go->optind - 1][go->p]) == '\0') {
998 const char *arg = argv[go->optind], flag = arg ? *arg : '\0';
1000 go->p = 1;
1002 go->optind++;
1003 go->p = 0;
1004 go->info |= GI_MINUSMINUS;
1010 (!(go->flags & GF_PLUSOPT) || flag != '+')) ||
1012 go->p = 0;
1015 go->optind++;
1016 go->info &= ~(GI_MINUS|GI_PLUS);
1017 go->info |= flag == '-' ? GI_MINUS : GI_PLUS;
1019 go->p++;
1023 go->buf[0] = c;
1024 go->optarg = go->buf;
1027 (go->flags & GF_NONAME) ? "" : argv[0],
1028 (go->flags & GF_NONAME) ? "" : ": ", c,
1030 if (go->flags & GF_ERROR)
1042 if (argv[go->optind - 1][go->p])
1043 go->optarg = argv[go->optind - 1] + go->p;
1044 else if (argv[go->optind])
1045 go->optarg = argv[go->optind++];
1047 go->optarg = NULL;
1050 go->buf[0] = c;
1051 go->optarg = go->buf;
1055 (go->flags & GF_NONAME) ? "" : argv[0],
1056 (go->flags & GF_NONAME) ? "" : ": ", c,
1058 if (go->flags & GF_ERROR)
1062 go->p = 0;
1065 go->optarg = argv[go->optind - 1] + go->p;
1066 go->p = 0;
1073 if (argv[go->optind - 1][go->p]) {
1074 if (ksh_isdigit(argv[go->optind - 1][go->p])) {
1075 go->optarg = argv[go->optind - 1] + go->p;
1076 go->p = 0;
1078 go->optarg = NULL;
1080 if (argv[go->optind] && ksh_isdigit(argv[go->optind][0])) {
1081 go->optarg = argv[go->optind++];
1082 go->p = 0;
1084 go->optarg = NULL;
1529 /* otherwise (no symlink) merely go on */
1819 /* No arguments - go home */
1959 chvt(const Getopt *go)
1961 const char *dv = go->optarg;
1983 "can't find tty", go->optarg);
2005 if (go->optarg[0] != '!') {
2017 if (go->optarg[0] != '-') {
2028 rndset((unsigned long)chvt_rndsetup(go, sizeof(Getopt)));