зеркало из https://github.com/mozilla/pjs.git
41 строка
1.0 KiB
C
41 строка
1.0 KiB
C
|
#include <stdio.h>
|
||
|
#include <string.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
#include "nspr.h"
|
||
|
#include "plgetopt.h"
|
||
|
|
||
|
|
||
|
|
||
|
static const PLLongOpt optArray[] = {
|
||
|
{ "longa", 'a' , PR_TRUE },
|
||
|
{ "longb", 'b' , PR_TRUE },
|
||
|
{ "longc", 'c' , PR_FALSE },
|
||
|
{ "longd", 'd' | 0x100, PR_TRUE },
|
||
|
{ "longe", 'e' | 0x100, PR_FALSE },
|
||
|
{ NULL, }
|
||
|
};
|
||
|
|
||
|
int
|
||
|
main(int argc, char **argv)
|
||
|
{
|
||
|
PLOptState *opt;
|
||
|
PLOptStatus ostat;
|
||
|
|
||
|
opt = PL_CreateLongOptState(argc, argv, "a:b:c", optArray);
|
||
|
|
||
|
while (PL_OPT_OK == (ostat = PL_GetNextOpt(opt))) {
|
||
|
if (opt->option == 0 && opt->longOptIndex < 0)
|
||
|
printf("Positional parameter: \"%s\"\n", opt->value);
|
||
|
else
|
||
|
printf("%s option: %x (\'%c\', index %d), argument: \"%s\"\n",
|
||
|
(ostat == PL_OPT_BAD) ? "BAD" : "GOOD",
|
||
|
opt->longOption, opt->option ? opt->option : ' ',
|
||
|
opt->longOptIndex, opt->value);
|
||
|
|
||
|
}
|
||
|
printf("last result was %s\n", (ostat == PL_OPT_BAD) ? "BAD" : "EOL");
|
||
|
PL_DestroyOptState(opt);
|
||
|
return 0;
|
||
|
}
|