Home | History | Annotate | Download | only in src

Lines Matching defs:go

46 /*XXX this should go away */
282 Getopt go;
333 ksh_getopt_reset(&go, GF_ERROR|GF_PLUSOPT);
334 while ((optc = ksh_getopt(argv, &go, opts)) != -1) {
335 set = (go.info & GI_PLUS) ? 0 : 1;
341 array = go.optarg;
347 if (go.optarg == NULL) {
358 i = option(go.optarg);
370 bi_errorf("%s: %s", go.optarg, "bad option");
383 chvt(go.optarg);
409 if (!(go.info & GI_MINUSMINUS) && argv[go.optind] &&
410 (argv[go.optind][0] == '-' || argv[go.optind][0] == '+') &&
411 argv[go.optind][1] == '\0') {
413 if (argv[go.optind][0] == '-')
416 go.optind++;
420 *setargsp = !arrayset && ((go.info & GI_MINUSMINUS) ||
421 argv[go.optind]);
434 for (i = go.optind; argv[i]; i++)
436 qsort(&argv[go.optind], i - go.optind, sizeof(void *),
440 go.optind += set_array(array, tobool(arrayset > 0),
441 argv + go.optind);
443 return (go.optind);
892 ksh_getopt_reset(Getopt *go, int flags)
894 go->optind = 1;
895 go->optarg = NULL;
896 go->p = 0;
897 go->flags = flags;
898 go->info = 0;
899 go->buf[1] = '\0';
907 * or ':' and set go->optarg to the offending option character.
926 * in go->info.
929 ksh_getopt(const char **argv, Getopt *go, const char *optionsp)
934 if (go->p == 0 || (c = argv[go->optind - 1][go->p]) == '\0') {
935 const char *arg = argv[go->optind], flag = arg ? *arg : '\0';
937 go->p = 1;
939 go->optind++;
940 go->p = 0;
941 go->info |= GI_MINUSMINUS;
947 (!(go->flags & GF_PLUSOPT) || flag != '+')) ||
949 go->p = 0;
952 go->optind++;
953 go->info &= ~(GI_MINUS|GI_PLUS);
954 go->info |= flag == '-' ? GI_MINUS : GI_PLUS;
956 go->p++;
960 go->buf[0] = c;
961 go->optarg = go->buf;
964 (go->flags & GF_NONAME) ? "" : argv[0],
965 (go->flags & GF_NONAME) ? "" : ": ", c,
967 if (go->flags & GF_ERROR)
979 if (argv[go->optind - 1][go->p])
980 go->optarg = argv[go->optind - 1] + go->p;
981 else if (argv[go->optind])
982 go->optarg = argv[go->optind++];
984 go->optarg = NULL;
987 go->buf[0] = c;
988 go->optarg = go->buf;
992 (go->flags & GF_NONAME) ? "" : argv[0],
993 (go->flags & GF_NONAME) ? "" : ": ", c,
995 if (go->flags & GF_ERROR)
999 go->p = 0;
1002 go->optarg = argv[go->optind - 1] + go->p;
1003 go->p = 0;
1010 if (argv[go->optind - 1][go->p]) {
1011 if (ksh_isdigit(argv[go->optind - 1][go->p])) {
1012 go->optarg = argv[go->optind - 1] + go->p;
1013 go->p = 0;
1015 go->optarg = NULL;
1017 if (argv[go->optind] && ksh_isdigit(argv[go->optind][0])) {
1018 go->optarg = argv[go->optind++];
1019 go->p = 0;
1021 go->optarg = NULL;
1386 /* otherwise (no symlink) merely go on */
1676 /* No arguments - go home */