1 #include "SUMA_suma.h"
2
usage_SurfDsetInfo(SUMA_GENERIC_ARGV_PARSE * ps)3 void usage_SurfDsetInfo (SUMA_GENERIC_ARGV_PARSE *ps)
4 {
5 static char FuncName[]={"usage_SurfDsetInfo"};
6 char * s = NULL, *sio=NULL, *st = NULL, *sts = NULL, *sd = NULL;
7 int i;
8
9 SUMA_ENTRY;
10
11 s = SUMA_help_basics();
12 sd = SUMA_help_dset();
13 printf ( "\n"
14 "Usage: SurfDsetInfo [options] -input DSET1 -input DSET2 ...\n"
15 " or: SurfDsetInfo [options] DSET1 DSET2 ... \n"
16 " Optional Params:\n"
17 " -debug DBG: if DBG = 2, show dset->ngr in its entirety in NIML form.\n"
18 "\n"
19 "%s"
20 "\n"
21 "%s"
22 "\n", sd, s);
23 if (s) SUMA_free(s); s = NULL; if (st) SUMA_free(st); st = NULL; if (sio) SUMA_free(sio); sio = NULL; if (sd) SUMA_free(sd);
24 s = SUMA_New_Additions(0, 1); printf("%s\n", s);SUMA_free(s); s = NULL;
25 printf(" Ziad S. Saad SSCC/NIMH/NIH saadz@mail.nih.gov \n");
26 exit(0);
27 }
28
29 SUMA_GENERIC_PROG_OPTIONS_STRUCT *
SUMA_SurfDsetInfo_ParseInput(char * argv[],int argc,SUMA_GENERIC_ARGV_PARSE * ps)30 SUMA_SurfDsetInfo_ParseInput(char *argv[], int argc,
31 SUMA_GENERIC_ARGV_PARSE *ps)
32 {
33 static char FuncName[]={"SUMA_SurfDsetInfo_ParseInput"};
34 SUMA_GENERIC_PROG_OPTIONS_STRUCT *Opt=NULL;
35 int kar;
36 SUMA_Boolean brk;
37 SUMA_Boolean LocalHead = NOPE;
38
39 SUMA_ENTRY;
40
41 Opt = SUMA_Alloc_Generic_Prog_Options_Struct();
42 Opt->ps = ps;
43 kar = 1;
44 brk = NOPE;
45 while (kar < argc) { /* loop accross command ine options */
46 /*fprintf(stdout, "%s verbose: Parsing command line...\n", FuncName);*/
47 if (strcmp(argv[kar], "-h") == 0 || strcmp(argv[kar], "-help") == 0) {
48 usage_SurfDsetInfo(ps);
49 exit (0);
50 }
51
52 SUMA_SKIP_COMMON_OPTIONS(brk, kar);
53
54 if (!brk && (strcmp(argv[kar], "-debug") == 0))
55 {
56 if (kar+1 >= argc)
57 {
58 fprintf (SUMA_STDERR, "need a number after -debug \n");
59 exit (1);
60 }
61
62 Opt->debug = atoi(argv[++kar]);
63 brk = YUP;
64 }
65
66 if (!brk && !ps->arg_checked[kar]) {
67 /* Assume the rest is input data */
68 while (kar < argc) {
69 if (Opt->ps->N_dsetname < SUMA_MAX_DSET_ON_COMMAND) {
70 Opt->ps->dsetname[Opt->ps->N_dsetname] =
71 SUMA_copy_string(argv[kar]);
72 ++Opt->ps->N_dsetname; ++kar;
73 } else {
74 SUMA_S_Err("Too many input dsets on command line");
75 }
76 }
77 } else {
78 brk = NOPE;
79 kar ++;
80 }
81 }
82
83 SUMA_RETURN(Opt);
84 }
85
main(int argc,char * argv[])86 int main (int argc,char *argv[])
87 {/* Main */
88 static char FuncName[]={"SurfDsetInfo"};
89 SUMA_GENERIC_PROG_OPTIONS_STRUCT *Opt;
90 SUMA_GENERIC_ARGV_PARSE *ps=NULL;
91 SUMA_DSET *dset=NULL;
92 SUMA_DSET_FORMAT iform = SUMA_NO_DSET_FORMAT;
93 int i;
94 SUMA_Boolean LocalHead = NOPE;
95
96 SUMA_STANDALONE_INIT;
97 SUMA_mainENTRY;
98
99 /* Allocate space for DO structure */
100 SUMAg_DOv = SUMA_Alloc_DisplayObject_Struct (SUMA_MAX_DISPLAYABLE_OBJECTS);
101 ps = SUMA_Parse_IO_Args(argc, argv, "-dset;");
102
103 if (argc < 2) {
104 usage_SurfDsetInfo(ps);
105 exit (1);
106 }
107
108 Opt = SUMA_SurfDsetInfo_ParseInput (argv, argc, ps);
109
110 if (Opt->debug > 2) LocalHead = YUP;
111
112 for (i=0; i<Opt->ps->N_dsetname; ++i) {
113 fprintf(SUMA_STDOUT, "\n"
114 "Info for dset (%2d/%2d): %s\n"
115 "------------------------\n",
116 i+1, Opt->ps->N_dsetname, Opt->ps->dsetname[i]);
117
118 if (!(dset = SUMA_LoadDset_s (Opt->ps->dsetname[i], &iform, 0))) {
119 SUMA_S_Err("Failed reading dset");
120 exit(1);
121 }
122
123 if (Opt->debug < 2) SUMA_ShowDset(dset, 0, SUMA_STDOUT);
124 else {
125 SUMA_ShowNel((void*)dset->ngr);
126 }
127 if (dset) SUMA_FreeDset(dset); dset = NULL;
128 }
129 if (ps) SUMA_FreeGenericArgParse(ps); ps = NULL;
130 if (Opt) Opt = SUMA_Free_Generic_Prog_Options_Struct(Opt);
131 if (!SUMA_Free_CommonFields(SUMAg_CF)) SUMA_error_message(FuncName,"SUMAg_CF Cleanup Failed!",1);
132 exit(0);
133
134 }
135