Annotation of hypermess/hypermail/Changelog, revision 1.6
1.1 kahan 1: Version Changes for Hypermail
2: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.6 ! kahan 3: Martin Schulze <joey@infodrom.north.de> (October 27, 1999)
! 4:
! 5: - Some where the showheaders functionality was lost. It has been
! 6: partially added in. The 'hm_show_headers = list_of_RFC_Headers_to_display'
! 7: functionality did not work and has been corrected.
! 8:
! 9: - If the show_headers directive contains the special character ``*'',
! 10: hypermail will display all header lines.
! 11:
! 12: - Hypermail 2.x can now read hypermail 1.02 config files. Needed
! 13: to assure minimal impact of existing sites that use the older
! 14: version of hypermail.
! 15:
! 16: - hmrc.4 and hypermail.1 have been updated.
! 17:
! 18: Kent Landfield <kent@landfield.com> (October 27, 1999)
! 19:
! 20: - Edited documentation to the text more readable by using two spaces
! 21: after a fullstop.
! 22:
! 23: - Cleaned up prototypes so they are consistent through out the include files.
! 24:
! 25: - Found many locations where a local variable was shadowing a global
! 26: variable. Renamed certain variables to assure no compiler confusion.
! 27:
! 28: - Extended the warning switches in WARNINGS in the Makefile.in.
! 29:
! 30: Kent Landfield <kent@landfield.com> (October 23, 1999)
! 31:
! 32: - Added additional checks in configure for the operating system. Set -Ae for
! 33: HP-UX and added checks for functions in libsocket and libnsl. Added sanity
! 34: checks to assure you are on the same machine if you are using the existing
! 35: config.cache and added acconfig.h config.guess config.sub support files.
! 36: Additional cleanup to configure.in and a regenerated configure script.
! 37:
! 38: Scott Rose <srose@direct.ca> (October 20, 1999)
! 39:
! 40: - When a URL has trailing punctuation, it is almost certainly not part of
! 41: the URL. This version of parseurl() therefore excludes trailing
! 42: punctuation from URLs it finds.
! 43:
! 44: - If the content-description of a message was empty, and at the end of a
! 45: line, the link to the associated attachment was anchored on null text.
! 46: Fixed to assure the text is anchored on the filename in the generated HTML.
! 47:
! 48: Scott Rose <srose@direct.ca> (October 19, 1999)
! 49:
! 50: - Added contrib/canonicalize.pl
! 51:
! 52: Comparing two archives is complicated by the fact that each message is
! 53: marked by the time at which it's archived. Attached is a script that
! 54: standardizes that date, if weakly, useful for such comparisons.
! 55:
! 56: - Added contrib/hyperfeed.pl
! 57:
! 58: Feed messages from an mbox into hypermail one at a time so as
! 59: to test the incremental mode of hypermail.
! 60:
! 61: - The idea here is that we are zipping along through an mbox, gathering
! 62: information about a message, when we encounter a "From " line that signals
! 63: the start of the next message. A side effect is populating dp with the
! 64: date from that "From " line. In the existing code, that value is copied
! 65: into fromdate[] just before the old message is hashed, which causes it
! 66: to be associated with the previous message. This caused different output
! 67: depending on incremental or mbox updating. This patch corrects that
! 68: by moving the date copy until after the addhash function is called.
! 69:
! 70: Kent (October 18, 1999)
! 71:
! 72: - Updated parseurl fuction as done by Scott Rose <srose@direct.ca>
! 73: provided 25% faster processing than the existing version while
! 74: maintaining the same functionality.
! 75:
! 76: Kent (October 8, 1999)
! 77:
! 78: - Changed msg2archive.c to be able to use the command line
! 79:
! 80: - Made changes to runtest to assure msg2archive could be tested.
! 81:
! 82: - Added the indent file .indent.pro in archive, src and lib.
! 83:
! 84: - Ran indent on all sources in archive, src, and lib.
! 85:
! 86: - Made changes to configure.in to better support libsocket.a
! 87:
! 88: - Corrected configure.in check from gethostbyname to gethostbyaddr.
! 89:
! 90: - Added configure check for inet_addr
! 91:
! 92: - Added addition header checks and function checks in configure.in
! 93:
! 94: - Regenerated config.h.in with autoheader
! 95:
! 96: - Regenerated configure with autoconf
! 97:
! 98: - Updated the source files to use the HAVE_* definitions in config.h
! 99:
! 100: - Minor editing on the README
! 101:
! 102: - Minor updates to the TODO file and Changelog file.
! 103:
! 104: - Updated KNOWN_BUGS with the content of tests/Problems
! 105:
! 106: - Removed tests/Problems from the baseline as it was duplicating
! 107: KNOWN_BUGS
! 108:
! 109: - Removed src/Formatting from the baselien as it was a junk working
! 110: file of mine that should never have been baselined originally.
! 111:
! 112: - Added tests/mboxes/embedded.msg as a test file and updated
! 113: tests/testhm to exersize it.
! 114:
! 115: - Removed the listing for tests/Problems and src/Formatting, while
! 116: adding tests/mboxes/embedded.msg to the FILES file.
! 117:
! 118: - Added the corrected version of hypetombox.pl done by
! 119: Peter McCluskey (pcm@rahul.net) to the baseline.
! 120:
! 121: Jose (October 7, 1999)
! 122:
! 123: - Changed the HTML DTD string of the generated strings to HTML 4.0
! 124: Transitional.
! 125:
! 126: - Updated the doc to correspond to the suppression of the
! 127: options's hm_ prefix. Made the doc's HTML documents valid HTML 4.0 docs.
! 128:
1.5 kahan 129: Kent (September 20, 1999)
1.6 ! kahan 130:
1.5 kahan 131: - Cleanup of prototypes.
1.3 kahan 132:
1.5 kahan 133: - Removed the generated getdate.c from the baseline. (Generated
134: from getdate.y.
135:
136: - Purified and removed array bounds read problems.
137:
138: Daniel (September 17, 1999)
139: - Applied language patches from Jyrki Kuoppala <jkp@kaapeli.fi>
140:
141: - Applied Kent Landfields lots of changes. getname() is reverted to an older
142: version since the newer did out-of-bounds reads.
143:
144: - Paul Haldane's fix is applied.
145:
146: - Peter C. McCluskey <pcm@rahul.net> suggested fixreplyheader() correction
147: has beed applied.
148:
149: Daniel (September 13, 1999)
150:
151: - Kent Landfield found a bunch of weirdnesses that were corrected, in:
152: * threadprint.c/print_all_threads()
153: * print.c, makemailcommand() usage
154:
155:
156: Jose (September 8, 1999)
157: - (This is a big commit as I'm merging my independent developments into
158: the public hypermail tree, which I'll use from now on)
159: If there's a Content-Description header, we now use it to describe
160: MIME attachments (unless they are inlined).
161: Two new options (see the hmrc.4 or hmrc.html file for more info):
162: + hm_uselock to turn off hypermail's internal locking mechanism
163: + hm_usemeta to store the content type of a MIME attachment in a
164: metadata file (also available thru commandline option -M)
165: If the usemeta option is turned on, the Content-Type header of an
166: attachment is stored in a .meta directory (see hmrc.4 or hmrc.html for
167: more info).
168: Files where MIME attachments are now prefixed with a two-digit counter,
169: a la dd-name. This is to avoid having having to create temporary files,
170: and to preserver links. The counter is incremented for each attachment,
171: regardless of it's being inline or not. I disabled the call to emptydir
172: as it's not useful (will add it as an option later on).
173: External MIME attachments that don't have a filename, are given the name
174: dd-part.
175: Improved handling of MIME rfc822 attachments.
176: Improved handling of Content-Disposition
177:
1.4 kahan 178: Ashley (September 7, 1999)
179: - Added configure options for --httpddir, --cgidir and --htmldir with
180: Apache's layout as the default (/usr/local/apache)
181:
182: Daniel (August 23, 1999)
183: - Removed the 40-letter limit for subjects in the thread-index when
184: the table option was enabled.
185:
186: jose.kahan@w3.org
187: - When the boundary is declared without quotes, parse.c failed to get it
188: properly.
189:
190: - print.c: There was a missing <PRE> and this resulted in a not-readable text
191:
1.3 kahan 192: Daniel (August 10, 1999)
193: - I hade a terrible bug that made the attachment directories to get created
1.4 kahan 194: relative the wrong directory! They were also not getting the proper
195: permissions set.
1.3 kahan 196:
197: Tim Witham <twitham@pcocd2.intel.com> (August 10, 1999)
198: - Had to fix a realloc() with NULL pointer which sunos doesn't handle.
199:
200: 2a24
201: ====
202: Daniel (August 9, 1999)
203: - I'm consider renaming the series of archives that I'm releasing, back to
204: the beta label. It would be more correct. Kent is with us again and I
205: don't think anyone is gonna continue on the now forever sleeping
206: beta-series. This seems to be the one and only hypermail development
207: branch and I believe we now have it stable enough.
208:
209: - 'attachmentlink' is a new config file item that controls how attachments'
210: links are made. By using this you can make a wrapper cgi script on your
211: server that issues a warning to the user that it may be dangerous to run
212: attachments or whatever you think is appropriate. Default it behavs as it
213: used to do before this feature was added.
214:
215: Daniel (August 8, 1999)
216: - Applied Jose Kahan <Jose.Kahan@inrialpes.fr>'s patches:
217:
218: The alternate content parsing was broken in that you couldn't give a list
219: of preferences. Also, if you first parse an alternate with a low priority,
220: then another one with a higher priority, the memory and, eventually, files
221: created to store the former alternate content weren't erased.
222:
223: I found a minor bug. When decoding messages with multiple MIME
224: attachments, the decode variable (where the content encoding format is
225: stored), isn't updated.
226:
227: Daniel (August 6, 1999)
228: - Fixed the subject overflow
229:
230: - Made attachments get saved in their own subdirectories.
231:
1.2 kahan 232: 2a23
233: ====
234: Daniel
235: - I'm making a release out of this now since I'm off for a longish
236: vacation next week...
237:
1.1 kahan 238: Paul
239:
240: - Applied Tom van Alten's patch to correct improper formatting
241: of messages when hm_showhtml = 0 and showheaders = 1.
242:
243: - New code to (optionally) accept messages wth no msgid. Default
244: is to require msgids in all messages - use hm_require_msgids = 0
245: to avoid this check.
246:
247: - Made handling of duplicate msgids optional. By default duplicates
248: are discarded. To accept them (replacing the msgid with a generated
249: msgid) use hm_discard_dup_msgids = 0.
250:
251: - Check return value from addhash when reading old messages. Messages
252: already archived should be valid but safer to check.
253:
254: 2a22
255: ====
256: Daniel
257: - Applied a boundary parsing bug correcting patch supplied by
258: Andreas Fuchs <asf@ycom.at>
259:
260: Paul Haldane
261: o (May 16th 1999)
262: 1) changes to the way we construct threadlist (so that all the messages
263: that should be in the thread are included even if they don't have valid
264: in-reply-to headers)
265:
266: 2) changes to threadprint.c - simplification of print_all_threads. Now
267: uses the information in threadlist to find the relationship between
268: messages. This speeds things up a bit when adding single messages to
269: large archives (I saw a reduction from 28s to 18s for adding a message to
270: a 1,100 message archive). Slight speed-up when converting large archives
271: - not as noticeable as a large part of time now seems to be in fopen().
272:
273: I've updated/added some comments.
274:
275: I've added msgnum to the reply struct - this is just a copy of msgnum in
276: ->data->msgnum - this was intended as an optimisation but I suspect it
277: doesn't make much difference.
278:
279: Threading is now much better (well, I would say that wouldn't I :->). it
280: still gets things wrong occasionally - often not really its fault. Known
281: problems include
282:
283: 1) duplicate message-ids - results in messages being attached to the wrong
284: thread - actually found an instance of this in my test mailbox. The
285: obvious heuristic to avoid this would be to compare the subject as well,
286: though this breaks threads where the sender has deliberately changed the
287: subject but intends to continue the thread.
288:
289: 2) occasionally gets messages in the wrong order because they get attached
290: to different sub-threads - wouldn't happen if MUAs used in-reply-to.
291:
292: I've done a quick tweak to duplicate msgid handling in addhash. Now
293: replaces duplicate msgids with a locally constructed one. This keeps
294: things happier.
295:
296:
297: 2a21
298: ====
299: Daniel
300: o (May 12th)
301: - Added the tests/stdintest.pl script. It is a small perl hack that passes
302: a series of generated mails into hypermail on stdin. One by one. I've
303: got reports about bugs in that area, but I can't seem to repeat any
304: with this tool. I thought I'd better include this here anyway to better
305: enable others to run more torture tests on hypermail.
306:
307: Paul Haldane
308:
309: o (May 6th)
310: - Here's a patch that allows the user to decide on the format used to
311: present dates on the generated pages. If dateformat is set then it uses
312: that (that's the new functionality) otherwise it uses the standard
313: format or euro format depending on the config file.
314:
315: I've not given the option to use the date string as originally given in
316: the mail message. This could be done without too much hassle.
317:
318: Daniel
319:
320: o (May 5th)
321: - Corrected a crash in parse.c
322:
323: - Added a missing "From:" in print.c
324:
325: - Made the bin-names get prefixed with "att-" too.
326:
327: - Adjusted getname() to skip all starting white spaces and quotes, and
328: to skip trailing quotes as well as white spaces.
329:
330: o (May 4th)
331: - Attachment names could miss the first letter.
332:
333: 2a20
334: ====
335: Daniel
336:
337: o (May 3 1999)
338: - Implementing my new From:-parser into the new source file: getname.c.
339: This should hopefully not only be much better at parsing from lines,
340: but also to it in a more stable manner.
341:
342: - Found some additional problems with From-lines I've tried to correct.
343: Like a single-mail archive or mails with no From:-lines at all.
344:
345: Ron Brogden <rb@islandnet.com>
346:
347: o A small correction to hypermail.c lets it compile properly on sunos 4.
348:
349: 2a19
350: ====
351:
352: Daniel
353:
354: o Now I prefix filenames with "att-" when I save attachments.
355:
356: o Several errors correct, most of them by Paul Haldane.
357:
358: 2a18
359: ====
360:
361: Daniel
362:
363: o (Apr 7 1999)
364: - Added 'locktime' as a configurable item. It defines the maximum number
365: of seconds to wait for an existing lock to dissapear before it is
366: overridden. If this is 0 or less, the lockfile will lose its power
367: completely. locktime is 3600 by default.
368:
369: - I made the 'indextable' option work as Glen Steward wanted it to (that
370: March 30 patch apply wasn't such a big hit). You can either set
371: "indextable = on" in the config file or use the -T command line option
372: to get the indexes in "table" version.
373:
374: Paul Haldane
375:
376: o (Apr 7 1999)
377: - Major date-parsing re-arrangement. getdate.c added, lots of functions
378: patched. Speed improvements.
379:
380: 2a17
381: ====
382:
383: Daniel
384:
385: o (Mar 30, 1999)
386: - First atttempt at applying Glen Steward's table patches. It wasn't
387: a complete success but it can be adjusted from here.
388:
389: o (Mar 29, 1999)
390: - Ashley M. Kirchner found a silly bug that occured if the last mail
391: in the box was a double message-id (or similar that makes that
392: particular function return NULL).
393:
394: o (Mar 25, 1999)
395: - Threaded index seems to work yet again!
396: - Paul Haldane <Paul.Haldane@newcastle.ac.uk> brought me lots of
397: various patches that made hypermail do better!
398:
399: o (Mar 25, 1999)
400: - Corrected the problem with "re: subject" and "subject" being sorted
401: differently. The explanation was that the "re:" subject had a space
402: left in the beginning of the string!
403:
404: o (Mar 25, 1999)
405: My giant work of redoing things now finally seems to work a little at
406: least. What's been done the last week:
407: - All emails now get only ONE single struct allocated for it.
408: - Remade the hash stuff. Hashed entries in the table only stores a struct,
409: links it in the list and POINTS to the email struct.
410: - Added a hash on the 'inreplyto' string to better enable finding mails
411: a mail replies to.
412: - Rewrote the whole darned threaded index functions. threadprint.c is a
413: new source file for threaded index functions.
414: - All indexes will now have full access to the complete email struct and
415: will thus enable dates all over etc. This will enable me to introduce
416: a template feature for how to write an entry in an index. I.e what to
417: include for each entry, subject, author, date, charset, bla bla bla...
418: - Changed the way single mail's "next in thread" links are found.
419: - As a "side-effect" I added a filter to prevent the same message ID
420: twice. The reason for this is that it is more likely for it to be able
421: to screw up the threading if I allow them to co-exist.
422:
423: o Ashley M. Kirchner <ashley@pcraft.com> works on the bug report web.
424:
425: o (Mar 15, 1999)
426: Roman Shterenzon <roman@xpert.com> pointed out a bug in the HTML-reader
427: that made hypermail crash if the variables were set to "". I mailed back
428: a patch to him I think will correct this problem.
429:
430: 2a16
431: ====
432: Daniel
433:
434: o (Mar 14, 1999)
435: "text_types" is now a recognized config file item, where you can specify
436: MIME types that should be treated by hypermail _exactly_ as if they were
437: text/plain.
438:
439: o Corrected the list-check routine, so that the items in the list are the
440: ones using wildcards. This means that suddenly, all those mime-list items
441: support wildcards!
442:
443: o (Mar 13, 1999)
444: Craig A Summerhill <craig@cni.org> found a bug. It turned out to be the
445: fact that parse.c wronly assumed content-type text/plain to use
446: ENCODE_NORMAL. It was really silly, since the Content-Transfer-Encoding
447: header could've already appeared and stated another encoding!
448:
449: o Adjusted configure.in to do a slightly better -libnsl check.
450:
451: o (Mar 11, 1999)
452: CVS server is up again. Added the UPGRADE file to the tree. Thanks to
453: Glen Stewart.
454:
455: o (Mar 10, 1999)
456: Pretty extensive re-write of parse.c to deal with the
457: "Content-Disposition" headers better. That line can give a hint whether
458: the file should be stored as a file or showed inlined. It can also
459: have the filename (RFC1806 for details).
460:
461: o (Mar 10, 1999)
462: The CVS server is down due to admin work there.
463:
464: o (Mar 10, 1999)
465: Fixed parseurl(). It now deals with <www.foobar.com> and similar
466: constructions better. Craig A Summerhill <craig@cni.org> reported.
467:
468: o (Mar 8, 1999)
469: Corrected src/Makefile.in to not use options.h anymore!
470: Roman Shterenzon <roman@xpert.com> made me aware of this.
471:
472: 2a15
473: ====
474: Daniel
475:
476: o (Mar 5, 1999) Made "text" equal text/plain in content-type: header
477: lines.
478:
479: o Removed options.h completely to reduce the number of mistakes from
480: people trying to edit it!
481:
482: o (Mar 4, 1999) Applied Glen Stewart's patch to remove a few <li> tags.
483:
484: o Bailey, Raymond <bailey9@MARSHALL.EDU> pointed out a problem in the
485: getname() function. When you got a mail with a From: line where there
486: is a name within quotes that were "attached" to the email part without
487: spaces in between as in "name"<email@email.com> the parser failed to
488: get a name part of this and caused hypermail to dump core.
489:
490: o Alisdair Davey <ard@mithra.physics.montana.edu> Helped me point out
491: a bug in mprintf.c. It made the *printf() routines fail on %.*s
492: constructions. I am considering an upgrade of the mprintf stuff to
493: my newer "trio" stuff...
494:
495: o Made %f insert the file name of the generated HTML file in headers
496: and footers.
497:
498: 2a14 Pl 2
499: =========
500: Daniel
501:
502: o Removed a bug that occured when converting a mail into html that had
503: a "in-relpy-to" header but the replied-to mail was not present in the
504: mailbox.
505:
506: 2a14 Pl 1
507: =========
508: Daniel (now CVS'ed at cvs.hypermail.yeehaw.net:/cvs/hypermail)
509:
510: o Made it de-mime headers even without the mime-version: header present
511:
512:
513: 2alpha14
514: ========
515: Daniel
516:
517: o It should now accept white space in the beginning of config file
518: lines.
519:
520: o SetupCleanup() bugs somehow, I'm no longer using it == dirty fix.
521:
522: o Updated the "name/email" scanner.
523:
524: o Total mail counter was wrong when updating.
525:
526: o Renamed to alpha to avoid confusion.
527:
528: 2b13
529: ====
530: Daniel
531:
532: o Two corrections in the mprintf.c. One of them being serious
533:
534: o (parse.c) now the QP decoder accepts question marks in the encoded-words
535:
536: o Corrected the mprintf() replacement define in mprintf.h
537:
538: o Added some more missing free()s in print.c
539:
540: 2b12
541: ====
542:
543: Daniel
544:
545: o Now strips trailing white spaces from values in the config file if
546: written without quotes. Paradise Cowgirl <minerva@phix.com> reported.
547:
548: o List types in the config were insanely written and caused memory
549: disaster at times. Byron C. Darrah <bdarr@sse.FU.HAC.COM> and
550: Jenni Baier <jenni@renewed.net> both probably experienced this.
551:
552: o Decreased the amount of memory allocations used when building hash
553: tables for index sorting. (see addhash() in struct.c)
554:
555: 2b11
556: ====
557:
558: Daniel
559:
560: o Tom von Alten <alien@hpdmlad.boi.hp.com> pointed out a really nasty bug
561: in fixreplyheader() I had introduced! :-(
562:
563: 2.0b10
564: ======
565:
566: Daniel
567:
568: o %c is recognized and replaced with a charset tag in mail headers. It
569: should be set as early as possible within the HEAD tag.
570:
571: o Saves <!-- charset=blablabla --> in articles.
572:
573: o dprintf() was not a successful name, Linux uses it for some odd purpose
574: even in stdio.h! :-/ Renamed my line of functions to m*.
575:
576: o Adjusted getname() to be slightly smarter.
577:
578: o Started working at adding charset to each single mail. It should be stored
579: per-mail basis now, even though it is never used anywhere... It should
580: now make a proper META HTTP-EQUIV tag!
581:
582: 2.0b9
583: =====
584:
585: Daniel
586:
587: o Added a new -o option that can set any config options on the command line.
588: E.g set label with -o "label=my new label".
589:
590: o Major rewrites of struct.c. There were just too many functions that
591: passed data between them by strcpy()ing them to char buffers. They now
592: pass char pointers in a lot higher degree. In fact, there aren't that
593: many strcpy()s left in the source now. Not that I notice any faster
594: operations, I just know it is neater code.
595:
596: o I really don't like the way proto.h has *ALL* prototypes and therefore
597: everything is dependent on that file. I've stared to slowly extract the
598: protos for each .c file into its own .h file. This will allow me to
599: change prototype for a single function without having to recompile the
600: whole lot.
601:
602: o Added general "Re:" - awareness functions. isre() returns TRUE if the
603: input string starts with a re-thing and findre() returns the position
604: of the first instance of re in the input string, or NULL if there is
605: none.
606:
607: It knows and recognizes "Re:", "Fw:" and "Re[<number>]:" strings. If we
608: ever intend to support local variations of this, I've now made that
609: easier...
610:
611: o The new getname() had problems with parens in the real name part when
612: quoted. As in
613: From: "Windle, Alan M. (PA62)" <test@site.com>
614: It shouldn't be a problem now. It should also work with from-lines like:
615: From: ("Windle, Alan M. (PA62)") test@site.com
616:
617: There might be an idea to simply ignore everything within that level of
618: parentheses. I mean, not add that text to the name.
619:
620: o The sorted datelist was broken because I must've destroyed unre() when I
621: turned it dynamic. I improved printsubjects() to deal with pointers and
622: it now strcpy()s a lot less data.
623:
624: Did the same change to the printauthors() too.
625:
626: o increment and readone are now separate options. Read stdin or use mailbox
627: are mutually exclusive but don't modify increment or readone. The
628: previous system was very confusing and didn't allow e.g updating an
629: archive with two mails passed on stdin!
630:
631: I've now tried to update an existing archive with 3 mails passed on stdin
632: and it seemed to work. Works if read from a mailbox too. Even works with
633: the new -1 flag (to indicate there's one mail only). It has an
634: accompanying config file keyword named 'readone'. I think the new -v flag
635: is really great for this, cause it shows all built-in variables and kind
636: of automatically documents them!
637:
638: o Ok, I wasn't aware the config file did assume quotes around the strings.
639: I've added support for that (too) now. Distributed this small change
640: to Kent, Tom and John as a patch for 2b8.
641:
642: 2.0b8
643: =====
644:
645: Daniel
646:
647: (Nov 24, 1998)
648: o So, just before I was gonna announce the b7 to the guys I got another
649: report from John Petrakis that pointed out two bugs. One bad free() which
650: he identified and one From:-line that b7 couldn't get name and email from
651: properly. I got really tired and rewrote the whole getname() function to
652: work with all the combinations mentioned in the source, and more. I think
653: this function also has another benefit: it is easier to read than the old
654: one.
655:
656: o I found some other bugs with my new setup system which caused the
657: hm_htmlbody = NONE to not work. I am actually against that a line that
658: says NONE sets it to the default. NONE should be NONE, if the keyword
659: isn't used at all it should use the default. Well well, one thing at a
660: time I guess.
661:
662:
663: 2.0b7
664: =====
665:
666: Daniel (getting deeper and deeper into this now ;-)
667:
668: o Entirely new config file parser. Does make adding new config items a
669: lot easier and smoother. Run hypermail -v to make it output a fully
670: working config file (after reading the given input parameters).
671:
672: There is no need for the "hm_" prefix on keywords in the config file. You
673: can still use it if you want, but you don't have to.
674:
675: Internally, all configurable variables are now named 'set_XXXXX' to better
676: make it visible in the code.
677:
678: o readoldheaders() is a lot more robust now. The order of the variables are
679: not set and empty files no longer cause it to dump core.
680:
681: o Hypermail from now on only stores the variables inside HTML files that
682: are actually set. name="" is not needed to store.
683:
684: 2.0b6
685: =====
686:
687: Daniel continues:
688:
689: o parseemail() and ConvURLs() needed to deal with NULLs better.
690:
691: o loadoldheaders() are no longer dependent on the order of the variables
692: in previously written HTML files.
693:
694: o Mails with no subject confused the parser.c
695:
696: o Tom von Alten <Tom_vonAlten@boi.hp.com> sent me two files he appearantly
697: got from Kent after the b4 he sent me. (date.c and msg2archive.c)
698:
699: o All kinds of lists like hm_show_headers, hm_inline_types and
700: hm_ignore_types now offer the below mentioned wildcards.
701:
702: o Added dmatch.c for dos-style * and ? wildcard matching.
703:
704: o Cleaning up more memory leaks.
705:
706: 2.0b5 as sent to John Petrakis 19 Nov 1998
707: ==========================================
708:
709: Daniel:
710:
711: o Added 'maketgz' to the archive. It is for creating release archives,
712: without having to remove a lot of files first.
713: * first asks for the version number of choice
714: * uses the file FILES to know what files to include.
715: * updates the patchlevel.h file to the entered version number
716: * creates the archive with a directory based on the entered version number
717: * names the archive based on the entered version number
718:
719: o Added a whole bunch of more free() calls.
720:
721: o Inlined HTML that was base64 or uuencoded were not previously dealt with
722: properly.
723:
724: o Mails with no Message-Id: caused a crash in the hash function.
725:
726: o HM_INLINEHTML can now be set to 0 to prevent hypermail from inlining
727: mail parts in HTML.
728:
729: 2.0b4 as sent to Tom von Alten Nov 19, 1998.
730: ============================================
731:
732: Daniel:
733:
734: o Dynamic strings all over. I added a generic dynamic-string system which
735: I think works pretty good. Using functions and macros it should also be
736: pretty easy to extend, modify and optimize without any other source
737: modifications.
738:
739: I had to modify stuff all over the place and pretty much too. I hope I've
740: removed at least the worst uses of static buffers and my initial tests
741: prove me right. No lenght limits of any fields of a mail is my goal, and
742: I think it is a fair goal.
743:
744: Beware of leaking memory now though. We need to setup some debug-system
745: to track them easily.
746:
747: The dynamic string routines could very well be optimized too.
748:
749: o My dsprintf system was added. This system offers snprintf() - sprintf with
750: a buffer length parameter and aprintf() - returns an allocated string with
751: the text. I did this to better deal with fully dynamic buffers.
752:
753: o Corrected the swedish texts. All 8bit letters were gone!
754:
755: o (Nov 16) I recevied the 981013-b4 version. Started work.
756:
757: 2.0b4
758: ====================
759:
760: Kent:
761:
762: o Date routine corrections.
763:
764: - Y2K capable. Hypermail used a two digit representation
765: for the year through out. It now uses a 4 digit representation.
766:
767: - In hypermail.h, October was listed in monthdays as only having
768: 30 days.
769:
770: - hypermail did not deal with all the major date string formats.
771: Date: formats starting with a digit (09 Sep 1998 01:27:30 +0300)
772: would cause parsing and threading problems. It now supports
773: that format.
774:
775: - Added code to deal correctly with two digit years.
776: The idea as to how to approach this and the basis for
777: the solution is thanks to Byron Darrah.
778:
779: - Corrected an off by one day error in getyearsecs(). It was
780: adding the current day && adding the hours, minutes, and seconds
781: for that day as well. It only needed to count all the days UP TO
782: the current day and then add the hours, minutes, and seconds for
783: the current day.
784:
785: - Incorrect data type passed to fprint_summary(), needed to be
786: long instead of int.
787:
788: - Corrected an off by one day in getdatestr(). Days in a month
789: start at 1, not 0.
790:
791:
792: o Add the ability to save hypermail generated html files with any
793: configurable html suffix such as ".htm", ".html" or ".shtml", etc.
794: This works for the index files as well as the message files. (New
795: .hmrc variable, hm_htmlsuffix, new environment variable HM_HTMLSUFFIX,
796: and HTMLSUFFIX define in options.h.)
797:
798: o Removed a conditional "if (use_mbox) increment = 0;" that was
799: preventing the ability to read one message from a file and update
800: an existing archive and its indexes.
801:
802: o Corrected parseurl to allow for a ',' (comma) character to be embedded
803: in the URL.
804:
805: o Corrected parseurl to allow for a '&' (ampersand) character to be embedded
806: in the URL.
807:
808: o Using -p with -iu on a new archive directory caused a core dump
809: begause 'bignum' was zero. Corrected to assure bignum > 0.
810:
811: o Added language abilities to hypermail.
812: English - en
813: Spanish - es
814: German - de
815: Swedish - se
816: initially supported. (lang.c and lang.h added.)
817:
818: Thanks to Francisco Iacobelli <fiacobelli@ibersis.cl> for the
819: "es" message table translation.
820:
821: Thanks to Martin Schulze <joey@kuolema.Infodrom.North.DE> for the
822: "de" message table translation.
823:
824: Thanks to Daniel Stenberg <Daniel.Stenberg@sth.frontec.se> for the
825: "se" message table translation.
826:
827: o Changed how error messages are displayed so options message
828: only displayed where appropriate instead of for every message.
829:
830: o Corrected getname() to parse yet another funky name format.
831:
832: o Corrected printing error when a invalid domain was encountered in
833: an email address.
834:
835: o Converted some static internal buffers to dynamically allocated ones
836: at startup saving 6+K. Also resulted in setstrval() not being needed
837: so it was removed.
838:
839: o Corrected MIME parsing problem with previously parsed headers.
840:
841: o Corrected default labeling problem with stdin generated archives
842: when no label is supplied.
843:
844: o Fixed hypermail so it would not crash if started with no arguments
845: and an article on stdin.
846:
847: o Added locking to the archive so that there is less chance of corruption
848: of the archive due to multiple copies of hypermail trying to update
849: the same archive at the same time with multiple messages. This could
850: be improved so as to check for pid of process that owns it...
851:
852: o Extended the configure support.
853:
854: o Extended the use of hm_progress so that more information about
855: attachment files can be displayed.
856:
857: o Updated documentation to reflect changes
858:
859: o Corrected getname to deal with names that are all spaces.
860:
861: o Corrected configuration variable setting. Moved checks to the
862: right place in the code.
863:
864: o Hypermail now supports listproc mailboxes as well as general Unix
865: formated mailboxes. It does not require that a blank line exists
866: between mail messsages in a mailbox. Thanks to Craig A Summerhill
867: <craig@cni.org> for the push and the test data.
868:
869: 2.0b3 - 8/15/98
870: =================
871:
872: o Added validation of domains so that the generation of mailto: is
873: much more accurate than the previous method.
874:
875: o Added support for Content-Disposition MIME Header so as to get the
876: filename from the header.
877:
878: o Added verification of filenames to assure they are safe to use and
879: will not cause filesystem problems
880:
881: o Fixed a problem with parsing the ending MIME boundary (it expended headers
882: following that)
883:
884: o Found and removed a one-byte buffer overflow in the line continuation code.
885:
886: o Corrected docs/hypermail.1 and TODO to reflect the proper RFC 822
887: parsing was actually included in version 2.0b1
888:
889: o Corrected a typo in string.c that prevented the proper generation
890: of mailto: links for email names with numbers [0-9] in them.
891:
892: o Corrected the base64 decoder error which caused files to get an
893: extra zero-byte appended at times. (When storing attachments to disk.)
894:
895: o Added additional ported systems to the README
896:
897: o Removed the "#ifndef" from the defines in options.h. We do not want to
898: inherit any define values from other places. If there are confilcts
899: then I need to correct them. Inheriting defines can lead to unforeseen
900: results.
901:
902: o attachments:
903: - comments are now generated in the output mail for each attachment
904: that is written in a separate file. The comment looks like:
905: '<!-- attachment="filename" -->' in the standard comment style.
906:
907: o buffers and overflows
908: - mdecodeRFC2047() now has an output buffer size argument
909: - had to remove the use of rmcr() at two places, since that function uses
910: a very strict static buffer limiting the maximum line length pretty bad.
911: - parseurl() now features an output buffer size argument
912: - parseemail() now features an output buffer size argument
913:
914: o multipart/alternative
915: - added awareness and parser "intelligence" to pick the last prefered
916: content-type within a series of alternatives (as MIME tells us to
917: do). This has not yet been very thoroughly tested.
918: - added the preferedcontent() function that returns wether a content-type
919: is prefered or not (as set with hm_prefered_types). Default prefered
920: type is 'text/plain' (if hm_prefered_types is unused).
921:
922: o output
923: - added the experiment function printhtml(). It strips off unwanted html
924: tags from the output, even if they are used in attached HTML files. I.e
925: <HTML> and </HTML>.
926: - made 'showheaders' not use <BR> or newlines since the BRs are ignored
927: anyway, and the newlines are already present in each header line.
928: - added 'hm_show_headers' which is a list of what headers to include when
929: the 'showheaders' option is used. For now, it also controls which
930: headers to show when attached mails are shown. Although I can imagine
931: that you'd like separate lists (since for attached mails, you'd like i.e
932: subject which you may not need for the main mail itself). If
933: 'hm_show_headers' isn't used, all headers will be shown.
934: - made the <PRE> system in the printbody() function a little smarter, and
935: now it prevents multiple </PRE> and <P> tags better. It did however
936: introduce another side effect (although a less serious one imho) and
937: that is an extra pair of <PRE></PRE> after the last attachment when
938: using 'showhtml'.
939:
940: o parsing
941: - made the multi-line merger function to make all lines get a regular
942: white space between them when they're put together. Previously, this
943: character was left as-is, which could be a space or a tab (or any other
944: isspace()) letter.
945: - check changed to check for "<!-- received" as the start of parsing
946: previous html files in the event that the archive maintainer whishes
947: to add comments in the header template HTML files.
948: - in_list() now checks for list items case insensitive
949: - corrected so Message-ID:, References and Supersedes: lines are not
950: converted into mailto: URLs.
951: - corrected off-by-one in isquote that was causing array boundary read
952: errors.
953: - corrected off-by-one in printbody line output that was causing array
954: boundary read errors.
955:
956: Real thanks are in order for Daniel Stenberg and David D. Kilzer. They helped
957: greatly with making this release possible by sending in enhancements, comments
958: and bug fixes. Thanks Guys!
959:
960: 2.0b2 - 6/07/98
961: =================
962:
963: o Corrected command line processing for individual messages received
964: on standard input.
965:
966: o Corrected formating of Next message links when incremental updating
967: is done.
968:
969: o Corrected the template filenames in docs/hmrc.html. Added "file"
970: to them.
971:
972: o Added additional systems to the list of ported systems.
973:
974: o Reset certain options back to the proper defaults.
975:
976: o Corrected problem in printbody in regards to printing HTML embedded
977: in a message. Still work to do here.
978:
979: o Changed address options to assure I didn't get landfield.com
980: information inadvertantly set in hundreds of archives because
981: the admins just took the defaults. ;)
982:
983: 2.0b1 6/05/98 - Kent Landfield
984: ===============================
985:
986: WARNING: There have been too many changes to this version to list them
987: all here. What appears below are some of the highlights.
988:
989: o Command line settings override what is in the config file. In the
990: past the command line variables were read and set before the config
991: file was read. (Needed to get the name of the config file from the
992: command line.) This made it hard to have a default list configuration
993: file and make single runs with only one variable changed. Now processing
994: sets the hypermail internal options by:
995:
996: Using Compiled in defaults specified in options.h,
997: then reads Hypermail Environment variables if set,
998: then looks for and reads any Configuration file specified
999: and finally uses the Command line settings specified by the user.
1000:
1001: NOTE: THIS IS DIFFERENT THAN PAST HYPERMAIL USAGE.
1002:
1003: o Configurable Setting (.hmrc file) or Compile Time Variable to
1004: Domain-ize Addresses -- addresses appearing in the RFC822 field
1005: which lack hostname can't be made into proper HREFs when Hypermail
1006: does it's thing. They are coded with: mailto:(no%20email)
1007:
1008: Because the MTA resides on the same host as the list, it is
1009: often not require to domain-ize these addresses for delivery.
1010: In such cases, I think it would nice if Hypermail could be
1011: programmed to output: mailto:kent@landfield.com instead.
1012: This would probably work well as a *required* definition
1013: during compilation; however, it should not simply rely on
1014: the output from `hostname` in case you want to override with
1015: an MX entry or alternate domain (if you run virtual domains)
1016:
1017: o Added capability to have customizable index html headers, message
1018: html headers and html footers. Able to use substitution cookies in
1019: the header and footer template files.
1020:
1021: Substitution cookies supported:
1022:
1023: %% - '%' character
1024: %~ - storage directory
1025: %e - email addr of message author - Not valid on index pages
1026: %h - HMURL
1027: %i - Message-id - Not valid on index pages
1028: %l - archive label
1029: %m - Mailto address
1030: %p - PROGNAME
1031: %s - Subject of message or Index Title
1032: %v - VERSION
1033: %u - Expanded version link (HMURL,PROGNAME,VERSION)
1034: \n - newline character
1035: \t - tab character
1036:
1037: Additional cookies generate the complete META lines:
1038:
1039: %A - Author META HTML - Not valid on index pages
1040: <META NAME="Author" CONTENT="name (email)">
1041: %B - <BODY> html statement
1042: %S - Subject META TAG - Not valid on index pages
1043: <META NAME="Subject" CONTENT="subject">
1044:
1045: o Generates META tags in articles Author and Subject.
1046:
1047: o Now uses "configure" to generate the makefiles. This is rather
1048: weak at present and needs to be added to/tested on other systems
1049: but at least it's a start.
1050:
1051: o The config.h was renamed to options.h to support configure usage.
1052:
1053: o patchlevel.h added to facilitate better patches in the future. Still
1054: need to fully integrate it's useage in version displays.
1055:
1056: o Added example .rc files to show how to customize list's and their
1057: looks.
1058:
1059: o Removed the _print.c files that had existed in the 103b2 release and
1060: replaced them with template headers/footer files.
1061:
1062: o Extended archive path creation to make missing directories.
1063:
1064: o Added capabilities dir pathing to allow archive creation by date
1065: variables.
1066:
1067: %d - two digit day of month (1-28/30/31)
1068: %D - three letter day of the week
1069: %m - two digit month of year (1-12)
1070: %M - three letter month of year (Jan, Feb, ..., Dec)
1071: %y - four digit year (1990,..2001)
1072:
1073: RC example: hm_dir = /some/archive/listname/%y/%M
1074: ENV example: HM_DIR=/some/archive/listname/%y/%M
1075: Command line example: -d /some/archive/listname/%y/%M
1076:
1077: Expands to: /some/archive/listname/1998/May
1078:
1079: All files would be archived during that run in that directory.
1080: Subsequent executions will put the messages in the directories
1081: according to the date the messages were received on the archive
1082: site.
1083:
1084: o All "mailto:" links can include the "subject" so that the Subject:
1085: line of netscape mailer is automatically filled in.
1086:
1087: o Fixed "Re:" and redundant "Re:" variation && MS FW...
1088:
1089: o Greatly enhanced getname() to correctly deal with most all email
1090: addresses. X.400 addresses are not well supported yet.
1091:
1092: o Corrected getreply() to better support the In-Reply-To: formats. The
1093: routine needs to revisited when a readline routine is inserted to
1094: properly deal with continuation lines.
1095:
1096: o Added additional documentation describing the Hypermail configuration
1097: file.
1098:
1099: o Added additional documentation describing how to customize HTML
1100: generated pages.
1101:
1102: o Corrected many petty problems such as:
1103: - recursive '%' substitution. A % in a subject line could cause
1104: an ugly recursion problem in a mail command expansion.
1105: - title length problem. Length of a title needs to be limited to
1106: less than 64 characters as indicated by HTML specs.
1107: - Weblinted the generated output and corrected various things.
1108: - Removed unused and unneeded variables
1109:
1110: o Change various storage length defines in hypermail.h
1111:
1112: Patches Contributed From: "Roy T. Fielding" <fielding@kiwi.ics.uci.edu>
1113: ------------------------------------------------------------------------
1114:
1115: o Fixed the umask default,
1116:
1117: o Fixed default directory and file creation modes,
1118:
1119: o Fixed the many date problems,
1120:
1121: o Corrected one of the Message-ID bugs,
1122:
1123: o Removed annoying #start/#end fragments that mess up the browser history.
1124:
1125: Patches Contributed By: Byron Darrah <bdarr@sed.hac.com>
1126: ----------------------------------------------------------
1127:
1128: o Added a menu bar for a header and footer on all pages and removed
1129: the bulleted list items that it replaces.
1130:
1131: o Reworked the general appearance of header and footer parts of html pages.
1132:
1133: o Added the "hm_hmail" configuration parameter and -n command line
1134: option for specifying an email address for input to a hypermail
1135: archive.
1136:
1137: o Added "New Message" and "Reply" buttons to the menu bar for submitting
1138: messages to a hypermail based list.
1139:
1140: Patches Contributed From: Jared Reisinger <feety@hhhh.org>
1141: ---------------------------------------------------------
1142:
1143: o Fixed configfile substring problem.
1144:
1145: o SHOWBR, IQUOTES, SHOWHR, EURODATE, SHOWREPLIES, and MAILCOMMAND
1146: now run-time configurable.
1147:
1148: o Fixed post leap-day error.
1149:
1150: o More robust Message-ID parsing.
1151:
1152: o Better SHOWHTML handling for indented lines.
1153:
1154: o Allow IQUOTES when not using SHOWHTML.
1155:
1156: Patches Contributed From: Daniel Stenberg <Daniel.Stenberg@sth.frontec.se>
1157: --------------------------------------------------------------------------
1158:
1159: o I had all calls to the decodeRFC2047() function moved to *after* the
1160: merging of long lines.
1161:
1162: o decodeRFC2047() now correctly concatenates two succeeding "encoded words".
1163: I now call the function mdecodeRfc2047() since it now allocates the new
1164: string.
1165:
1166: o Now informs if the attachment wasn't properly decoded when stored to disk.
1167: This happens if the Content-Transfer-Encoding specified isn't known to
1168: the parser. When this happens, the attachment is stored as 8bit octet-
1169: stream.
1170:
1171: o Now supports the encoding type 'x-uue' for uudecoding. I think there are
1172: mailers that use different names for the same encoding type so we better
1173: watch out for them in the future...
1174:
1175: o Added the 'demimed' field to the body struct to keep track of
1176: header lines+ that have been RFC2047 converted already.
1177:
1178: o Kent Landfield sent me an interesting mail that showed me several weird
1179: bugs in the MIME area.
1180: A. The Quoted-Printable decoder bugged. A quick fix solved that.
1181: B. The quoted printable decoder didn't support unlimited size of the line
1182: the encoded text decodes into. I wrote a new function that seems to do
1183: it properly.
1184: C. Some important headers were not properly supported if they were split
1185: up on several lines. I had to rewrite the header parsing system to make
1186: this work. It now scans all headers and concatenate them into single
1187: lines before any function is trying to parse or decode them.
1188: D. It also showed a need for a uudecoder for the 'x-uue' encode type. This
1189: is only noted for the future as I haven't written any decoder for this
1190: format [yet].
1191:
1192: o decodeRFC2047 replaces the former RFC1522 function. I made it support
1193: 'encoded-words' anywhere in the line and several different ones on the
1194: same line is now supported. The only flaw I'm still aware of now, is that
1195: if there are two encoded-words next to each other, the result should not
1196: show the spaces between them. My function unfortunately still does.
1197:
1198: o renamed decodeRFC1522 to decodeRFC2045.
1199:
1200: o decodeRFC1522 (quoted printable header decoding) didn't do well if the
1201: ending ?= sequence was in the middle of the line. I think this function
1202: will need more extensive testing.
1203:
1204: o Attached mails' headers (To:, From:, Date: and Subject:) are now shown
1205: in the html.
1206:
1207: o Attached mails that contains attachments did force me to add a stack system
1208: for the multipart boundary strings. Seems to work now. (Can't wait to see
1209: an attached mail that contains an attached mail that contains ... )
1210:
1211: o strcpymax() introduced to prevent buffer overflows on extra-long headers
1212:
1213: o Lines starting with 'from ' messed up the parser pretty badly. It now
1214: checks for 'From ' lines (case sensitive) with an empty preceding line
1215: to split mails.
1216:
1217: o Now extracts attachments to separate binary files.
1218:
1219: o Supports multiple lined headers.
1220:
1221: o Supports quoted-printable and base64 encoded headers.
1222:
1223: o Supports base64 encoded text/plain
1224:
1225: o Rewrote the URL and email parsing to allow multiple URLs and email
1226: addresses on each line.
1227:
1228: o Extended the original functionality to much better deal with MIMEd
1229: mails and the standards from RFC 1521 and 1522. There are still flaws in
1230: compliance with those but the majority of all mails using mimed texts
1231: will be presented in a fairly decent fashion.
1232:
1233: Patches Contributed From: David D Kilzer <ddkilzer@ti.com>
1234: -----------------------------------------------------------
1235:
1236: o Fixed problem with 'From: ' header lines in messages with the
1237: following format: "From: <email@address.com>" wherein the "name"
1238: from the previous email message would be used instead of reverting
1239: to the address itself.
1240:
1241: o URLs can now include ampersands (&) if they are preceded by question
1242: marks (?) in the URL string.
1243:
1244: o Email messages with no Subject line no longer grab the previous
1245: email's subject.
1246:
1247: o Reworked the order of output so that "message" links are always at
1248: the top of the page in article pages and date/thread/subject/author
1249: pages.
1250:
1251: o Now escape '%' in mail URLs.
1252:
1253: o Escape for '+' was wrong, changed to '%2B' (was '%22').
1254:
1255: o Updated replace() function to recurse on 'afterstring' variable
1256: rather than the whole 'newstring'. More efficient and allows '%'
1257: escaping.
1258:
1259: o config.h: Added configuration option for SHOW_MESSAGE_LINKS which
1260: turns all message headers and footers off (except for the links to
1261: the date, subject, thread and author pages). SHOW_MESSAGE_LINKS
1262: overrides the setting of SHOWREPLIES.
1263:
1264: o print.c (writearticles): Removed use of currentemail, currentid,
1265: and currentsubject by forcing use of email2, msgid2, inreply2,
1266: subject2, and name2 when calling struct.c (hashreplylookup). This
1267: was needed after I rearranged the order in which articles were
1268: printed.
1269:
1270: o string.c (convurls): Added code in two locations for the
1271: Message-Id code segment to recurse on the remaining portion of the
1272: line being processed. Each Message-Id found forces a return from
1273: convurls() after a recursive call. This prevents infinite recursion
1274: (a Bad Thing generally speaking). Note: we assume that Message-Ids
1275: and URLs/email addresses do NOT appear in the same line.
1276:
1277: o string.c (convurls): Changed format string from "%.3d" to "%.4d".
1278: Fixed major bug in outputting links for Message-Ids.
1279:
1280: o string.c (convurls): Fixed assumption in code for identifying
1281: Message-Ids that there was only one Message-Id per line. We now
1282: stop gobbling up text used for a link with a space (' ') or a tab
1283: ('\t').
1284:
1285: o string.c (convurls): Added int got_question_mark in URL processing
1286: code to permit an ampersand ('&') in a URL provided it comes after a
1287: question mark in the same URL (a GET method with POST data). Added
1288: one line of code and changed another to accomplish this.
1289:
1290: o string.c (convurls): Added code to check whether the next item to
1291: URL-ize is an email address (containing an at sign, '@'). If it is,
1292: we break out of the URL for loop and go process the email address.
1293:
1294: o parse.c (loadoldheaders): Modified initial fgets() call to skip any
1295: non-comment lines (i.e. "<html>" and "<head>").
1296:
1297: o string.c (makemailcommand): Added code to escape percent signs
1298: ('%') when escaping spaces (' ') and plus signs ('+'). Percent
1299: signs must be escaped first since other escape sequences use the
1300: percent sign followed by a two-digit hexadecimal number. We're now
1301: a little more MIME-compliant.
1302:
1303: o string.c (replace): Changed the replace() function to recurse only
1304: on the 'afterstring' portion of the URL instead of the whole rebuilt
1305: URL. This is both more efficient and prevents infinite recursion
1306: problems when escaping percent signs ('%') with '%25'.
1307:
1308: o string.c (makemailcommand): Fixed escape sequence for plus signs
1309: ('+') from '%22' to '%2B'.
1310:
1311: LOTS of other small patches from lots of other helpful people. I hope to
1312: be able to more accurately list them in the final 2.0 version.
1313:
1314: 1.03b2 3/10/98 - Kent Landfield
1315: =================================
1316:
1317: o Header corrections made,
1318:
1319: o all current memory leaks plugged,
1320:
1321: o variable initialization corrected,
1322:
1323: o expanded response message recognition,
1324:
1325: o fixed many threading related bugs.
1326:
1327: o Restructuring directory layout for ease of support and to
1328: make adding utilities easier.
1329:
1330: o Added additional archive utilities.
1331:
1332: 1.03b1 4/6/97 - Kent Landfield
1333: ================================
1334:
1335: o Corrected memory leaks,
1336:
1337: o cleaned up HTML produced,
1338:
1339: o ran purify, lint and insight and cleaned up output.
1340:
1341: o Added the ability to customize header/footers via crude means
1342: but hey, it works.
1343:
1344: 1.02 8/1/94 - Kevin Hughes
1345: ============================
1346: Fixed configfile problem, different usage() output, days[] space
1347: fix, NODATE, stripzone() fix, insig fix, SHOWBR, SHOWHR, IQUOTES,
1348: THRDLEVELS.
1349:
1350: 1.01 7/29/94 - Kevin Hughes
1351: ============================
1352: Printfooter declaration, getdate() and timezone names changed
1353: to avoid library conflicts. Bad #define fixed (null) bug.
1354:
1355: 1.0 7/29/94 - Kevin Hughes
1356: ============================
1357: Configuration file, logic fixes, better "re:" stripping,
1358: name tags, default index.html (HM_DEFAULTINDEX), default
1359: directory name can be mailbox name, mailto: fix, better dates,
1360: better error messages, numbered files are padded to four digits,
1361: headers are always in <pre>, next in thread, maybe in reply and
1362: maybe reply, MAILCOMMAND, EURODATE, commented source, chmods only
1363: new files, <html>, custom mail command variables.
1364:
1365: 1.0b3 7/14/94 - Kevin Hughes
1366: ============================
1367: Environment variables added, ampersands are converted.
1368:
1369: 1.0b2 7/13/94 - Kevin Hughes
1370: ============================
1371: Incremental updating added and various parsing bugs fixed.
1372:
1373: 1.0b1 7/6/94 - Kevin Hughes
1374: ============================
1375: Hypermail rewritten in C. Because the source is so new and
1376: relatively untested, it's still considered to be in beta
1377: until feedback from users is received.
Webmaster