ArgPositional
Description
Register a positional argument. Slot order on the command line matches registration order. Always required.
name is both the help-text label and the metavar shown in usage output (rendered as <NAME>). It is not parsed for -- prefixes – positionals never start with -.
Usage example (from documentation)
Zstr hostname = NULL;
ArgPositional(&p, "hostname", &hostname, "name to resolve");Success
Appends an ARG_ROLE_POSITIONAL spec; the target is populated from the next unused positional slot when ArgParseRun succeeds.
Failure
LOG_FATAL if parser is NULL, if name is NULL, or if target resolves to an unsupported type (ARG_KIND_INVALID).
Usage example (Cross-references)
Usage examples (Cross-references)
- In
ArgParse.c:439:
}
if (role == ARG_ROLE_POSITIONAL && !long_name) {
LOG_FATAL("arg_register: ArgPositional needs a non-NULL name");
}
if (role != ARG_ROLE_POSITIONAL && !short_name && !long_name) {- In
Resolve.c:24:
ArgParse ap = ArgParseInit("resolve", "look up a hostname via /etc/hosts and DNS");
ArgPositional(&ap, "hostname", &hostname, "name to resolve");
ArgRun rc = ArgParseRun(&ap, argc, argv);- In
ArgParse.c:167:
Zstr src = NULL;
Zstr dst = NULL;
ArgPositional(&p, "source", &src, "from");
ArgPositional(&p, "dest", &dst, "to");- In
ArgParse.c:168:
Zstr dst = NULL;
ArgPositional(&p, "source", &src, "from");
ArgPositional(&p, "dest", &dst, "to");
char *argv[] = {(char *)"cp", (char *)"a.txt", (char *)"b.txt"};- In
ArgParse.c:186:
Zstr dst = NULL;
bool verbose = false;
ArgPositional(&p, "source", &src, "from");
ArgPositional(&p, "dest", &dst, "to");
ArgFlag(&p, "-v", "--verbose", &verbose, "v");- In
ArgParse.c:187:
bool verbose = false;
ArgPositional(&p, "source", &src, "from");
ArgPositional(&p, "dest", &dst, "to");
ArgFlag(&p, "-v", "--verbose", &verbose, "v");- In
ArgParse.c:294:
Zstr src = NULL;
Zstr dst = NULL;
ArgPositional(&p, "source", &src, "");
ArgPositional(&p, "dest", &dst, "");- In
ArgParse.c:295:
Zstr dst = NULL;
ArgPositional(&p, "source", &src, "");
ArgPositional(&p, "dest", &dst, "");
char *argv[] = {(char *)"cp", (char *)"a.txt"};- In
ArgParse.c:359:
Zstr x = NULL;
ArgPositional(&p, "x", &x, "");
char *argv[] = {(char *)"prog", (char *)"first", (char *)"extra"};- In
ArgParse.c:565:
Zstr file = NULL;
ArgPositional(&p, "file", &file, "input file");
// "--unusual-name" would normally be parsed as an option; "--"
- In
ArgParse.c:669:
u32 timeout = 0;
bool verbose = false;
ArgPositional(&p, "source", &src, "src file");
ArgRequired(&p, "-l", "--listen", &listen, "host:port");
ArgOptional(&p, NULL, "--timeout", &timeout, "secs");- In
ArgParse.c:740:
Zstr from = NULL;
Zstr to = NULL;
ArgPositional(&p, "from", &from, "source path");
ArgPositional(&p, "to", &to, "dest path");- In
ArgParse.c:741:
Zstr to = NULL;
ArgPositional(&p, "from", &from, "source path");
ArgPositional(&p, "to", &to, "dest path");
Zstr expected =- In
ArgParse.c:1387:
ArgParse p = ArgParseInit("cp", NULL, &a);
Zstr s = NULL;
ArgPositional(&p, "source", &s, "from");
Str help = StrInit(&a);
bool got = capture_help_file(&p, &help);- In
ArgParse.c:1741:
Zstr from = NULL;
Zstr to = NULL;
ArgPositional(&p, "from", &from, "source path");
ArgPositional(&p, "to", &to, "dest path");- In
ArgParse.c:1742:
Zstr to = NULL;
ArgPositional(&p, "from", &from, "source path");
ArgPositional(&p, "to", &to, "dest path");
Zstr expected =- In
ArgParse.c:1821:
Zstr x = NULL;
ArgPositional(&p, "x", &x, "");
char *argv[] = {(char *)"prog", (char *)"first", (char *)"extra"};- In
ArgParse.c:1935:
ArgOptional(&p, NULL, "--timeout", &timeout, "connection timeout");
ArgFlag(&p, "-v", "--verbose", &verbose, "verbose logging");
ArgPositional(&p, "hostname", &hostname, "name to resolve");
char *argv[] = {(char *)"prog", (char *)"--help"};
Last updated on