xref: /third_party/popt/tests/test3.c (revision 9f07849e)
19f07849eSopenharmony_ci#include <errno.h>
29f07849eSopenharmony_ci
39f07849eSopenharmony_ci#include "system.h"
49f07849eSopenharmony_ci
59f07849eSopenharmony_ciint main (int argc, char **argv) {
69f07849eSopenharmony_ci    char *out;
79f07849eSopenharmony_ci    int newargc, j, f, ret;
89f07849eSopenharmony_ci    const char **newargv;
99f07849eSopenharmony_ci    FILE *fp;
109f07849eSopenharmony_ci
119f07849eSopenharmony_ci    if (argc == 1) {
129f07849eSopenharmony_ci	printf ("usage: test-popt file_1 file_2 ...\n");
139f07849eSopenharmony_ci	printf ("you may specify many files\n");
149f07849eSopenharmony_ci	exit (1);
159f07849eSopenharmony_ci    }
169f07849eSopenharmony_ci
179f07849eSopenharmony_ci    for (f = 1; f < argc; f++) {
189f07849eSopenharmony_ci	fp = fopen (argv[f], "r");
199f07849eSopenharmony_ci	if (fp == NULL) {
209f07849eSopenharmony_ci	    printf ("cannot read file %s.  errno=%s\n", argv[f],
219f07849eSopenharmony_ci		strerror(errno));
229f07849eSopenharmony_ci	    continue;
239f07849eSopenharmony_ci	}
249f07849eSopenharmony_ci
259f07849eSopenharmony_ci	ret = poptConfigFileToString (fp, &out, 0);
269f07849eSopenharmony_ci	if (ret != 0) {
279f07849eSopenharmony_ci	    printf ("cannot parse %s. ret=%d\n", argv[f], ret);
289f07849eSopenharmony_ci	    continue;
299f07849eSopenharmony_ci	}
309f07849eSopenharmony_ci
319f07849eSopenharmony_ci	printf ("single string: '%s'\n", out);
329f07849eSopenharmony_ci
339f07849eSopenharmony_ci	poptParseArgvString (out, &newargc, &newargv);
349f07849eSopenharmony_ci
359f07849eSopenharmony_ci	printf ("popt array: size=%d\n", newargc);
369f07849eSopenharmony_ci	for (j = 0; j < newargc; j++)
379f07849eSopenharmony_ci	    printf ("'%s'\n", newargv[j]);
389f07849eSopenharmony_ci
399f07849eSopenharmony_ci	printf ("\n");
409f07849eSopenharmony_ci	free(newargv);
419f07849eSopenharmony_ci	free(out);
429f07849eSopenharmony_ci	fclose (fp);
439f07849eSopenharmony_ci    }
449f07849eSopenharmony_ci    return 0;
459f07849eSopenharmony_ci}
46