Home | History | Annotate | Download | only in ksh

Lines Matching defs:go

354 	Getopt go;
390 ksh_getopt_reset(&go, GF_ERROR|GF_PLUSOPT);
391 while ((optc = ksh_getopt(argv, &go, opts)) != EOF) {
392 set = (go.info & GI_PLUS) ? 0 : 1;
396 array = go.optarg;
400 if (go.optarg == (char *) 0) {
410 i = option(go.optarg);
421 bi_errorf("%s: bad option", go.optarg);
449 if (!(go.info & GI_MINUSMINUS) && argv[go.optind]
450 && (argv[go.optind][0] == '-' || argv[go.optind][0] == '+')
451 && argv[go.optind][1] == '\0')
454 if (argv[go.optind][0] == '-' && !Flag(FPOSIX))
457 go.optind++;
461 *setargsp = !arrayset && ((go.info & GI_MINUSMINUS)
462 || argv[go.optind]);
469 for (i = go.optind; argv[i]; i++)
471 qsortp((void **) &argv[go.optind], (size_t) (i - go.optind),
475 set_array(array, arrayset, argv + go.optind);
476 for (; argv[go.optind]; go.optind++)
480 return go.optind;
937 ksh_getopt_reset(go, flags)
938 Getopt *go;
941 go->optind = 1;
942 go->optarg = (char *) 0;
943 go->p = 0;
944 go->flags = flags;
945 go->info = 0;
946 go->buf[1] = '\0';
953 * or ':' and set go->optarg to the offending option character.
972 * in go->info.
975 ksh_getopt(argv, go, options)
977 Getopt *go;
983 if (go->p == 0 || (c = argv[go->optind - 1][go->p]) == '\0') {
984 char *arg = argv[go->optind], flag = arg ? *arg : '\0';
986 go->p = 1;
988 go->optind++;
989 go->p = 0;
990 go->info |= GI_MINUSMINUS;
995 && (!(go->flags & GF_PLUSOPT) || flag != '+'))
998 go->p = 0;
1001 go->optind++;
1002 go->info &= ~(GI_MINUS|GI_PLUS);
1003 go->info |= flag == '-' ? GI_MINUS : GI_PLUS;
1005 go->p++;
1010 go->buf[0] = c;
1011 go->optarg = go->buf;
1014 (go->flags & GF_NONAME) ? "" : argv[0],
1015 (go->flags & GF_NONAME) ? "" : ": ", c);
1016 if (go->flags & GF_ERROR)
1027 if (argv[go->optind - 1][go->p])
1028 go->optarg = argv[go->optind - 1] + go->p;
1029 else if (argv[go->optind])
1030 go->optarg = argv[go->optind++];
1032 go->optarg = (char *) 0;
1035 go->buf[0] = c;
1036 go->optarg = go->buf;
1040 (go->flags & GF_NONAME) ? "" : argv[0],
1041 (go->flags & GF_NONAME) ? "" : ": ", c);
1042 if (go->flags & GF_ERROR)
1046 go->p = 0;
1049 go->optarg = argv[go->optind - 1] + go->p;
1050 go->p = 0;
1056 if (argv[go->optind - 1][go->p]) {
1057 if (digit(argv[go->optind - 1][go->p])) {
1058 go->optarg = argv[go->optind - 1] + go->p;
1059 go->p = 0;
1061 go->optarg = (char *) 0;
1063 if (argv[go->optind] && digit(argv[go->optind][0])) {
1064 go->optarg = argv[go->optind++];
1065 go->p = 0;
1067 go->optarg = (char *) 0;