static int getopt()

in client-library/src/Attestation/LinuxTpm/testclient/main.cpp [43:76]


static int getopt(int argc, char *const argv[], const char *optstring)
{

    //Error and -1 returns are the same as for getopt(), plus '?'
    // for an ambiguous match or an extraneous parameter.
     if (
        (argv == nullptr) ||
        (optind >= argc) ||
        (argv[optind][0] != '-') ||
        (argv[optind][0] == 0)
        )
    {
        return -1;
    }

    int opt = argv[optind][1];
    const char *p = strchr(optstring, opt);

    if (p == NULL)
    {
        return '?';
    }
    if (p[1] == ':')
    {
        optind++;
        if (optind >= argc)
        {
            return '?';
        }
        optarg = argv[optind];
        optind++;
    }
    return opt;
}