The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension Convert::TNEF.

0.17  Sun Feb 24 2001
        - It appears that messages no longer need start with a
          TnefVersion attribute, and a message without this attribute
          triggered a bug ('datahandle' method called on uninitialized
          value) found by Randy Diffenderfer.
        - Although the MSDN TNEF Stream syntax page makes it look like
          TnefVersion must be the first attribute if it appears, and
          MessageClass must be the first or second attribute if it
          appears, I'm not going to check for this because then my
          test file has MessageClass as the third attribute.
        - Got rid of '_equal' function. The only reason to worry about
          warnings when comparing undef is if there's a read error, and
          then a warning ought to be ok anyway.
        - Long overdue perltidy format cleanup.
0.16  Tue Jul 31 2001
        - Simplified main loop some more. Don't need to check for end
          of processing twice.
        - Prefixed 'private' functions with underscore character.
        - changed a couple of 'methods' which didn't use '$self' and weren't
          documented as methods into 'private' functions.
0.15  Tue Jul 31 2001
        - Finally combined message and attachment parsing loops.
        - Removed the '|| []' from the attachment() method. I'm storing
          an arrayref unconditionally in the TNEF object, so there should
          be no need for this. Also now returns ref if not called
          in list context.
0.14  Mon Jul 30 2001
        - Subclass message and attachment portions of TNEF object.
        - Found bug in saving the size of message attributes.
0.12  Tue May 29 2001
        - We're not using Autoloader, so no need to 'use' it.
0.11  Tue May 29 2001
        - Moved previously 'autoload' functions so that they're all
          just loaded. Its a small module anyway, so there was no real
          need for it, and it should cut down on problems for people who
          don't install this module properly :)
0.10  Wed Jan 17 2001
        - Stripped carriage returns from all files (last edit was
          on Windows).
0.09  Wed Jan 10 2001
        - Fixed message method. Added more tests to test suite.
0.08  Fri Jun 17 2000
        - Added a bit more file format error checking.
0.07  Fri Jun 16 2000
        - Just some code cleanup in reading the attachment part of the
          file. When there's more than one attachment in a file, it is
          now more efficient than it used to be.
0.06  Thu Jun 15 2000
        - size() method is fixed.
        - data(), name() and longname() methods will now return the
          undefined value if the data does not exist in the attachment.
        - Not a change, just a realization that the TNEF 'attAttachment'
          attribute where the long filename and display name resides is
          really a series of MAPI properties. Maybe there ought to be a
          MAPI module to parse it? Currently, the longname() attribute is
          returning the MAPI display name property in this field. See
          previous changes for why.
0.05  Tue May 16 16:30:00 2000
        - Both name() and longname() now strip trailing null characters. This
          doesn't seem to make a difference when creating a file, but it does
          in string comparison.
        - longname() works much better now. It no longer depends
          on finding the 'AttachTitle' attribute (shortname) first
          (which was a sorry hack of a way to do it).
          I've looked at several different TNEF example docs, from my
          own creation and from Mark Simpson's 'tnef' utility, so I'm
          fairly certain about it now. The actual file name appears
          twice in the field, but one of them is not always the full
          name (if there's a space in the name?). So we get the other
          instance of the name.
          If someone could look through the MS Platform SDK and see if
          the 'official' way to parse this field is in there, it'd be
          much appreciated.
        - Fixed the 'make test', which really wasn't testing what it was
          supposed to, and added another test while I was at it.
0.04  Thu May 11 16:00:00 2000
        - The longname method should work better now. I still wish I could
          be 100% sure about the way I'm doing it. I'm sure its not the
          way Outlook does it; it'd be nice to know how its supposed to
          be done.
0.03  Tue May  8 15:00:00 2000
        - There was two purge methods. I purged one of them.
        - fixed a die() in the parse method to return a failure status instead.
        - Took out the subclasses which were just aliases for
          MIME::Body::*, and weren't really proper subclasses anyway.
          I forget why I did it that way, maybe I planned on making some
          extra methods later, or just to see if it worked.
          There really should be separate classes for a TNEF object,
          and for attachments/messages in the TNEF object, maybe someday I'll
          get around to it.
0.02  Mon Dec 12 17:30:00 1999
        - fixed and cleaned up some of the debug output.
        - had the bright idea in the first release of including a
          name() method for attachments and put it in the documentation,
          but neglected to actually include the method in the code.
        - Found out that the 'AttachTitle' attribute returns only the
          short (8 char + 3 char extension) version of the filename, so I
          included a 'longname' method which does its best to get the long
          version of the filename. This is extracted out of the 'Attachment'
          attribute data, which is a binary field, and I don't really know
          how to parse this field, but this seems to work to get the name.
0.01  Mon Nov 29 14:26:32 1999
	- original version; created by h2xs 1.18