OSDN Git Service

c11bc01ffe0eafaa48262fcbf1f29974f0a15f73
[eos/base.git] / env / Eos.org / Eos / PrevReleased / mrc3Dto2D / 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 "String.h"
8 #include "File.h"
9 #include "Memory.h"
10
11
12 void
13 argCheck(mrc3Dto2DInfo* info, int argc, char* argv[])
14 {
15     long i, j, nv;
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("o") {
43                     if(i+1<argc) {
44                         info->Out = stringGetNthWord(argv[i+1], 1, " ,");
45                         i++;
46                         info->flagOut++;
47                     } else {
48                         usage(argv[0]);
49                         exit(EXIT_FAILURE);
50                     }
51                     SBREAK;
52                 }
53                 SCASE("O") {
54                     if(i+1<argc) {
55                         info->Out3D = stringGetNthWord(argv[i+1], 1, " ,");
56                         i++;
57                         info->flagOut3D++;
58                     } else {
59                         usage(argv[0]);
60                         exit(EXIT_FAILURE);
61                     }
62                     SBREAK;
63                 }
64                 SCASE("Rot") {
65                     if(i+2<argc) {
66                         info->rotnx = stringGetNthIntegerData(argv[i+1], 1, " ,");
67                         i++;
68                         info->flagrotnx++;
69                         info->rotny = stringGetNthIntegerData(argv[i+1], 1, " ,");
70                         i++;
71                         info->flagrotny++;
72                     } else {
73                         usage(argv[0]);
74                         exit(EXIT_FAILURE);
75                     }
76                     SBREAK;
77                 }
78                 SCASE("S") {
79                     if(i+3<argc) {
80                         info->srotx = stringGetNthRealData(argv[i+1], 1, " ,");
81                         i++;
82                         info->flagsrotx++;
83                         info->sroty = stringGetNthRealData(argv[i+1], 1, " ,");
84                         i++;
85                         info->flagsroty++;
86                         info->srotz = stringGetNthRealData(argv[i+1], 1, " ,");
87                         i++;
88                         info->flagsrotz++;
89                     } else {
90                         usage(argv[0]);
91                         exit(EXIT_FAILURE);
92                     }
93                     SBREAK;
94                 }
95                 SCASE("startEA") {
96                     if(i+4<argc) {
97                         info->sRotMode = stringGetNthWord(argv[i+1], 1, " ,");
98                         i++;
99                         info->flagsRotMode++;
100                         info->sRot1 = stringGetNthRealData(argv[i+1], 1, " ,");
101                         i++;
102                         info->flagsRot1++;
103                         info->sRot2 = stringGetNthRealData(argv[i+1], 1, " ,");
104                         i++;
105                         info->flagsRot2++;
106                         info->sRot3 = stringGetNthRealData(argv[i+1], 1, " ,");
107                         i++;
108                         info->flagsRot3++;
109                     } else {
110                         usage(argv[0]);
111                         exit(EXIT_FAILURE);
112                     }
113                     SBREAK;
114                 }
115                 SCASE("EAMode") {
116                     if(i+1<argc) {
117                         info->RotMode = stringGetNthWord(argv[i+1], 1, " ,");
118                         i++;
119                         info->flagRotMode++;
120                     } else {
121                         usage(argv[0]);
122                         exit(EXIT_FAILURE);
123                     }
124                     SBREAK;
125                 }
126                 SCASE("EARot1") {
127                     if(i+3<argc) {
128                         info->dRot1 = stringGetNthRealData(argv[i+1], 1, " ,");
129                         i++;
130                         info->flagdRot1++;
131                         info->minRot1 = stringGetNthRealData(argv[i+1], 1, " ,");
132                         i++;
133                         info->flagminRot1++;
134                         info->maxRot1 = stringGetNthRealData(argv[i+1], 1, " ,");
135                         i++;
136                         info->flagmaxRot1++;
137                     } else {
138                         usage(argv[0]);
139                         exit(EXIT_FAILURE);
140                     }
141                     SBREAK;
142                 }
143                 SCASE("EARot2") {
144                     if(i+3<argc) {
145                         info->dRot2 = stringGetNthRealData(argv[i+1], 1, " ,");
146                         i++;
147                         info->flagdRot2++;
148                         info->minRot2 = stringGetNthRealData(argv[i+1], 1, " ,");
149                         i++;
150                         info->flagminRot2++;
151                         info->maxRot2 = stringGetNthRealData(argv[i+1], 1, " ,");
152                         i++;
153                         info->flagmaxRot2++;
154                     } else {
155                         usage(argv[0]);
156                         exit(EXIT_FAILURE);
157                     }
158                     SBREAK;
159                 }
160                 SCASE("c") {
161                     if(i+1<argc) {
162                         info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
163                         i++;
164                         info->flagconfigFile++;
165                     } else {
166                         usage(argv[0]);
167                         exit(EXIT_FAILURE);
168                     }
169                     SBREAK;
170                 }
171                 SCASE("M") {
172                     if(i+1<argc) {
173                         info->Mode = stringGetNthIntegerData(argv[i+1], 1, " ,");
174                         i++;
175                         info->flagMode++;
176                     } else {
177                         usage(argv[0]);
178                         exit(EXIT_FAILURE);
179                     }
180                     SBREAK;
181                 }
182                 SCASE("m") {
183                     if(i+1<argc) {
184                         info->mode = stringGetNthIntegerData(argv[i+1], 1, " ,");
185                         i++;
186                         info->flagmode++;
187                     } else {
188                         usage(argv[0]);
189                         exit(EXIT_FAILURE);
190                     }
191                     SBREAK;
192                 }
193                 SCASE("h") {
194                     usage(argv[0]);
195                     exit(EXIT_SUCCESS);
196                     break;
197                 }
198                 SCASE("html") {
199                     htmlBeforeUsage(argv[0]);
200                     usage(argv[0]);
201                     htmlAfterUsage(argv[0]);
202                     exit(EXIT_SUCCESS);
203                     break;
204                 }
205                 SDEFAULT {
206                     fprintf(stderr, "Not Supported Options: :%s\n", argv[i]);
207                     usage(argv[0]);
208                     exit(EXIT_FAILURE);
209                     break;
210                 }
211             SSWITCHEND;
212         } 
213     } 
214