=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/calendar/ostern.c,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** src/usr.bin/calendar/ostern.c 1998/11/05 04:44:08 1.2 --- src/usr.bin/calendar/ostern.c 1998/12/13 07:31:08 1.3 *************** *** 1,4 **** ! /* $OpenBSD: ostern.c,v 1.2 1998/11/05 04:44:08 pjanzen Exp $ */ /* * Copyright (c) 1996 Wolfram Schneider . Berlin. --- 1,4 ---- ! /* $OpenBSD: ostern.c,v 1.3 1998/12/13 07:31:08 pjanzen Exp $ */ /* * Copyright (c) 1996 Wolfram Schneider . Berlin. *************** *** 25,44 **** * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ! * $Id: ostern.c,v 1.2 1998/11/05 04:44:08 pjanzen Exp $ */ #ifndef lint ! static char rcsid[] = "$OpenBSD: ostern.c,v 1.2 1998/11/05 04:44:08 pjanzen Exp $"; #endif /* not lint */ #include #include #include #include - #include "calendar.h" - /* return year day for Easter */ int easter (year) --- 25,43 ---- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ! * $Id: ostern.c,v 1.3 1998/12/13 07:31:08 pjanzen Exp $ */ #ifndef lint ! static char rcsid[] = "$OpenBSD: ostern.c,v 1.3 1998/12/13 07:31:08 pjanzen Exp $"; #endif /* not lint */ #include #include #include #include + #include /* return year day for Easter */ int easter (year) *************** *** 47,53 **** int e_a, e_b, e_c, e_d, e_e,e_f, e_g, e_h, e_i, e_k, e_l, e_m, e_n, e_p, e_q; - extern int *cumdays; /* silly, but it works */ e_a = year % 19; --- 46,51 ---- *************** *** 67,73 **** e_p = (e_h + e_l + 114 - (7 * e_m)) % 31; e_p = e_p + 1; ! e_q = cumdays[3] + 1 + e_p; if (e_n == 4) e_q += 31; --- 65,73 ---- e_p = (e_h + e_l + 114 - (7 * e_m)) % 31; e_p = e_p + 1; ! e_q = 31 + 28 + e_p; ! if (isleap(year)) ! e_q++; if (e_n == 4) e_q += 31; *************** *** 77,126 **** #endif return (e_q); - } - - /* return year day for Easter or easter depending days - * Match: Easter([+-][0-9]+)? - * e.g: Easter-2 is Good Friday (2 days before Easter) - */ - - int - geteaster(s, year) - char *s; - int year; - { - register int offset = 0; - extern struct fixs neaster; - - #define EASTER "easter" - #define EASTERNAMELEN (sizeof(EASTER) - 1) - - if (strncasecmp(s, EASTER, EASTERNAMELEN) == 0) - s += EASTERNAMELEN; - else if ( neaster.name != NULL - && strncasecmp(s, neaster.name, neaster.len) == 0 - ) - s += neaster.len; - else - return(0); - - #if DEBUG - printf("%s %d %d\n", s, year, EASTERNAMELEN); - #endif - - /* Easter+1 or Easter-2 - * ^ ^ */ - - switch(*s) { - - case '-': - case '+': - offset = atoi(s); - break; - - default: - offset = 0; - } - - return (easter(year) + offset); } --- 77,80 ----