OSDN Git Service

9613d579e63dff74d95fac43fe3d97ee5c9f8bda
[eos/base.git] / src / Tools / eosPoint / eosPointICP / src / argCheck.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <math.h>
5 #include "../inc/config.h"
6 #include "genUtil.h"
7 #include "eosString.h"
8 #include "File.h"
9 #include "Memory.h"
10
11
12 void
13 argCheck(eosPointICPInfo* info, int argc, char* argv[])
14 {
15     long i;
16     char s[1024];
17     FILE* fpt;
18     
19     if(NULL==(fpt=fopen(".EosLog", "a+"))) { 
20         
21     } else {
22         for(i=0; i<argc; i++) {
23             fprintf(fpt, "%s ", argv[i]);
24         }
25         fprintf(fpt, "\n");
26         fclose(fpt);
27     }
28     for(i=1; i<argc; i++) {
29         if(OPTION_FLAG==argv[i][OPTION_FLAG_POS]) {
30             SSWITCH(argv[i]+OPTION_POS)
31                 SCASE("i") {
32                     if(i+1<argc) {
33                         info->In = stringGetNthWord(argv[i+1], 1, " ,");
34                         i++;
35                         info->flagIn++;
36                     } else {
37                         usage(argv[0]);
38                         exit(EXIT_FAILURE);
39                     }
40                     SBREAK;
41                 }
42                 SCASE("it") {
43                     if(i+1<argc) {
44                         info->InType = stringGetNthIntegerData(argv[i+1], 1, " ,");
45                         i++;
46                         info->flagInType++;
47                     } else {
48                         usage(argv[0]);
49                         exit(EXIT_FAILURE);
50                     }
51                     SBREAK;
52                 }
53                 SCASE("r") {
54                     if(i+1<argc) {
55                         info->Ref = stringGetNthWord(argv[i+1], 1, " ,");
56                         i++;
57                         info->flagRef++;
58                     } else {
59                         usage(argv[0]);
60                         exit(EXIT_FAILURE);
61                     }
62                     SBREAK;
63                 }
64                 SCASE("rt") {
65                     if(i+1<argc) {
66                         info->RefType = stringGetNthIntegerData(argv[i+1], 1, " ,");
67                         i++;
68                         info->flagRefType++;
69                     } else {
70                         usage(argv[0]);
71                         exit(EXIT_FAILURE);
72                     }
73                     SBREAK;
74                 }
75                 SCASE("o") {
76                     if(i+1<argc) {
77                         info->Out = stringGetNthWord(argv[i+1], 1, " ,");
78                         i++;
79                         info->flagOut++;
80                     } else {
81                         usage(argv[0]);
82                         exit(EXIT_FAILURE);
83                     }
84                     SBREAK;
85                 }
86                 SCASE("ot") {
87                     if(i+1<argc) {
88                         info->OutType = stringGetNthIntegerData(argv[i+1], 1, " ,");
89                         i++;
90                         info->flagOutType++;
91                     } else {
92                         usage(argv[0]);
93                         exit(EXIT_FAILURE);
94                     }
95                     SBREAK;
96                 }
97                 SCASE("c") {
98                     if(i+1<argc) {
99                         info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
100                         i++;
101                         info->flagconfigFile++;
102                     } else {
103                         usage(argv[0]);
104                         exit(EXIT_FAILURE);
105                     }
106                     SBREAK;
107                 }
108                 SCASE("EAMode") {
109                     if(i+1<argc) {
110                         info->EAMode = stringGetNthWord(argv[i+1], 1, " ,");
111                         i++;
112                         info->flagEAMode++;
113                     } else {
114                         usage(argv[0]);
115                         exit(EXIT_FAILURE);
116                     }
117                     SBREAK;
118                 }
119                 SCASE("Iter") {
120                     if(i+1<argc) {
121                         info->IterationLimit = stringGetNthIntegerData(argv[i+1], 1, " ,");
122                         i++;
123                         info->flagIterationLimit++;
124                     } else {
125                         usage(argv[0]);
126                         exit(EXIT_FAILURE);
127                     }
128                     SBREAK;
129                 }
130                 SCASE("Pattern") {
131                     if(i+1<argc) {
132                         info->Pattern = stringGetNthIntegerData(argv[i+1], 1, " ,");
133                         i++;
134                         info->flagPattern++;
135                     } else {
136                         usage(argv[0]);
137                         exit(EXIT_FAILURE);
138                     }
139                     SBREAK;
140                 }
141                 SCASE("Thres") {
142                     if(i+1<argc) {
143                         info->ScoreThreshold = stringGetNthRealData(argv[i+1], 1, " ,");
144                         i++;
145                         info->flagScoreThreshold++;
146                     } else {
147                         usage(argv[0]);
148                         exit(EXIT_FAILURE);
149                     }
150                     SBREAK;
151                 }
152                 SCASE("Pick") {
153                     if(i+1<argc) {
154                         info->Pickup = stringGetNthRealData(argv[i+1], 1, " ,");
155                         i++;
156                         info->flagPickup++;
157                     } else {
158                         usage(argv[0]);
159                         exit(EXIT_FAILURE);
160                     }
161                     SBREAK;
162                 }
163                 SCASE("m") {
164                     if(i+1<argc) {
165                         info->mode = stringGetNthIntegerData(argv[i+1], 1, " ,");
166                         i++;
167                         info->flagmode++;
168                     } else {
169                         usage(argv[0]);
170                         exit(EXIT_FAILURE);
171                     }
172                     SBREAK;
173                 }
174                 SCASE("h") {
175                     usage(argv[0]);
176                     exit(EXIT_SUCCESS);
177                     break;
178                 }
179                 SCASE("html") {
180                     htmlBeforeUsage(argv[0]);
181                     usage(argv[0]);
182                     htmlAfterUsage(argv[0]);
183                     exit(EXIT_SUCCESS);
184                     break;
185                 }
186                 SDEFAULT {
187                     fprintf(stderr, "Not Supported Options: :%s\n", argv[i]);
188                     usage(argv[0]);
189                     exit(EXIT_FAILURE);
190                     break;
191                 }
192             SSWITCHEND;
193         } 
194     } 
195