OSDN Git Service

Eos:Extensible object-oriented system for image analysis of electron micrographs
[eos/hostdependX86LINUX64.git] / src / Tools / mrcImage / mrcImageUnbentROI / 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(mrcImageUnbentROIInfo* info, int argc, char* argv[])
14 {
15     long i, j, nv;
16     char s[1024];
17     for(i=1; i<argc; i++) {
18         if(OPTION_FLAG==argv[i][OPTION_FLAG_POS]) {
19             SSWITCH(argv[i]+OPTION_POS)
20                 SCASE("i") {
21                     if(i+1<argc) {
22                         info->In = stringGetNthWord(argv[i+1], 1, " ,");
23                         i++;
24                         info->flagIn++;
25                     } else {
26                         usage(argv[0]);
27                         exit(EXIT_FAILURE);
28                     }
29                     SBREAK;
30                 }
31                 SCASE("o") {
32                     if(i+1<argc) {
33                         info->Out = stringGetNthWord(argv[i+1], 1, " ,");
34                         i++;
35                         info->flagOut++;
36                     } else {
37                         usage(argv[0]);
38                         exit(EXIT_FAILURE);
39                     }
40                     SBREAK;
41                 }
42                 SCASE("r") {
43                     if(i+1<argc) {
44                         nv = argc - i - 1;
45                         info->roiLine = (float*)memoryAllocate(sizeof(float)*nv, "in argCheck");
46                         for(j=0; j<nv; j++) {
47                             info->roiLine[j] = stringGetNthRealData(argv[i+j+1], 1, " ,");
48                         }
49                         info->flagroiLine=nv;
50                         i+=nv;
51                     } else {
52                         usage(argv[0]);
53                         exit(EXIT_FAILURE);
54                     }
55                     SBREAK;
56                 }
57                 SCASE("x") {
58                     if(i+1<argc) {
59                         info->x = stringGetNthRealData(argv[i+1], 1, " ,");
60                         i++;
61                         info->flagx++;
62                     } else {
63                         usage(argv[0]);
64                         exit(EXIT_FAILURE);
65                     }
66                     SBREAK;
67                 }
68                 SCASE("y") {
69                     if(i+1<argc) {
70                         info->y = stringGetNthRealData(argv[i+1], 1, " ,");
71                         i++;
72                         info->flagy++;
73                     } else {
74                         usage(argv[0]);
75                         exit(EXIT_FAILURE);
76                     }
77                     SBREAK;
78                 }
79                 SCASE("W") {
80                     if(i+1<argc) {
81                         info->Width = stringGetNthRealData(argv[i+1], 1, " ,");
82                         i++;
83                         info->flagWidth++;
84                     } else {
85                         usage(argv[0]);
86                         exit(EXIT_FAILURE);
87                     }
88                     SBREAK;
89                 }
90                 SCASE("H") {
91                     if(i+1<argc) {
92                         info->Height = stringGetNthRealData(argv[i+1], 1, " ,");
93                         i++;
94                         info->flagHeight++;
95                     } else {
96                         usage(argv[0]);
97                         exit(EXIT_FAILURE);
98                     }
99                     SBREAK;
100                 }
101                 SCASE("cor") {
102                     if(i+1<argc) {
103                         info->Cor = stringGetNthRealData(argv[i+1], 1, " ,");
104                         i++;
105                         info->flagCor++;
106                     } else {
107                         usage(argv[0]);
108                         exit(EXIT_FAILURE);
109                     }
110                     SBREAK;
111                 }
112                 SCASE("S") {
113                     if(i+1<argc) {
114                         info->Shrink = stringGetNthIntegerData(argv[i+1], 1, " ,");
115                         i++;
116                         info->flagShrink++;
117                     } else {
118                         usage(argv[0]);
119                         exit(EXIT_FAILURE);
120                     }
121                     SBREAK;
122                 }
123                 SCASE("c") {
124                     if(i+1<argc) {
125                         info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
126                         i++;
127                         info->flagconfigFile++;
128                     } else {
129                         usage(argv[0]);
130                         exit(EXIT_FAILURE);
131                     }
132                     SBREAK;
133                 }
134                 SCASE("m") {
135                     if(i+1<argc) {
136                         info->mode = stringGetNthIntegerData(argv[i+1], 1, " ,");
137                         i++;
138                         info->flagmode++;
139                     } else {
140                         usage(argv[0]);
141                         exit(EXIT_FAILURE);
142                     }
143                     SBREAK;
144                 }
145                 SCASE("h") {
146                     usage(argv[0]);
147                     exit(EXIT_SUCCESS);
148                     break;
149                 }
150                 SCASE("html") {
151                     htmlBeforeUsage(argv[0]);
152                     usage(argv[0]);
153                     htmlAfterUsage(argv[0]);
154                     exit(EXIT_SUCCESS);
155                     break;
156                 }
157                 SDEFAULT {
158                     fprintf(stderr, "Not Supported Options: :%s\n", argv[i]);
159                     usage(argv[0]);
160                     exit(EXIT_FAILURE);
161                     break;
162                 }
163             SSWITCHEND;
164         } 
165     } 
166