Changeset 6792 for trunk/psastro/src/psastroArguments.c
- Timestamp:
- Apr 5, 2006, 1:11:17 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/psastro/src/psastroArguments.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psastro/src/psastroArguments.c
r6791 r6792 35 35 psMetadataAddPtr (config->arguments, PS_LIST_TAIL, "PSASTRO.OPTIONS", PS_DATA_METADATA, "", options); 36 36 37 // we load all input files onto a psArray, to be parsed later 38 psArray *input = psArrayAlloc (16); 39 input->n = 0; 40 41 // load the list of filenames the supplied file (may be a glob: "file*.fits") 42 if ((N = psArgumentGet (*argc, argv, "-file"))) { 43 glob_t globList; 44 psArgumentRemove (N, argc, argv); 45 globList.gl_offs = 0; 46 glob (argv[N], 0, NULL, &globList); 47 for (int i = 0; i < globList.gl_pathc; i++) { 48 char *filename = psStringCopy (globList.gl_pathv[i]); 49 psArrayAdd (input, 16, filename); 50 } 51 psArgumentRemove (N, argc, argv); 52 } 53 54 // load the list from the supplied text file 55 if ((N = psArgumentGet (*argc, argv, "-list"))) { 56 int nItems; 57 char line[1024]; // XXX limits the list lines to 1024 chars 58 char word[1024]; 59 char *filename; 60 61 psArgumentRemove (N, argc, argv); 62 FILE *f = fopen (argv[N], "r"); 63 if (f == NULL) { 64 psAbort ("psphot", "unable to open specified list file"); 65 } 66 while (fgets (line, 1024, f) != NULL) { 67 nItems = sscanf (line, "%s", word); 68 switch (nItems) { 69 case 0: 70 break; 71 case 1: 72 filename = psStringCopy (word); 73 psArrayAdd (input, 16, filename); 74 break; 75 default: 76 // rigid format, no comments allowed? 77 psAbort ("psphot", "error parsing input list file"); 78 break; 79 } 80 } 81 psArgumentRemove (N, argc, argv); 82 } 83 if (input->n < 1) usage (); 84 85 // input list gets places as an array on the config->arguements list 86 psMetadataAddPtr (config->arguments, PS_LIST_TAIL, "INPUT", PS_DATA_ARRAY, "", input); 37 status = pmConfigFileSetsMD (config->arguments, "INPUT", "-file", "-list"); 38 if (!status) { usage ();} 87 39 88 40 if (*argc != 2) usage ();
Note:
See TracChangeset
for help on using the changeset viewer.
