=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/calendar/ostern.c,v retrieving revision 1.1 retrieving revision 1.5 diff -u -r1.1 -r1.5 --- src/usr.bin/calendar/ostern.c 1996/12/05 06:04:40 1.1 +++ src/usr.bin/calendar/ostern.c 2004/12/10 15:31:01 1.5 @@ -1,4 +1,4 @@ -/* $OpenBSD: ostern.c,v 1.1 1996/12/05 06:04:40 millert Exp $ */ +/* $OpenBSD: ostern.c,v 1.5 2004/12/10 15:31:01 mickey Exp $ */ /* * Copyright (c) 1996 Wolfram Schneider . Berlin. @@ -25,17 +25,16 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ostern.c,v 1.1 1996/12/05 06:04:40 millert Exp $ + * $Id: ostern.c,v 1.5 2004/12/10 15:31:01 mickey Exp $ */ #ifndef lint -static char rcsid[] = "$OpenBSD: ostern.c,v 1.1 1996/12/05 06:04:40 millert Exp $"; +static const char rcsid[] = "$OpenBSD: ostern.c,v 1.5 2004/12/10 15:31:01 mickey Exp $"; #endif /* not lint */ #include -#include -#include #include +#include #include "calendar.h" @@ -66,65 +65,16 @@ e_p = (e_h + e_l + 114 - (7 * e_m)) % 31; e_p = e_p + 1; - e_q = 31 + 28; + e_q = 31 + 28 + e_p; + if (isleap(year)) + e_q++; - if (e_k == 0 && e_c != 0) - e_q += 1; - if (e_n == 4) e_q += 31; - e_q += e_p; - #if DEBUG printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", 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); #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); }