Ignore:
Timestamp:
Nov 22, 2006, 2:53:31 PM (19 years ago)
Author:
cmv
Message:

mise en conformite xephem 3.7.2 cmv 22/11/2006

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/XephemAstroLib/formats.c

    r2818 r3111  
    7777}
    7878
    79 /* put the given modified Julian date, jd, in out[] according to preference
    80  * format.
     79/* put the given modified Julian date, jd, in out[] according to the given
     80 * preference format.
    8181 * return number of characters written to out, not counting final '\0'.
    8282 */
    8383int
    84 fs_date (char out[], double jd)
    85 {
    86         int p = pref_get (PREF_DATE_FORMAT);
     84fs_date (char out[], int format, double jd)
     85{
    8786        char *out0 = out;
    8887        int m, y;
     
    9695            mjd_cal (mjd_day(jd+0.5), &m, &d, &y);
    9796
    98         switch (p) {
     97        switch (format) {
    9998        case PREF_YMD:
    10099            out += sprintf (out, "%4d/%02d/%02.6g", y, m, d);
     
    107106            break;
    108107        default:
    109             printf ("fs_date: bad date pref: %d\n", p);
     108            printf ("fs_date: bad date pref: %d\n", format);
    110109            abort();
    111110        }
     
    125124double *dp)             /* cracked value, if return 0 */
    126125{
    127         double a = 0, b = 0, c = 0;
    128         char str[128];
     126        double a, b, c;
     127        char str[256];
    129128        char *neg;
    130         int r;
     129        int isneg, r;
    131130
    132131        /* copy str0 so we can play with it */
     
    134133        str[sizeof(str)-1] = '\0';
    135134
     135        /* note first negative (but not fooled by neg exponent) */
     136        isneg = 0;
    136137        neg = strchr(str, '-');
    137         if (neg)
     138        if (neg && (neg == str || (neg[-1] != 'E' && neg[-1] != 'e'))) {
    138139            *neg = ' ';
     140            isneg = 1;
     141        }
     142
     143        /* crack up to three components */
     144        a = b = c = 0.0;
    139145        r = sscanf (str, "%lf%*[^0-9]%lf%*[^0-9]%lf", &a, &b, &c);
    140146        if (r < 1)
    141147            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)
    144152            *dp *= -1;
    145153        return (0);
     
    202210
    203211/* For RCS Only -- Do Not Edit */
    204 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: formats.c,v $ $Date: 2005-08-21 10:02:37 $ $Revision: 1.5 $ $Name: not supported by cvs2svn $"};
     212static 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.