*** smtpserv.c.2.old    Mon Sep 13 23:48:04 1999
--- smtpserv.c  Sat Jan  1 14:24:43 2000
***************
*** 1498,1504 ****
                 Days[ltm->tm_wday],
                 ltm->tm_mday,
                 Months[ltm->tm_mon],
!                ltm->tm_year,
                 ltm->tm_hour,
                 ltm->tm_min,
                 ltm->tm_sec,
--- 1498,1504 ----
                 Days[ltm->tm_wday],
                 ltm->tm_mday,
                 Months[ltm->tm_mon],
!                (ltm->tm_year % 100),
                 ltm->tm_hour,
                 ltm->tm_min,
                 ltm->tm_sec,
*** dirutil.c.old       Sun Sep 14 14:37:46 1997
--- dirutil.c   Tue Jan 25 17:39:52 2000
***************
*** 524,533 ****
                        commas (cbuf);
                        sprintf (line_buf + strlen (line_buf), "%9s ", cbuf);
                }
                sprintf (line_buf + strlen (line_buf), "%2d:%02d %2d/%02d/%02d%s",
                         sbuf->ff_ftime.tm_hour, sbuf->ff_ftime.tm_min,
                         sbuf->ff_ftime.tm_mon + 1, sbuf->ff_ftime.tm_mday,
!                        sbuf->ff_ftime.tm_year,
                         (full == 2) ? " | \n" : (n & 1) ? "   " : "\n");
                fputs (line_buf, file);
        } else if (full == 2) {
--- 524,534 ----
                        commas (cbuf);
                        sprintf (line_buf + strlen (line_buf), "%9s ", cbuf);
                }
+               /* Y2K Update by James Fuller N7VMR */
                sprintf (line_buf + strlen (line_buf), "%2d:%02d %2d/%02d/%02d%s",
                         sbuf->ff_ftime.tm_hour, sbuf->ff_ftime.tm_min,
                         sbuf->ff_ftime.tm_mon + 1, sbuf->ff_ftime.tm_mday,
!                        (sbuf->ff_ftime.tm_year % 100),
                         (full == 2) ? " | \n" : (n & 1) ? "   " : "\n");
                fputs (line_buf, file);
        } else if (full == 2) {
*** forward.c.old       Sun Sep 14 14:37:46 1997
--- forward.c   Thu Jan 27 18:07:09 2000
***************
*** 1728,1734 ****
                now = time ((time_t *) 0);
                now += (((long) m->fwdbbs->clockoffset) * 3600L);
                t = localtime (&now);
!               usprintf (m->user, "C %02d%02d%02d %02d%02d\n", t->tm_year,
                          t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min);
                usflush (m->user);
                for (;;) {
--- 1728,1734 ----
                now = time ((time_t *) 0);
                now += (((long) m->fwdbbs->clockoffset) * 3600L);
                t = localtime (&now);
!               usprintf (m->user, "C %02d%02d%02d %02d%02d\n", (t->tm_year % 100),
                          t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min);
                usflush (m->user);
                for (;;) {
*** bid_wp.c.old        Sun Sep  7 21:18:28 1997
--- bid_wp.c    Thu Jan 27 18:01:15 2000
***************
*** 897,903 ****
                                *cp = 0;
                }
                fprintf (fp, "On %02d%02d%02d %s/%c @ %s zip ? %s ?\n",
!                        t->tm_year, t->tm_mon + 1, t->tm_mday, call, which,
                         bbshier, (who && *who) ? who : "?");
                if (who)
                        free (who);
--- 897,903 ----
                                *cp = 0;
                }
                fprintf (fp, "On %02d%02d%02d %s/%c @ %s zip ? %s ?\n",
!                        (t->tm_year % 100), t->tm_mon + 1, t->tm_mday, call, which,
                         bbshier, (who && *who) ? who : "?");
                if (who)
                        free (who);
*** expire.c.old        Sun Sep  7 21:18:28 1997
--- expire.c    Tue Feb  1 00:45:13 2000
***************
*** 50,56 ****
  extern void updateCtl (const char *who, struct let * info);
  extern int expired;
  
! 
  static time_t j_mktime (struct tm *);
  
  /* If you're using BC++ 2.0 or higher, you don't need this,
--- 50,56 ----
  extern void updateCtl (const char *who, struct let * info);
  extern int expired;
  
! #if 0
  static time_t j_mktime (struct tm *);
  
  /* If you're using BC++ 2.0 or higher, you don't need this,
***************
*** 91,97 ****
        return (days * 86400L + t->tm_hour * 3600L + t->tm_min * 60L - 19 * 3600L);
  #endif
  }
! 
  
  
  #if (defined(EXPIRY) || defined(DELEGATE))
--- 91,97 ----
        return (days * 86400L + t->tm_hour * 3600L + t->tm_min * 60L - 19 * 3600L);
  #endif
  }
! #endif
  
  
  #if (defined(EXPIRY) || defined(DELEGATE))
***************
*** 304,318 ****
                                                ++cp;
                                        ++cp;
                                        t.tm_year = atoi (cp);
!                                       if (t.tm_year > 99)
!                                               t.tm_year %= 100;
! 
                                        while (*cp != ' ')
                                                ++cp;
                                        ++cp;
                                        t.tm_hour = atoi (cp);
                                        t.tm_min = atoi (cp + 3);
                                        t.tm_sec = atoi (cp + 6);
  
  #else
                                        t.tm_year = atoi (cp + 4);
--- 304,324 ----
                                                ++cp;
                                        ++cp;
                                        t.tm_year = atoi (cp);
!                                       if (t.tm_year > 1900)  /* 4 digit year */
!                                               t.tm_year -= 1900;
!                                       else {
!                                       /* Message has two digit year */
!                                               if (t.tm_year < 70)
!                                                       t.tm_year += 100;
!                                       }
!                                  
                                        while (*cp != ' ')
                                                ++cp;
                                        ++cp;
                                        t.tm_hour = atoi (cp);
                                        t.tm_min = atoi (cp + 3);
                                        t.tm_sec = atoi (cp + 6);
+                                       t.tm_isdst = 0;
  
  #else
                                        t.tm_year = atoi (cp + 4);
***************
*** 320,327 ****
                                        t.tm_min = atoi (cp + 10);
                                        t.tm_sec = atoi (cp + 13);
  #endif
!                                       if ((then = j_mktime (&t)) == (time_t) -1)
                                                break;  /* invalid, delete */
                                        /* Now check against age */
                                        if (now - then < (time_t) (age * 86400L))
                                                keep = 1;
--- 326,336 ----
                                        t.tm_min = atoi (cp + 10);
                                        t.tm_sec = atoi (cp + 13);
  #endif
!                                       if ((then = mktime (&t)) == (time_t) -1) {
!                                               /* For now, print a warning if there is a big problem ! */
!                                               tcmdprintf ("Invalid article date in expire\n");
                                                break;  /* invalid, delete */
+                                       }
                                        /* Now check against age */
                                        if (now - then < (time_t) (age * 86400L))
                                                keep = 1;
