--- docs/hmrc.4~ Fri Nov 30 14:47:17 2001 +++ docs/hmrc.4 Fri Feb 1 14:35:14 2002 @@ -1,4 +1,4 @@ -.TH hmrc 4 "October 27, 1999" +.TH hmrc 4 "February 01, 2002" .SH NAME hmrc \- Hypermail configuration file .SH DESCRIPTION @@ -601,6 +601,7 @@ .LP .nf %A - Author META TAG - Not valid on index pages + %D - Date META TAG - Not valid on index pages %S - Subject META TAG .nr .TP --- src/date.c~ Sat Mar 31 18:25:14 2001 +++ src/date.c Fri Feb 1 12:46:03 2002 @@ -192,6 +192,23 @@ return s; } +char *secs_to_iso_meta(time_t t) +{ + /* is passed time_t variable + * holding number of seconds since EPOCH + * returns pointer to string holding date in format + * YYYY-MM-DD + * This buffer will be overwritten by next call to secs_to_iso_meta. + */ + static char s[10]; + struct tm *tm; + + tm = localtime(&t); + sprintf(s, "%4.4d-%02.2d-%02.2d", + tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); + return s; +} + time_t iso_to_secs(char *isodate) { /* is passed string holding date in format --- src/print.c~ Fri Dec 14 13:57:14 2001 +++ src/print.c Fri Feb 1 12:52:31 2002 @@ -1263,7 +1263,7 @@ print_msg_header(fp, set_label, email->subject, set_dir, email->name, email->emailaddr, email->msgid, - email->charset, filename); + email->charset, email->date, filename); printcomment(fp, "received", email->fromdatestr); printcomment(fp, "isoreceived", secs_to_iso(email->fromdate)); --- src/printfile.c~ Sun Dec 2 17:16:21 2001 +++ src/printfile.c Fri Feb 1 14:59:38 2002 @@ -28,6 +28,7 @@ ** %u - Expanded version link (HMURL,PROGNAME,VERSION) ** %S - Subject META TAG - Not valid on index pages ** %A - Author META TAG - Not valid on index pages +** %D - Date META TAG - Not valid on index pages ** \n - newline character ** \t - tab character ** @@ -35,7 +36,7 @@ int printfile(FILE *fp, char *format, char *label, char *subject, char *dir, char *name, char *email, char *message_id, - char *charset, char *filename) + char *charset, char *date, char *filename) { register char *cp; register char *aptr; @@ -99,6 +100,13 @@ } continue; + case 'D': /* %D - date of message */ + if (date) { + fprintf(fp, + "", + date); + } + continue; case 'e': /* %e - email address of message author */ if (email) { for (cp = email; *cp; cp++) @@ -176,7 +184,7 @@ void print_main_header(FILE *fp, bool index_header, char *label, char *name, char *email, char *subject, char *charset, - char *filename) + char *date, char *filename) { char *title; char *rp; @@ -215,6 +223,7 @@ fprintf(fp, "\n",name,email); fprintf(fp, "\n", rp = convchars(subject)); + fprintf(fp, "\n",date); free(rp); if (use_mailto) fprintf(fp, "\n", set_mailto); @@ -249,15 +258,15 @@ void print_msg_header(FILE *fp, char *label, char *subject, char *dir, char *name, char *email, char *msgid, - char *charset, char *filename) + char *charset, time_t date, char *filename) { char *ptr; if (mhtmlheaderfile) printfile(fp, mhtmlheaderfile, set_label, subject, set_dir, name, - email, msgid, charset, filename); + email, msgid, charset, secs_to_iso_meta(date), filename); else { print_main_header(fp, FALSE, set_label, name, email, subject, - charset, filename); + charset, secs_to_iso_meta(date), filename); #if 0 /* JK modified this */ fprintf(fp, "

%s

\n", ptr = convchars(subject)); @@ -282,9 +291,9 @@ { if (ihtmlheaderfile) printfile(fp, ihtmlheaderfile, label, subject, dir, NULL, NULL, - NULL, NULL, filename); + NULL, NULL, NULL, filename); else { - print_main_header(fp, TRUE, label, NULL, NULL, subject, NULL, NULL); + print_main_header(fp, TRUE, label, NULL, NULL, subject, NULL, NULL, NULL); fprintf(fp, "

%s
%s

\n", label, subject); #if 0 /*@@ JK: removed it */ if (!set_usetable) @@ -304,7 +313,7 @@ if (htmlfooter) printfile(fp, htmlfooter, label, subject, - dir, NULL, NULL, NULL, NULL, filename); + dir, NULL, NULL, NULL, NULL, NULL, filename); else { if (set_showhr && !set_usetable) fprintf(fp, "
\n"); --- src/printfile.h~ Sun May 28 12:43:28 2000 +++ src/printfile.h Fri Feb 1 14:01:02 2002 @@ -3,13 +3,13 @@ */ int printfile(FILE *, char *, char *, char *, char *, char *, char *, - char *, char *, char *); + char *, char *, char *, char *); void print_main_header(FILE *, bool, char *, char *, char *, char *, char *, - char *); + char *, char *); void print_msg_header(FILE *, char *, char *, char *, char *, char *, - char *, char *, char *); + char *, char *, time_t, char *); void print_index_header(FILE *, char *, char *, char *, char *); --- src/proto.h~ Fri Nov 23 18:48:01 2001 +++ src/proto.h Fri Feb 1 13:01:10 2002 @@ -13,6 +13,7 @@ void getthisyear(void); char *getdatestr(time_t); char *secs_to_iso(time_t); +char *secs_to_iso_meta(time_t); time_t iso_to_secs(char *); int year_of_datenum(time_t); int month_of_datenum(time_t);