Changeset 7054 for trunk/Ohana/src/libfits/header/F_scan.c
- Timestamp:
- May 3, 2006, 12:01:09 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/libfits/header/F_scan.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libfits/header/F_scan.c
r7039 r7054 2 2 # include <gfitsio.h> 3 3 4 char * fits_keyword_start (char *line);5 char * fits_keyword_end (char *line);4 char *gfits_keyword_start (char *line); 5 char *gfits_keyword_end (char *line); 6 6 7 int fits_scan (Header *header, char *field, char *mode, int N,...) {7 int gfits_scan (Header *header, char *field, char *mode, int N,...) { 8 8 9 9 int status; … … 11 11 12 12 va_start (argp, N); 13 status = fits_vscan (header, field, mode, N, argp);13 status = gfits_vscan (header, field, mode, N, argp); 14 14 va_end (argp); 15 15 return (status); 16 16 } 17 17 18 int fits_vscan (Header *header, char *field, char *mode, int N, va_list argp) {18 int gfits_vscan (Header *header, char *field, char *mode, int N, va_list argp) { 19 19 20 20 char *p, *q, *s, tmp[81]; … … 23 23 24 24 /* find the correct line with field */ 25 p = fits_header_field (header, field, N);25 p = gfits_header_field (header, field, N); 26 26 if (p == NULL) return (FALSE); 27 27 … … 37 37 /* comment from data line */ 38 38 if (!strcmp (mode, "%C")) { 39 q = fits_keyword_end (p) + 3;39 q = gfits_keyword_end (p) + 3; 40 40 q = MIN (p + 80, q); 41 41 bzero (tmp, 81); 42 42 Nchar = MIN (80, p + 80 - q); 43 43 memcpy (tmp, q, Nchar); 44 fits_stripwhite (tmp);44 gfits_stripwhite (tmp); 45 45 strcpy (va_arg (argp, char *), tmp); 46 46 return (TRUE); … … 49 49 /* extract data into char array (exclude containing ' chars) */ 50 50 if (!strcmp (mode, "%s")) { 51 s = fits_keyword_start (p); /* points at first char (not ') */52 q = fits_keyword_end (p); /* points at following space or ' */51 s = gfits_keyword_start (p); /* points at first char (not ') */ 52 q = gfits_keyword_end (p); /* points at following space or ' */ 53 53 54 54 Nchar = MAX (0, (q - s)); 55 55 bzero (tmp, 81); 56 56 memcpy (tmp, s, Nchar); 57 fits_stripwhite (tmp);57 gfits_stripwhite (tmp); 58 58 strcpy (va_arg (argp, char *), tmp); 59 59 return (TRUE); … … 62 62 /* boolean data, requires int target */ 63 63 if (!strcmp (mode, "%t")) { 64 s = fits_keyword_start (p);64 s = gfits_keyword_start (p); 65 65 if (*s == 'T') { 66 66 *va_arg (argp, int *) = TRUE; … … 75 75 /* remaining options are numerical data */ 76 76 /* need to interpret 1.0d5 as 1.0e5 */ 77 s = fits_keyword_start (p); /* points at first char (not ') */78 q = fits_keyword_end (p); /* points at following space or ' */77 s = gfits_keyword_start (p); /* points at first char (not ') */ 78 q = gfits_keyword_end (p); /* points at following space or ' */ 79 79 value = strtod (s, &q); 80 80 if ((*q == 'd') || (*q == 'D')) … … 100 100 101 101 /* Strip whitespace from the start and end of STRING. */ 102 int fits_stripwhite (char *string) {102 int gfits_stripwhite (char *string) { 103 103 104 104 int i;
Note:
See TracChangeset
for help on using the changeset viewer.
