aboutsummaryrefslogtreecommitdiff
path: root/vendor/voclient/voapps/zzparam.c
blob: fd856021913a1fbf837e7a143c0ede979a0d4fbc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/**
 *
 */
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <string.h>
#include <errno.h>
#include "voApps.h"


char  optval[128];

/*  Task specific option declarations.
 */
char *opts = "abn:v:";
struct option long_opts[] = {
    { "debug",    0, 0, 'd'},
    { "nport",    1, 0, 'n'},
    { "verbose",  2, 0, 'v'},
    { NULL,       0, 0, 0  }
};



/*
 *	-v
 *	-v 0
 *	-v=0
 *	--verbose
 *	--verbose 0
 *	--verbose=0
 *	verbose=0
*/

int	ch=0, all=0, debug=0, verbose=0, nport=0;

int
main (int argc, char *argv[])
{
    int   i, pos;
    char  **pargv;


    /*  Initialize the parameters, i.e. rewrite the options so they can
     *  be processed by getopt_long().
     */
    pargv = vo_paramInit (argc, argv, opts, long_opts);
    while ((ch = vo_paramNext (opts,long_opts,argc,pargv,optval,&pos)) != 0)  {
	if (ch > 0) {
	    switch (ch) {
	    case 'a': printf ("'a' key\n");   			
		break;
	    case 'd': printf ("'d' key\n");   			
		break;
	    case 'n': printf ("'n' key, arg '%s'\n", optval); 	
		nport = atoi (optval);
		break;
	    case 'v':
		if (optval[0]) {
		    printf ("'v' key, arg = '%s'\n", optval); 
		    verbose = atoi (optval);
		} else {
		    printf ("'v' key\n"); verbose = 1;
		}
		break;
	    default:
		printf ("\nDEFAULT\n");
	    }

        } else if (ch == PARG_ERR) {
            return (1);

	} else
            printf ("pos=%d optind=%d argc=%d val='%s'\n", 
		pos, optind, argc, optval);
    }

    printf ("\n\n");
    printf ("final   nport = %d\n", nport);
    printf ("final verbose = %d\n", verbose);


    /*  Free the allocated arguments.
     */
    vo_paramFree (argc, pargv);
}