Changeset 3111 in Sophya for trunk/SophyaExt/XephemAstroLib/formats.c
- Timestamp:
- Nov 22, 2006, 2:53:31 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/XephemAstroLib/formats.c
r2818 r3111 77 77 } 78 78 79 /* put the given modified Julian date, jd, in out[] according to preference80 * format.79 /* put the given modified Julian date, jd, in out[] according to the given 80 * preference format. 81 81 * return number of characters written to out, not counting final '\0'. 82 82 */ 83 83 int 84 fs_date (char out[], double jd) 85 { 86 int p = pref_get (PREF_DATE_FORMAT); 84 fs_date (char out[], int format, double jd) 85 { 87 86 char *out0 = out; 88 87 int m, y; … … 96 95 mjd_cal (mjd_day(jd+0.5), &m, &d, &y); 97 96 98 switch ( p) {97 switch (format) { 99 98 case PREF_YMD: 100 99 out += sprintf (out, "%4d/%02d/%02.6g", y, m, d); … … 107 106 break; 108 107 default: 109 printf ("fs_date: bad date pref: %d\n", p);108 printf ("fs_date: bad date pref: %d\n", format); 110 109 abort(); 111 110 } … … 125 124 double *dp) /* cracked value, if return 0 */ 126 125 { 127 double a = 0, b = 0, c = 0;128 char str[ 128];126 double a, b, c; 127 char str[256]; 129 128 char *neg; 130 int r;129 int isneg, r; 131 130 132 131 /* copy str0 so we can play with it */ … … 134 133 str[sizeof(str)-1] = '\0'; 135 134 135 /* note first negative (but not fooled by neg exponent) */ 136 isneg = 0; 136 137 neg = strchr(str, '-'); 137 if (neg )138 if (neg && (neg == str || (neg[-1] != 'E' && neg[-1] != 'e'))) { 138 139 *neg = ' '; 140 isneg = 1; 141 } 142 143 /* crack up to three components */ 144 a = b = c = 0.0; 139 145 r = sscanf (str, "%lf%*[^0-9]%lf%*[^0-9]%lf", &a, &b, &c); 140 146 if (r < 1) 141 147 return (-1); 142 *dp = a + b/60 + c/3600; 143 if (neg) 148 149 /* back to one value, restoring neg */ 150 *dp = (c/60.0 + b)/60.0 + a; 151 if (isneg) 144 152 *dp *= -1; 145 153 return (0); … … 202 210 203 211 /* For RCS Only -- Do Not Edit */ 204 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: formats.c,v $ $Date: 200 5-08-21 10:02:37 $ $Revision: 1.5$ $Name: not supported by cvs2svn $"};212 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: formats.c,v $ $Date: 2006-11-22 13:53:29 $ $Revision: 1.6 $ $Name: not supported by cvs2svn $"};
Note:
See TracChangeset
for help on using the changeset viewer.