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