summaryrefslogtreecommitdiff
path: root/doc/README.gaa
blob: e1bfb15453c4b5b2edbeda8d214fb3ec32e6f5e3 (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
If you modify src/*.gaa files you need to rebuild them using the 'gaa'
tool.  The last release, 1.6.6, contains some minor problems that
triggers warnings on the output C code.  The following patch against
gaa 1.6.6 is used to generate files stored in GnuTLS.

diff -ur gaa-1.6.6.orig/source/skel/gaa.skel gaa-1.6.6/source/skel/gaa.skel
--- gaa-1.6.6.orig/source/skel/gaa.skel	2004-04-15 13:32:29.000000000 +0200
+++ gaa-1.6.6/source/skel/gaa.skel	2008-11-13 10:52:23.000000000 +0100
@@ -340,31 +340,12 @@
     return tmp;
 }
 
-static char gaa_getchar(char *arg)
-{
-    if(strlen(arg) != 1)
-    {
-        printf("Option %s: '%s' isn't an character\n", gaa_current_option, arg);
-        GAAERROR(-1);
-    }
-    return arg[0];
-}
 
 static char* gaa_getstr(char *arg)
 {
     return arg;
 }
-static float gaa_getfloat(char *arg)
-{
-    float tmp;
-    char a;
-    if(sscanf(arg, "%f%c", &tmp, &a) < 1)
-    {
-        printf("Option %s: '%s' isn't a float number\n", gaa_current_option, arg);
-        GAAERROR(-1);
-    }
-    return tmp;
-}
+
 /* option structures */
 @         
 #line 349 "gaa.skel"
@@ -444,16 +425,19 @@
 int gaa(int argc, char **argv, gaainfo *gaaval)
 {
     int tmp1, tmp2;
-    int i, j@;
+    int l;
+    size_t i, j@;
     char *opt_list;
 
+    i = 0;
+
     GAAargv = argv;
     GAAargc = argc;
 
     opt_list = (char*) gaa_malloc(GAA_NB_OPTION + 1);
 
-    for(i = 0; i < GAA_NB_OPTION + 1; i++)
-        opt_list[i] = 0;
+    for(l = 0; l < GAA_NB_OPTION + 1; l++)
+        opt_list[l] = 0;
     /* initialization */
     if(inited == 0)
     {
@@ -468,27 +452,27 @@
       gaa_arg_used = gaa_malloc(argc * sizeof(char));
     }
 
-    for(i = 1; i < argc; i++)
-        gaa_arg_used[i] = 0;
-    for(i = 1; i < argc; i++)
+    for(l = 1; l < argc; l++)
+        gaa_arg_used[l] = 0;
+    for(l = 1; l < argc; l++)
     {
-        if(gaa_arg_used[i] == 0)
+        if(gaa_arg_used[l] == 0)
         {
             j = 0;
-            tmp1 = gaa_is_an_argument(GAAargv[i]);
+            tmp1 = gaa_is_an_argument(GAAargv[l]);
             switch(tmp1)
             {
             case GAA_WORD_OPTION:
                 j++;
             case GAA_LETTER_OPTION:
                 j++;
-                tmp2 = gaa_get_option_num(argv[i]+j, tmp1);
+                tmp2 = gaa_get_option_num(argv[l]+j, tmp1);
                 if(tmp2 == GAA_ERROR_NOMATCH)
                 {
-                    printf("Invalid option '%s'\n", argv[i]+j);
+                    printf("Invalid option '%s'\n", argv[l]+j);
                     return 0;
                 }
-                switch(gaa_try(tmp2, i+1, gaaval, opt_list))
+                switch(gaa_try(tmp2, l+1, gaaval, opt_list))
                 {
                 case GAA_ERROR_NOTENOUGH_ARGS:
                     printf("'%s': not enough arguments\n",gaa_current_option);
@@ -501,18 +485,18 @@
                 default:
                     printf("Unknown error\n");
                 }
-                gaa_arg_used[i] = 1;
+                gaa_arg_used[l] = 1;
                 break;
             case GAA_MULTIPLE_OPTION:
-                for(j = 1; j < strlen(argv[i]); j++)
+                for(j = 1; j < strlen(argv[l]); j++)
                 {
-                    tmp2 = gaa_get_option_num(argv[i]+j, tmp1);
+                    tmp2 = gaa_get_option_num(argv[l]+j, tmp1);
                     if(tmp2 == GAA_ERROR_NOMATCH)
                     {
-                        printf("Invalid option '%c'\n", *(argv[i]+j));
+                        printf("Invalid option '%c'\n", *(argv[l]+j));
                         return 0;
                     }
-                    switch(gaa_try(tmp2, i+1, gaaval, opt_list))
+                    switch(gaa_try(tmp2, l+1, gaaval, opt_list))
                     {
                     case GAA_ERROR_NOTENOUGH_ARGS:
                         printf("'%s': not enough arguments\n",gaa_current_option);
@@ -526,7 +510,7 @@
                         printf("Unknown error\n");
                     }
                 }
-                gaa_arg_used[i] = 1;
+                gaa_arg_used[l] = 1;
                 break;
             default: break;
             }
@@ -552,9 +536,9 @@
     }
 #endif
 }
-    for(i = 1; i < argc; i++)
+    for(l = 1; l < argc; l++)
     {
-        if(gaa_arg_used[i] == 0)
+        if(gaa_arg_used[l] == 0)
         {
             printf("Too many arguments\n");
             return 0;
@@ -605,7 +589,7 @@
 
         len++;
         a = fgetc( file);
-        if(a==EOF) return 0; //a = ' ';
+        if(a==EOF) return 0; /* a = ' '; */
     }
 
     len += 1;