Date: Wed, 24 Mar 2010 07:03:11 +0000 (UTC) From: Edwin Groothuis <edwin@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r205580 - user/edwin/calendar Message-ID: <201003240703.o2O73Bxq021833@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: edwin Date: Wed Mar 24 07:03:11 2010 New Revision: 205580 URL: http://svn.freebsd.org/changeset/base/205580 Log: Make the code WARNS=7 errors free. Well, except for something in io.c, therefore it won't be enabled in the Makefile. Modified: user/edwin/calendar/calendar.c user/edwin/calendar/calendar.h user/edwin/calendar/dates.c user/edwin/calendar/day.c user/edwin/calendar/locale.c user/edwin/calendar/parsedata.c user/edwin/calendar/pom.c user/edwin/calendar/sunpos.c Modified: user/edwin/calendar/calendar.c ============================================================================== --- user/edwin/calendar/calendar.c Wed Mar 24 06:23:04 2010 (r205579) +++ user/edwin/calendar/calendar.c Wed Mar 24 07:03:11 2010 (r205580) @@ -65,20 +65,21 @@ struct passwd *pw; int doall = 0; int debug = 0; char *DEBUG = NULL; -double UTCoffset = UTCOFFSET_NOTSET; -int eastlongitude = LONGITUDE_NOTSET; time_t f_time = 0; - -int f_dayAfter = 0; /* days after current date */ -int f_dayBefore = 0; /* days before current date */ -int Friday = 5; /* day before weekend */ +double UTCOffset = UTCOFFSET_NOTSET; +int EastLongitude = LONGITUDE_NOTSET; static void usage(void) __dead2; int main(int argc, char *argv[]) { + int f_dayAfter = 0; /* days after current date */ + int f_dayBefore = 0; /* days before current date */ + int Friday = 5; /* day before weekend */ + int ch; + struct tm tp1, tp2; (void)setlocale(LC_ALL, ""); @@ -113,10 +114,10 @@ main(int argc, char *argv[]) Friday = atoi(optarg); break; case 'l': /* Change longitudal position */ - eastlongitude = strtol(optarg, NULL, 10); + EastLongitude = strtol(optarg, NULL, 10); break; case 'U': /* Change UTC offset */ - UTCoffset = strtod(optarg, NULL); + UTCOffset = strtod(optarg, NULL); break; case 'd': @@ -146,8 +147,8 @@ main(int argc, char *argv[]) /* if not set, determine where I could be */ { - if (UTCoffset == UTCOFFSET_NOTSET && - eastlongitude == LONGITUDE_NOTSET) { + if (UTCOffset == UTCOFFSET_NOTSET && + EastLongitude == LONGITUDE_NOTSET) { /* Calculate on difference between here and UTC */ time_t t; struct tm tm; @@ -169,18 +170,18 @@ main(int argc, char *argv[]) uo /= 60.0 / 100.0; uo = hh + uo / 100; - UTCoffset = uo; - eastlongitude = UTCoffset * 15; - } else if (UTCoffset == UTCOFFSET_NOTSET) { + UTCOffset = uo; + EastLongitude = UTCOffset * 15; + } else if (UTCOffset == UTCOFFSET_NOTSET) { /* Base on information given */ - UTCoffset = eastlongitude / 15; - } else if (eastlongitude == LONGITUDE_NOTSET) { + UTCOffset = EastLongitude / 15; + } else if (EastLongitude == LONGITUDE_NOTSET) { /* Base on information given */ - eastlongitude = UTCoffset * 15; + EastLongitude = UTCOffset * 15; } } - settimes(f_time, f_dayBefore, f_dayAfter, &tp1, &tp2); + settimes(f_time, f_dayBefore, f_dayAfter, Friday, &tp1, &tp2); generatedates(&tp1, &tp2); /* Modified: user/edwin/calendar/calendar.h ============================================================================== --- user/edwin/calendar/calendar.h Wed Mar 24 06:23:04 2010 (r205579) +++ user/edwin/calendar/calendar.h Wed Mar 24 07:03:11 2010 (r205580) @@ -55,14 +55,13 @@ extern struct passwd *pw; extern int doall; extern struct iovec header[]; -extern struct tm tp1, tp2; extern time_t t1, t2; extern const char *calendarFile; extern int yrdays; extern struct fixs neaster, npaskha, ncny, nfullmoon, nnewmoon; extern struct fixs nmarequinox, nsepequinox, njunsolstice, ndecsolstice; -extern double UTCoffset; -extern int eastlongitude; +extern double UTCOffset; +extern int EastLongitude; #define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0) @@ -113,9 +112,6 @@ extern int eastlongitude; #define UTCOFFSET_CNY 8.0 extern int debug; /* show parsing of the input */ -extern int f_dayAfter; /* days after current date */ -extern int f_dayBefore; /* days before current date */ -extern int Friday; /* day before weekend */ extern int year1, year2; /* events.c */ @@ -143,7 +139,7 @@ struct event { struct fixs { char *name; - int len; + size_t len; }; extern const char *days[]; @@ -162,7 +158,7 @@ void setnsequences(char *); /* day.c */ extern const struct tm tm0; -void settimes(time_t,int, int, struct tm *tp1, struct tm *tp2); +void settimes(time_t,int before, int after, int friday, struct tm *tp1, struct tm *tp2); time_t Mktime(char *); /* parsedata.c */ Modified: user/edwin/calendar/dates.c ============================================================================== --- user/edwin/calendar/dates.c Wed Mar 24 06:23:04 2010 (r205579) +++ user/edwin/calendar/dates.c Wed Mar 24 07:03:11 2010 (r205580) @@ -171,7 +171,6 @@ generatedates(struct tm *tp1, struct tm int y1, m1, d1; int y2, m2, d2; int y, m, d; - int *mondays; y1 = tp1->tm_year; m1 = tp1->tm_mon + 1; Modified: user/edwin/calendar/day.c ============================================================================== --- user/edwin/calendar/day.c Wed Mar 24 06:23:04 2010 (r205579) +++ user/edwin/calendar/day.c Wed Mar 24 07:03:11 2010 (r205580) @@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$"); #include "calendar.h" -struct tm tp1, tp2; +//struct tm tp1, tp2; time_t time1, time2; const struct tm tm0; char dayname[10]; @@ -51,7 +51,7 @@ int year1, year2; void -settimes(time_t now, int before, int after, struct tm *tp1, struct tm *tp2) +settimes(time_t now, int before, int after, int friday, struct tm *tp1, struct tm *tp2) { char *oldl, *lbufp; struct tm tp; @@ -59,13 +59,13 @@ settimes(time_t now, int before, int aft localtime_r(&now, &tp); /* Friday displays Monday's events */ - if (f_dayAfter == 0 && f_dayBefore == 0 && Friday != -1) - f_dayAfter = tp.tm_wday == Friday ? 3 : 1; + if (after == 0 && before == 0 && friday != -1) + after = tp.tm_wday == friday ? 3 : 1; - time1 = now - SECSPERDAY * f_dayBefore; + time1 = now - SECSPERDAY * before; localtime_r(&time1, tp1); year1 = 1900 + tp1->tm_year; - time2 = now + SECSPERDAY * f_dayAfter; + time2 = now + SECSPERDAY * after; localtime_r(&time2, tp2); year2 = 1900 + tp2->tm_year; @@ -121,49 +121,3 @@ Mktime(char *dp) #endif return (mktime(&tm)); } - - - -/* return offset for variable weekdays - * -1 -> last weekday in month - * +1 -> first weekday in month - * ... etc ... - */ -int -getdayvar(char *s) -{ - int offs; - - offs = strlen(s); - - /* Sun+1 or Wednesday-2 - * ^ ^ */ - - /* fprintf(stderr, "x: %s %s %d\n", s, s + offs - 2, offs); */ - switch (*(s + offs - 2)) { - case '-': - return (-(atoi(s + offs - 1))); - case '+': - return (atoi(s + offs - 1)); - } - - /* - * some aliases: last, first, second, third, fourth - */ - - /* last */ - if (offs > 4 && !strcasecmp(s + offs - 4, "last")) - return (-1); - else if (offs > 5 && !strcasecmp(s + offs - 5, "first")) - return (+1); - else if (offs > 6 && !strcasecmp(s + offs - 6, "second")) - return (+2); - else if (offs > 5 && !strcasecmp(s + offs - 5, "third")) - return (+3); - else if (offs > 6 && !strcasecmp(s + offs - 6, "fourth")) - return (+4); - - /* no offset detected */ - return (0); -} - Modified: user/edwin/calendar/locale.c ============================================================================== --- user/edwin/calendar/locale.c Wed Mar 24 06:23:04 2010 (r205579) +++ user/edwin/calendar/locale.c Wed Mar 24 07:03:11 2010 (r205580) @@ -147,7 +147,7 @@ setnsequences(char *seq) if ((p = strchr(p, ' ')) == NULL) { for (i = 0; i < 5; i++) { nsequences[i].name = NULL; - nsequences[i].len = -1; + nsequences[i].len = 0; return; } Modified: user/edwin/calendar/parsedata.c ============================================================================== --- user/edwin/calendar/parsedata.c Wed Mar 24 06:23:04 2010 (r205579) +++ user/edwin/calendar/parsedata.c Wed Mar 24 07:03:11 2010 (r205580) @@ -37,12 +37,11 @@ __FBSDID("$FreeBSD$"); #include "calendar.h" static char *showflags(int flags); -static int isonlydigits(char *s, int star); -static char *getmonthname(int i); -static int checkmonth(char *s, int *len, int *offset, char **month); -static char *getdayofweekname(int i); -static int checkdayofweek(char *s, int *len, int *offset, char **dow); static int isonlydigits(char *s, int nostar); +static const char *getmonthname(int i); +static int checkmonth(char *s, int *len, int *offset, const char **month); +static const char *getdayofweekname(int i); +static int checkdayofweek(char *s, int *len, int *offset, const char **dow); static int indextooffset(char *s); static int parseoffset(char *s); static char *floattoday(int year, double f); @@ -89,9 +88,10 @@ determinestyle(char *date, int *flags, char *dayofweek, int *idayofweek, char *modifieroffset, char *modifierindex, char *specialday) { - char *p, *dow, *pmonth, *p1, *p2; + char *p, *p1, *p2; + const char *dow, *pmonth; char pold; - int len, offset; + size_t len, offset; *flags = F_NONE; *month = '\0'; @@ -298,25 +298,25 @@ allfine: } static void -remember(int *index, int *y, int *m, int *d, char **ed, int yy, int mm, int dd, - char *extra) +remember(int *rememberindex, int *y, int *m, int *d, char **ed, int yy, int mm, + int dd, char *extra) { static int warned = 0; - if (*index >= MAXCOUNT - 1) { + if (*rememberindex >= MAXCOUNT - 1) { if (warned == 0) warnx("Index > %d, ignored", MAXCOUNT); warned++; return; } - y[*index] = yy; - m[*index] = mm; - d[*index] = dd; + y[*rememberindex] = yy; + m[*rememberindex] = mm; + d[*rememberindex] = dd; if (extra != NULL) - strcpy(ed[*index], extra); + strcpy(ed[*rememberindex], extra); else - ed[*index][0] = '\0'; - *index += 1; + ed[*rememberindex][0] = '\0'; + *rememberindex += 1; } static void @@ -371,7 +371,7 @@ parsedaymonth(char *date, int *yearp, in { char month[100], dayofmonth[100], dayofweek[100], modifieroffset[100]; char modifierindex[100], specialday[100]; - int idayofweek, imonth, idayofmonth, year, index; + int idayofweek = -1, imonth = -1, idayofmonth = -1, year, remindex; int d, m, dow, rm, rd, offset; char *ed; int retvalsign = 1; @@ -407,7 +407,7 @@ parsedaymonth(char *date, int *yearp, in dayofmonth, idayofmonth, dayofweek, idayofweek, modifieroffset, modifierindex, specialday); - index = 0; + remindex = 0; for (year = year1; year <= year2; year++) { /* Get important dates for this year */ yearinfo = years; @@ -427,11 +427,11 @@ parsedaymonth(char *date, int *yearp, in yearinfo->mondays = mondaytab[isleap(year)]; yearinfo->ieaster = easter(year); - fpom(year, UTCoffset, yearinfo->ffullmoon, + fpom(year, UTCOffset, yearinfo->ffullmoon, yearinfo->fnewmoon); fpom(year, UTCOFFSET_CNY, yearinfo->ffullmooncny, yearinfo->fnewmooncny); - fequinoxsolstice(year, UTCoffset, + fequinoxsolstice(year, UTCOffset, yearinfo->equinoxdays, yearinfo->solsticedays); /* @@ -454,7 +454,7 @@ parsedaymonth(char *date, int *yearp, in if (*flags == (F_MONTH | F_DAYOFMONTH)) { if (!remember_ymd(year, imonth, idayofmonth)) continue; - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, imonth, idayofmonth, NULL); continue; } @@ -463,7 +463,7 @@ parsedaymonth(char *date, int *yearp, in if (*flags == (F_MONTH | F_DAYOFMONTH | F_VARIABLE)) { if (!remember_ymd(year, imonth, idayofmonth)) continue; - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, imonth, idayofmonth, NULL); continue; } @@ -473,7 +473,7 @@ parsedaymonth(char *date, int *yearp, in for (m = 1; m <= 12; m++) { if (!remember_ymd(year, m, idayofmonth)) continue; - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, m, idayofmonth, NULL); } continue; @@ -484,7 +484,7 @@ parsedaymonth(char *date, int *yearp, in for (d = 1; d <= yearinfo->mondays[imonth]; d++) { if (!remember_ymd(year, imonth, d)) continue; - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, imonth, d, NULL); } continue; @@ -495,7 +495,7 @@ parsedaymonth(char *date, int *yearp, in for (m = 1; m <= 12; m++) { if (!remember_ymd(year, m, idayofmonth)) continue; - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, m, idayofmonth, NULL); } continue; @@ -507,7 +507,7 @@ parsedaymonth(char *date, int *yearp, in d = (idayofweek - dow + 8) % 7; while (d <= 366) { if (remember_yd(year, d, &rm, &rd)) - remember(&index, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, NULL); d += 7; @@ -526,7 +526,7 @@ parsedaymonth(char *date, int *yearp, in while (d <= yearinfo->mondays[imonth]) { if (--offset == 0 && remember_ymd(year, imonth, d)) { - remember(&index, + remember(&remindex, yearp, monthp, dayp, edp, year, imonth, d, NULL); continue; @@ -543,7 +543,7 @@ parsedaymonth(char *date, int *yearp, in d -= 7; } if (remember_ymd(year, imonth, d)) - remember(&index, + remember(&remindex, yearp, monthp, dayp, edp, year, imonth, d, NULL); continue; @@ -557,7 +557,7 @@ parsedaymonth(char *date, int *yearp, in d = (idayofweek - dow + 8) % 7; while (d <= yearinfo->mondays[imonth]) { if (remember_ymd(year, imonth, d)) - remember(&index, + remember(&remindex, yearp, monthp, dayp, edp, year, imonth, d, NULL); d += 7; @@ -573,7 +573,7 @@ parsedaymonth(char *date, int *yearp, in offset = parseoffset(modifieroffset); if (remember_yd(year, yearinfo->ieaster + offset, &rm, &rd)) - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, NULL); continue; } @@ -586,7 +586,7 @@ parsedaymonth(char *date, int *yearp, in offset = parseoffset(modifieroffset); if (remember_yd(year, yearinfo->ipaskha + offset, &rm, &rd)) - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, NULL); continue; } @@ -599,7 +599,7 @@ parsedaymonth(char *date, int *yearp, in offset = parseoffset(modifieroffset); if (remember_yd(year, yearinfo->firstcnyday + offset, &rm, &rd)) - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, NULL); continue; } @@ -618,7 +618,7 @@ parsedaymonth(char *date, int *yearp, in &rm, &rd)) { ed = floattotime( yearinfo->ffullmoon[i]); - remember(&index, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, ed); } @@ -639,7 +639,7 @@ parsedaymonth(char *date, int *yearp, in floor(yearinfo->fnewmoon[i]) + offset, &rm, &rd)) { ed = floattotime(yearinfo->fnewmoon[i]); - remember(&index, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, ed); } @@ -656,7 +656,7 @@ parsedaymonth(char *date, int *yearp, in if (remember_yd(year, yearinfo->equinoxdays[0] + offset, &rm, &rd)) { ed = floattotime(yearinfo->equinoxdays[0]); - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, ed); } continue; @@ -669,7 +669,7 @@ parsedaymonth(char *date, int *yearp, in if (remember_yd(year, yearinfo->equinoxdays[1] + offset, &rm, &rd)) { ed = floattotime(yearinfo->equinoxdays[1]); - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, ed); } continue; @@ -684,7 +684,7 @@ parsedaymonth(char *date, int *yearp, in if (remember_yd(year, yearinfo->solsticedays[0] + offset, &rm, &rd)) { ed = floattotime(yearinfo->solsticedays[0]); - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, ed); } continue; @@ -697,7 +697,7 @@ parsedaymonth(char *date, int *yearp, in if (remember_yd(year, yearinfo->solsticedays[1] + offset, &rm, &rd)) { ed = floattotime(yearinfo->solsticedays[1]); - remember(&index, yearp, monthp, dayp, edp, + remember(&remindex, yearp, monthp, dayp, edp, year, rm, rd, ed); } continue; @@ -711,9 +711,9 @@ parsedaymonth(char *date, int *yearp, in } if (retvalsign == -1) - return (-index - 1); + return (-remindex - 1); else - return (index); + return (remindex); } static char * @@ -762,16 +762,16 @@ showflags(int flags) return s; } -static char * +static const char * getmonthname(int i) { if (nmonths[i - 1].len != 0 && nmonths[i - 1].name != NULL) return (nmonths[i - 1].name); - return ((char *)months[i - 1]); + return (months[i - 1]); } static int -checkmonth(char *s, int *len, int *offset, char **month) +checkmonth(char *s, int *len, int *offset, const char **month) { struct fixs *n; int i; @@ -797,7 +797,7 @@ checkmonth(char *s, int *len, int *offse for (i = 0; fmonths[i] != NULL; i++) { *len = strlen(fmonths[i]); if (strncasecmp(s, fmonths[i], *len) == 0) { - *month = (char *)fmonths[i]; + *month = fmonths[i]; *offset = i + 1; return (1); } @@ -805,7 +805,7 @@ checkmonth(char *s, int *len, int *offse for (i = 0; months[i] != NULL; i++) { if (strncasecmp(s, months[i], 3) == 0) { *len = 3; - *month = (char *)months[i]; + *month = months[i]; *offset = i + 1; return (1); } @@ -813,16 +813,16 @@ checkmonth(char *s, int *len, int *offse return (0); } -static char * +static const char * getdayofweekname(int i) { if (ndays[i].len != 0 && ndays[i].name != NULL) return (ndays[i].name); - return ((char *)days[i]); + return (days[i]); } static int -checkdayofweek(char *s, int *len, int *offset, char **dow) +checkdayofweek(char *s, int *len, int *offset, const char **dow) { struct fixs *n; int i; @@ -848,7 +848,7 @@ checkdayofweek(char *s, int *len, int *o for (i = 0; fdays[i] != NULL; i++) { *len = strlen(fdays[i]); if (strncasecmp(s, fdays[i], *len) == 0) { - *dow = (char *)fdays[i]; + *dow = fdays[i]; *offset = i; return (1); } @@ -856,7 +856,7 @@ checkdayofweek(char *s, int *len, int *o for (i = 0; days[i] != NULL; i++) { if (strncasecmp(s, days[i], 3) == 0) { *len = 3; - *dow = (char *)days[i]; + *dow = days[i]; *offset = i; return (1); } @@ -892,7 +892,7 @@ indextooffset(char *s) } for (i = 0; i < 6; i++) { n = nsequences + i; - if (n->len == -1) + if (n->len == 0) continue; if (strncasecmp(s, n->name, n->len) == 0) { if (i == 5) @@ -953,37 +953,20 @@ floattoday(int year, double f) return (buf); } -char * -inttoday(int year, int f) -{ - static char buf[100]; - int i, m, d; - int *cumdays = cumdaytab[isleap(year)]; - - for (i = 0; 1 + cumdays[i] < f; i++) - ;; - m = --i; - d = floor(f - 1 - cumdays[i]); - f -= floor(f); - - sprintf(buf, "%02d-%02d", m, d); - return (buf); -} - void dodebug(char *what) { int year; - printf("UTCOffset: %g\n", UTCoffset); - printf("eastlongitude: %d\n", eastlongitude); + printf("UTCOffset: %g\n", UTCOffset); + printf("eastlongitude: %d\n", EastLongitude); if (strcmp(what, "moon") == 0) { double ffullmoon[MAXMOONS], fnewmoon[MAXMOONS]; int i; for (year = year1; year <= year2; year++) { - fpom(year, UTCoffset, ffullmoon, fnewmoon); + fpom(year, UTCOffset, ffullmoon, fnewmoon); printf("Full moon %d:\t", year); for (i = 0; ffullmoon[i] >= 0; i++) { printf("%g (%s) ", ffullmoon[i], @@ -1005,7 +988,7 @@ dodebug(char *what) double equinoxdays[2], solsticedays[2]; for (year = year1; year <= year2; year++) { printf("Sun in %d:\n", year); - fequinoxsolstice(year, UTCoffset, equinoxdays, + fequinoxsolstice(year, UTCOffset, equinoxdays, solsticedays); printf("e[0] - %g (%s)\n", equinoxdays[0], Modified: user/edwin/calendar/pom.c ============================================================================== --- user/edwin/calendar/pom.c Wed Mar 24 06:23:04 2010 (r205579) +++ user/edwin/calendar/pom.c Wed Mar 24 07:03:11 2010 (r205580) @@ -81,8 +81,8 @@ __FBSDID("$FreeBSD$"); static void adj360(double *); static double dtor(double); -static double potm(double); -static double potm_minute(double days, int olddir); +static double potm(double onday); +static double potm_minute(double onday, int olddir); void pom(int year, double utcoffset, int *fms, int *nms) @@ -93,6 +93,7 @@ pom(int year, double utcoffset, int *fms fpom(year, utcoffset, ffms, fnms); + j = 0; for (i = 0; ffms[i] != 0; i++) fms[j++] = round(ffms[i]); fms[i] = -1; @@ -183,7 +184,7 @@ fpom(int year, double utcoffset, double } static double -potm_minute(double days, int olddir) { +potm_minute(double onday, int olddir) { double period = FSECSPERDAY / 2.0; double p1, p2; double before, after; @@ -191,7 +192,7 @@ potm_minute(double days, int olddir) { // printf("---> days:%g olddir:%d\n", days, olddir); - p1 = days + (period / SECSPERDAY); + p1 = onday + (period / SECSPERDAY); period /= 2; while (period > 30) { /* half a minute */ @@ -219,23 +220,23 @@ potm_minute(double days, int olddir) { * return phase of the moon, as a percentage [0 ... 100] */ static double -potm(double days) +potm(double onday) { double N, Msol, Ec, LambdaSol, l, Mm, Ev, Ac, A3, Mmprime; double A4, lprime, V, ldprime, D, Nm; - N = 360 * days / 365.2422; /* sec 42 #3 */ + N = 360 * onday / 365.2422; /* sec 42 #3 */ adj360(&N); Msol = N + EPSILONg - RHOg; /* sec 42 #4 */ adj360(&Msol); Ec = 360 / PI * ECCEN * sin(dtor(Msol)); /* sec 42 #5 */ LambdaSol = N + Ec + EPSILONg; /* sec 42 #6 */ adj360(&LambdaSol); - l = 13.1763966 * days + lzero; /* sec 61 #4 */ + l = 13.1763966 * onday + lzero; /* sec 61 #4 */ adj360(&l); - Mm = l - (0.1114041 * days) - Pzero; /* sec 61 #5 */ + Mm = l - (0.1114041 * onday) - Pzero; /* sec 61 #5 */ adj360(&Mm); - Nm = Nzero - (0.0529539 * days); /* sec 61 #6 */ + Nm = Nzero - (0.0529539 * onday); /* sec 61 #6 */ adj360(&Nm); Ev = 1.2739 * sin(dtor(2*(l - LambdaSol) - Mm)); /* sec 61 #7 */ Ac = 0.1858 * sin(dtor(Msol)); /* sec 61 #8 */ Modified: user/edwin/calendar/sunpos.c ============================================================================== --- user/edwin/calendar/sunpos.c Wed Mar 24 06:23:04 2010 (r205579) +++ user/edwin/calendar/sunpos.c Wed Mar 24 07:03:11 2010 (r205580) @@ -366,12 +366,13 @@ calculatesunlongitude30(int year, int de double dec; double curL, prevL; int *pichinesemonths, *monthdays, *cumdays, i; - int firstmonth330; + int firstmonth330 = -1; cumdays = cumdaytab[isleap(year)]; monthdays = mondaytab[isleap(year)]; pichinesemonths = ichinesemonths; + h = 0; sunpos(year - 1, 12, 31, -24 * (degreeGMToffset / 360.0), HOUR(h), MIN(h), SEC(h), 0.0, 0.0, &prevL, &dec);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003240703.o2O73Bxq021833>