aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: d4b87e732ce98887a723ee49e03851bd4dc2c317 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
VERSION 0.9.2svn
================

2012-11-03  Vincent Richard  <[email protected]>

 * Migrated to CMake build system. Conditional compilation of source files.
   Automatic selection of platform handler.

 * Added support for OpenSSL (thanks to Mehmet Bozkurt).

2012-10-15  Vincent Richard  <[email protected]>

 * Added support for timeout when receiving data from a socket.

2012-04-16  Vincent Richard  <[email protected]>

 * MIME Parser can now operate directly on an input stream (eg. file).
   This allows very big messages to be parsed without loading the whole
   message data into memory.

2010-11-16  Vincent Richard  <[email protected]>

 * Started version 0.9.2.


VERSION 0.9.1
=============

2010-05-18  Vincent Richard  <[email protected]>

 * net/*: added helper function vmime::net::message::getParsedMessage()
   to construct a RFC-822 parsed message from a net message.

2009-09-06  Vincent Richard  <[email protected]>

 * Relicensed VMime under the GNU GPL license version 3. Dual licensing
   is now available. More info here: http://www.vmime.org/pages/Licensing

2008-10-19  Vincent Richard  <[email protected]>

 * Started version 0.9.1.


VERSION 0.9.0
=============

2008-01-28  Vincent Richard  <[email protected]>

 * fileAttachment: fixed constructor ambiguity due to implicit conversions.
   Removed default values and reordered parameters (API breaking change).
   Many thanks to Philipp Frenkel. More information here:
   http://sourceforge.net/forum/message.php?msg_id=4739926

2007-11-20  Vincent Richard  <[email protected]>

 * text, word: fixed incorrect white-space between words.

2007-07-09  Vincent Richard  <[email protected]>

 * IMAPUtils.cpp: fixed bug in modified UTF-7 encoding (IMAP).

2007-05-22  Vincent Richard  <[email protected]>

 * Implemented thread-safe reference counting for smart pointers,
   whenever possible (GCC built-in functions / pthread / Win32).

2007-03-28  Vincent Richard  <[email protected]>

 * SMTPTransport.cpp: better parsing of ESMTP extensions.

2007-03-02  Vincent Richard  <[email protected]>

 * Maildir: added support for "Courier" Maildir.

2006-12-20  Vincent Richard  <[email protected]>

 * Started version 0.8.2.


VERSION 0.8.1
=============

2006-11-08  Vincent Richard  <[email protected]>

 * Imbue classic "C" locale for the output of message parts and
   protocol commands (thanks to Mörtsell Anders).

2006-10-11  Vincent Richard  <[email protected]>

 * Renamed 'vmime::platformDependant' to 'vmime::platform'. The old
   name has been kept for compatibility with previous versions.

2006-10-02  Vincent Richard  <[email protected]>

 * SMTPTransport.cpp: reissue EHLO command after a successful STARTTLS
   negociation.

 * word, wordEncoder: fixed bug #1096610 which caused encoding of a
   non-integral number of characters (and then, generation of
   incorrectly-formed words) with multi-bytes charsets.

2006-07-13  Vincent Richard  <[email protected]>

 * Fixed bugs in MHTML code: 'CID' prefix should not be case-sensitive;
   fixed detection of parts identified by a 'Content-Location'.

2006-04-23  Vincent Richard  <[email protected]>

 * Added vmime::net::folder::destroy() to delete folders on IMAP and
   maildir stores.

2006-04-18  Vincent Richard  <[email protected]>

 * Renamed 'byte' to 'byte_t' to fix compilation problems on Fedora
   core 5 (thanks to Rafael Fernandez).

2006-02-20  Vincent Richard  <[email protected]>

 * net/imap/IMAPParser.hpp: added a "relaxed" mode to allow 8-bit
   characters where not allowed by the standard (thanks to Tim Teulings
   for having found the bug).

2006-01-29  Vincent Richard  <[email protected]>

 * Added service::isSecuredConnection() and service::getConnectionInfos()
   to retrieve information about the connection.

2006-01-16  Vincent Richard  <[email protected]>

 * Added support for attachments of type "message/rfc822".

2006-01-15  Vincent Richard  <[email protected]>

 * IMAP: implemented multi-fetching. Now using "FETCH x:y" instead of
   sending (y-x+1) "FETCH" requests.

2005-12-26  Vincent Richard  <[email protected]>

 * posixSocket.cpp: use getaddrinfo() if available. This should bring
   thread-safe DNS resolution and IPv6 support.

2005-12-18  Vincent Richard  <[email protected]>

 * IMAPParser.hpp: compatibility bugs + enhanced debugging trace.

2005-12-04  Vincent Richard  <[email protected]>

 * exception.{hpp|cpp}: fixed segfault in destructor when destroying
   an exception chain with more than 2 elements (thanks to Bertrand
   Benoit).

 * posixChildProcess.cpp: fixed a bug in argument vector; last argument
   was not NULL (thanks to Bertrand Benoit).

2005-11-27  Vincent Richard  <[email protected]>

 * maildirUtils.cpp: fixed problem with ':' in filename on Windows
   platform (thanks to Benjamin Biron).

 * random.cpp: fixed buffer overrun in random::getString (thanks
   to Benjamin Biron).

2005-11-07  Vincent Richard  <[email protected]>

 * SMTPTransport.cpp: fixed bug in disconnect() when authentication is
   not needed (thanks to Benjamin Biron).

 * dateTime.cpp: gmtime() and localtime() are reentrant when using
   MS C runtime library (MinGW/MSVC).

2005-11-06  Vincent Richard  <[email protected]>

 * Started version 0.8.1.


VERSION 0.8.0
=============

2005-11-06  Vincent Richard  <[email protected]>

 * First version of the VMime Book.

2005-11-05  Vincent Richard  <[email protected]>

 * Refactored header field values and parameters.

2005-10-19  Vincent Richard  <[email protected]>

 * charsetConverter.{hpp|cpp}: new object 'charsetConverter' for converting
   between charsets (code moved from static functions in 'charset' class).

 * Added 'charsetFilteredOutputStream': provide charset conversion while
   writing to an output stream.

2005-10-16  Vincent Richard  <[email protected]>

 * SConstruct: fixed compilation problems on FreeBSD (thanks to Xin LI).

2005-10-13  Vincent Richard  <[email protected]>

 * attachmentHelper.{hpp|cpp}: the attachmentHelper allows listing all
   attachments in a message, as well as adding new attachments.

2005-10-06  Vincent Richard  <[email protected]>

 * utility/progressionListener.{hpp|cpp}: renamed 'progressionListener'
   to 'progressListener'.

2005-10-04  Vincent Richard  <[email protected]>

 * net/service: removed "server.socket-factory" property; added the
   service::setSocketFactory() function instead. Removed "name" parameter
   from platformDependant::getSocketFactory() function.

 * net/service: removed "timeout.factory" property; added the function
   service::setTimeoutHandlerFactory() instead. Removed the function
   platformDependant::getTimeoutHandlerFactory().

2005-10-03  Vincent Richard  <[email protected]>

 * Added TLS/SSL support, using GNU TLS library.

2005-09-17  Vincent Richard  <[email protected]>

 * Added SASL support, based on GNU SASL library. Slightly modified
   auhenticator object; see 'example6' which has been updated.

2005-09-06  Vincent Richard  <[email protected]>

 * Created 'vmime::security' and 'vmime::security::digest' namespaces.
   MD5 has been moved here. Added SHA-1 hash algorithm.

2005-09-03  Vincent Richard  <[email protected]>

 * encoder*, *contentHandler: added progression notifications.

2005-08-25  Vincent Richard  <[email protected]>

 * Tests: moved to CppUnit for unit tests framework.

2005-08-23  Vincent Richard  <[email protected]>

 * All sources: renamed 'vmime::messaging' to 'vmime::net'. An alias has been
   kept for compatibility with previous versions (its use should be considered
   as deprecated).

2005-08-19  Vincent Richard  <[email protected]>

 * exception.hpp: vmime::exception now inherits from std::exception.

2005-07-25  Vincent Richard  <[email protected]>

 * Messaging folder: added a FETCH_IMPORTANCE flag to fetch the fields used
   with 'misc::importanceHelper'.

2005-07-23  Vincent Richard  <[email protected]>

 * POP3, IMAP, maildir: fixed getMessages() when default arguments are given:
   no message were returned, instead of the real message count.

2005-07-15  Vincent Richard  <[email protected]>

 * *attachment, messageParser: added a getName() parameter to retrieve
   the attachment filename either from the "filename" parameter of the
   "Content-Disposition" field, or from the "name" parameter of the
   "Content-Type" field (if available).

2005-07-13  Vincent Richard  <[email protected]>

 * All files: added reference counting and smart pointers to simplify the
   use of VMime objects. Please see README.refcounting for more information.

2005-07-06  Vincent Richard  <[email protected]>

 * *contentHandler.{hpp|cpp}: added extractRaw() method to allow extracting
   data without performing any decoding.

2005-06-22  Vincent Richard  <[email protected]>

 * Started version 0.7.2.


VERSION 0.7.1
=============

2005-06-21  Vincent Richard  <[email protected]>

 * Fixed compilation errors with g++ 4.0.

 * defaultParameter.cpp: fixed a bug in RFC-2231 implementation.

2005-06-13  Vincent Richard  <[email protected]>

 * word.cpp: fixed a bug in parsing, when the first character of word data
   was encoded in QP (thanks to Wolf Jiang).

2005-06-03  Vincent Richard  <[email protected]>

 * parameterizedHeaderField.{hpp|cpp}: fixed a memory leak in the
   destructor (thanks to Rafael Fernandez).

2005-05-27  Vincent Richard  <[email protected]>

 * messaging/*/*Message.{hpp|cpp}: added a 'peek' parameter to extract
   message contents without marking the message as seen.

2005-05-19  Vincent Richard  <[email protected]>

 * messaging/imap/IMAPFolder.cpp: fixed bug in subfolders enumeration.

 * examples/example6.cpp: enhanced 'example6' into an interactive program to
   show some of the features of the messaging module.

2005-05-15  Vincent Richard  <[email protected]>

 * messaging/serviceInfos.{hpp|cpp}: changed getAvailableProperties() to
   return 'serviceInfos::property' objects instead of strings. This permits
   setting service properties in a more generic manner.

2005-05-03  Vincent Richard  <[email protected]>

 * messaging/imap/IMAPFolder.cpp: fixed missing space in "STATUS" command +
   parsing error in 'status_info'.

2005-04-30  Vincent Richard  <[email protected]>

 * utility/childProcess.{hpp|cpp}: added a 'childProcess' class to help
   with spawning child processes (used in 'sendmail' implementation).

2005-04-28  Stefan Uhrig  <[email protected]>

 * README.msvc: added guide describing how to compile VMime using
   Visual Studio .NET 2003

2005-04-27  Vincent Richard  <[email protected]>

 * progressionListener.{hpp|cpp}: moved to 'vmime::utility' package since
   this can be of general use.

 * stream.{hpp|cpp}: added a bufferedStreamCopy() function which can
   take a 'progressionListener' parameter.

 * filteredStream.{hpp|cpp}: new feature added: filtered input and
   output streams.

 * Added 'sendmail' transport service for local delivery.

2005-04-19  Vincent Richard  <[email protected]>

 * defaultParameter.cpp: fixed a bug in implementation of RFC-2231 (values
   were cut if longer than maxLineLength, and no line wrapping occured).

2005-04-15  Vincent Richard  <[email protected]>

 * url.{hpp|cpp}, urlUtils.{hpp|cpp}: fixed a lot of bugs in URLs parsing
   and encoding/decoding + added unit tests.

2005-04-14  Vincent Richard  <[email protected]>

 * url.{hpp|cpp}, urlUtils.{hpp|cpp}: moved 'url' and 'urlUtils' from
   'vmime::messaging' namespace to 'vmime::utility' namespace.

2005-04-12  Vincent Richard  <[email protected]>

 * Started version 0.7.1.


VERSION 0.7.0
=============

2005-04-12  Vincent Richard  <[email protected]>

 * parameter.{cpp|hpp}, contentDispositionField.{cpp|hpp}: added support
   for RFC-2231 (encoded word extensions). Changed 'filename' parameter
   type from 'vmime::string' to 'vmime::word'. Default parameter type is
   now vmime::word, and not vmime::string.

2005-04-09  Vincent Richard  <[email protected]>

 * encoderB64.cpp: fixed a bug in Base64 decoding. Bytes to be decoded
   were not correctly initialized.

2005-04-03  Vincent Richard  <[email protected]>

 * messaging/*: moved IMAP, POP3, maildir and SMTP files to separate
   namespaces.

2005-03-31  Vincent Richard  <[email protected]>

 * misc/importanceHelper.{cpp|hpp}: added support for message importance:
   "X-Priority:" and "Importance:" fields.

2005-03-28  Vincent Richard  <[email protected]>

 * messaging/POP3Store.cpp: fixed POP3Store::sendPacket() to send "\r\n"
   in the same packet as the request. This caused problems with some
   servers (thanks to Donald Dade).

 * SConstruct: modified 'msvc' target to generate automatically the
   config file 'config.hpp.msvc'.

2005-03-27  Stefan Uhrig  <[email protected]>

 * Added Windows platform handlers.

2005-03-27  Vincent Richard  <[email protected]>

 * messageIdSequence.{cpp|hpp}: added a new basic type "messageIdSequence" for
   a list of message-ids separated by CFWS (used in "References:" field, for
   example).

 * SConstruct: added 'msvc' target to generate MSVC project files.

2005-03-25  Vincent Richard  <[email protected]>

 * mdn/*.{cpp|hpp}: added support for Message Disposition Notifications (MDN),
   as defined by RFC-3798 and RFC-1892. This is a very first implementation,
   API is subject to changes...

 * Some fixes for Visual C++/Windows.

2005-03-24  Vincent Richard  <[email protected]>

 * Added 'HACKING' file.

2005-03-23  Vincent Richard  <[email protected]>

 * messaging/POP3*: fixed incorrect message size. Fixed a bug in
   deleteMessages() when 'to == -1' and last message not being
   deleted (thanks to Stefan Uhrig).

 * SConstruct: fixed compilation/linking problem with g++ and X86-64 on
   static library: added -fPIC/-fpic in compiler flags.

 * messaging/POP3*: added notifications.

 * constants.{cpp|hpp}, contentTypeField.{cpp|hpp}: added support for
   content types and parameters defined in RFC-1892.

2005-03-17  Vincent Richard  <[email protected]>

 * base.{cpp|hpp}: renamed 'MIME_VERSION' to 'SUPPORTED_MIME_VERSION'.

 * Added "Viewer" example in /examples/viewer: demonstrate the parsing
   capabilities of VMime and it can help when debugging...

2005-03-16  Vincent Richard  <[email protected]>

 * Fixed compilation problems on Solaris 9.

2005-03-15  Vincent Richard  <[email protected]>

 * tests/parser/textTest.cpp: added more unit tests for 'text' class.

 * text.{cpp|hpp}, word.{cpp|hpp}: moved word parsing from 'text' class
   to 'word' class, which now inherits from 'component'.

2005-03-14  Vincent Richard  <[email protected]>

 * removed singleton<> and singletonManager classes: useless and quite
   confusing in Doxygen-generated documentation.

2005-02-06  Vincent Richard  <[email protected]>

 * mailboxList.{cpp|hpp}: dropped protected inheritance which was not
   appropriate for this type of composition.

2005-02-05  Vincent Richard  <[email protected]>

 * parserHelpers.hpp: moved 'static' functions into 'parserHelpers' class.

2005-02-05  Vincent Richard  <[email protected]>

 * platforms/posix/posixHandler.cpp: removed extra '::' before
   numeric constants.

2005-02-05  Vincent Richard  <[email protected]>

 * utility/md5.cpp: fixed forward use of swapUint32Array() with
   gcc 3.3 (Apple).

2005-02-01  Vincent Richard  <[email protected]>

 * text.cpp: fixed possible segfault when encoding is Base64 (typo).

2005-01-28  Vincent Richard  <[email protected]>

 * Started version 0.6.4.


VERSION 0.6.3
=============

2005-01-28  Vincent Richard  <[email protected]>

 * Splitted 'contentHandler' into three classes: 'emptyContentHandler',
   'stringContentHandler' and 'streamContentHandler'.

 * Fixed bugs with signed/unsigned char in 'parserHelpers'.

2005-01-15  Vincent Richard  <[email protected]>

 * Fixed missing 'vmime/config.hpp' include when installing VMime
   using 'make install'.

2005-01-13  Vincent Richard  <[email protected]>

 * messaging/events.*: prefixed function names with 'get' + written
   some documentation for functions.

2005-01-05  Vincent Richard  <[email protected]>

 * Started version 0.6.3.


VERSION 0.6.2
=============

2005-01-04  Vincent Richard  <[email protected]>

 * Added diagnostic error string for 'exceptions::connection_error'.

 * Fixed a bug in 'posixSocket::connect()' that prevented connecting to
   servers by specifying an IP address instead of a server name.

2005-01-03  Vincent Richard  <[email protected]>

 * Fixed linking error on 'typeAdapter <string>::parse()' with g++ versions
   older than 3.3.

2005-01-02  Vincent Richard  <[email protected]>

 * Added unit tests for utility::path and bodyPart.

 * Added 'utility::datetimeUtils' to provide some time-related functions.

 * Fixed 'stringUtils' not in namespace 'utility'.

 * Moved 'datetime::getDayOfWeek()' to 'datetimeUtils'.

2005-01-01  Vincent Richard  <[email protected]>

 * Converted all C-style casts to C++-style casts.

 * Added unit tests for utility::md5, utility::stringProxy and
   utility::stringUtils.

2004-12-31  Vincent Richard  <[email protected]>

 * Started version 0.6.2.


VERSION 0.6.1
=============

2004-12-27  Vincent Richard  <[email protected]>

 * Added support for 'libtool'. All files needed for autoconf/automake
   can be generated with SConstruct script, using the 'autotools'
   target ("scons autotools"). These are also built and included
   automatically in the distribution tarball ("scons dist").

2004-12-26  Vincent Richard  <[email protected]>

 * Removed relative paths from #include's and moved all header files
   to 'vmime/' directory.

 * Renamed main VMime include from 'vmime' to 'vmime.hpp'. So, in your
   program, you have to #include <vmime/vmime.hpp>.

 * Added support for 'pkg-config'.

 * Allow creating a service from an URL (session::getStore("url") and
   session::getTransport("url"))

2004-12-24  Vincent Richard  <[email protected]>

 * Renamed class 'disposition' to 'contentDisposition' and the enum
   namespace 'dispositionTypes' to 'contentDispositionTypes'.

2004-12-23  Vincent Richard  <[email protected]>

 * maildir: when connecting to the store, create root directory on the
   file system if it does not exist.

2004-12-22  Vincent Richard  <[email protected]>

 * Fixed missing files in distribution (src/platform/*).

 * Fixed empty 'COPYING' file.

 * Started version 0.6.1.


VERSION 0.6.0
=============

2004-12-22  Vincent Richard  <[email protected]>

 * Finished 'maildir' implementation. This is EXPERIMENTAL!

 * Added a getCapabilities() function on 'vmime::messaging::store' to
   quickly check which features are available.

 * New functions in 'component': getParsedOffset(), getParsedLength()
   and getChildComponents().

2004-12-19  Vincent Richard  <[email protected]>

 * Added chaining in exception handling. vmime::exception::other() returns
   the exception which is encapsulated in the current exception (if any).
   This allows to retrieve the exception "stack" (for example, this is
   used for 'maildir' implementation, where some functions return a
   'filesystem_exception' encapsulated in a 'messaging_exception').

 * Fixed bugs and memory leaks in POP3/IMAP/maildir implementations.

2004-12-17  Vincent Richard  <[email protected]>

 * Made default platform handlers (currently, only "posix"). Source files
   are in src/platforms/[platform-name].

   To use a default platform handler, do the following:
      - #include <vmime/platforms/[platform-name]/handler.hpp>
      - call vmime::platformDependant::setHandler() with the appropriate class
      - link your program with both 'libvmime' and 'libvmime-[platform-name]'

   For example, to use the default platform handler for POSIX (GNU/Linux):

        #include <vmime/platforms/posix/posixHandler.hpp>

        int main()
        {
            vmime::platformDependant::setHandler
                  <vmime::platforms::posix::posixHandler>();

            // ...
        }

        and link your program with "-lvmime" and "-lvmime-posix".

2004-10-21  Vincent Richard  <[email protected]>

 * A _LOT_ of cleaning/refactoring in VMime code:

      - got rid of field types (only using field names now).

      - removed iterators on 'header', 'text', 'addressList', 'mailboxGroup',
        'propertySet' and 'bodyPart': use access functions instead (iterators
        made the code difficult to understand). You can always use standard
        iterators on the container returned by getFieldList(), and so on.

      - migrated to get/set convention for accessors (most of time, just add
        'get' or 'set' before method name, depending on what it does).

      - dropped 'comp_t' typedef on 'datetime' (useless).

      - moved a lot of code from header (.hpp) to implementation files (.cpp).

      - made all objects cloneable and copiable at the 'component' level:
        methods component::clone() and component::copyFrom().

      - made a 'typeAdapter' to allow using fondamental/no-vmime types in
        header field and parameter values.

      - implicit 'operator=' on header fields to set value is not allowed
        anymore: use setValue() instead or you will get a std::bad_cast
        exception.

      - 'textParameter' renamed to 'defaultParameter'.

      - vmime::makeWordsFromText() is now vmime::text::newFromString().

      - changed a lot of return type value from reference to pointer, to
        to avoid confusion.

2004-10-05  Vincent Richard  <[email protected]>

 * added clone() method on 'component' object.

2004-09-09  Vincent Richard  <[email protected]>

 * IMAPFolder.cpp: fixed rename(): folder name is now updated.

2004-08-21  Vincent Richard  <[email protected]>

 * charset.cpp: workaround (hack?) for different 'iconv' prototypes (they
   may differ in the second parameter being 'const' or not).

2004-08-20  Vincent Richard  <[email protected]>

 * renamed "messaging/folderPath" to "utility/path" for common use in
   "messaging/folder" and "utility/file".

 * moved "stream" and "stringProxy" into "utility" namespace.

 * started to write some "JavaDoc-like" comments, for use with Doxygen.

2004-08-18  Vincent Richard  <[email protected]>

 * stringProxy.hpp: fixed stringProxy::it_end() which returned wrong
   value (typo...).

2004-07-26  Vincent Richard  <[email protected]>

 * fileAttachment: fixed the encoding param (not set to default anymore)
   and provided a new constructor to specify your own encoding.

2004-07-22  Vincent Richard  <[email protected]>

 * wide-char support is disabled by default. To enable, set the flag
   "with_wide_char_support=yes" on the SCons command line.

2004-07-08  Vincent Richard  <[email protected]>

 * renamed messaging/POP3*, messaging/IMAP* and messaging/SMTP* classes
   to follow the same convention as other class names.

2004-07-03  Vincent Richard  <[email protected]>

 * moved some files to "utility" subdirectory ("vmime::utility" namespace).


VERSION 0.5.1
=============

2004-06-15  Vincent Richard  <[email protected]>

 * contentHandler, htmlTextPart: Fixed some compilation issues with
   g++ version < 3.4:
   [error: declaration of `const vmime::encoding& encoding() const'
    changes meaning of `encoding' from `class vmime::encoding'].

 * Fixed errors in SConstruct with Windows NT (2k, XP...).


VERSION 0.5.0
=============

2004-05-26  Vincent Richard  <[email protected]>

 * added methods receiveRaw() and sendRaw() on vmime::socket object. Do not
   forget to implement it, or you will get a compile error.

2004-05-21  Vincent Richard  <[email protected]>

 * added some unit tests in the "tests" directory. To run all the tests, 'cd'
   to the "tests" directory, compile test programs by running "make" and then
   execute the "run-tests.sh" script.

 * charset: added a convert() function to perform stream conversion.

2004-05-18  Vincent Richard  <[email protected]>

 * encoder*: updated all encoders so they use input streams and output
   streams instead of a in-memory string. You can use the stream adapters
   (inputStreamStringAdapter and outputStreamStringAdapter) for your code
   to continue working the old-fashioned way...

2004-05-17  Vincent Richard  <[email protected]>

 * messaging/transport.hpp: added a "size" parameter to send() function.

2004-05-16  Vincent Richard  <[email protected]>

 * body: body contents and data in text parts are now handled via a
   proxy object: contentHandler. This allow more flexibility, including
   providing data from an input stream instead of storing whole data in
   memory into a string object. This also provide a big performance and
   memory usage improvement. For more information, please see the comments
   in the file "contentHandler.hpp".

2004-05-15  Vincent Richard  <[email protected]>

 * all files: modified the parsing in depth (not using iterators anymore),
   the code is clearer and faster.

 * IMAPutils.cpp: corrected a bug (typo) in IMAPutils::dateTime().

2004-05-13  Vincent Richard  <[email protected]>

 * all files: added a generate() method on vmime::component to generate
   objects into an output stream (outputStream). This offers a large
   performance and memory usage improvement when generating big messages.

 * stream.cpp/.hpp: new objects "inputStream" and "outputStream" to
   provide more flexibility than with standard C++ streams. There are
   also adapters for standard i/o streams, provided for compatibility.


VERSION 0.4.2
=============

2004-05-08  Vincent Richard  <[email protected]>

 * messaging: added a system of event notification (message change,
   folder renamed, etc...). For more information about this, please
   consult "src/messaging/events.hpp".

2004-05-03  Vincent Richard  <[email protected]>

 * messaging: added a lot of useful features to message stores
   (set/get message flags, message deletion, copy, rename folder,
   adding messages, unique identifiers, MIME part/header fetch,
   partial fetch...).

2004-04-30  Vincent Richard  <[email protected]>

 * messaging/message.hpp: added a fetchPartHeader() method to
   extract the header of a specific MIME part.

2004-04-25  Vincent Richard  <[email protected]>

 * all files: removed (illegal) extra ';' after namespace
   declarations.

 * all files: fixed some compilation errors with g++-3.4 (the
   parser is more strict and more standard-compliant).

2004-04-24  Vincent Richard  <[email protected]>

 * messaging/*: splitted "progressListener" into two objects:
   "progressionListener" and "timeoutHandler". The last one is
   used internally in VMime. The "progressionListener" parameter
   is no more passed as argument to the constructor of a "service"
   object. Instead, it can be given in argument to the functions
   that use it:
     - message::extract[Part]()
     - folder::fetchMessages()
     - transport::send()

2004-04-04  Vincent Richard  <[email protected]>

 * messaging/folder.hpp: added a (optional) parameter "recursive"
   to getFolders() to allow enumeration of all sub-folders
   (that is, direct and indirect).

2004-04-03  Vincent Richard  <[email protected]>

 * messaging/authenti[fi]cationInfos: renamed class
   'authentificationInfos' to 'authenticationInfos'.

 * exception.hpp: renamed class 'authentification_error' to
   'authentication_error'.

 * messaging/SMTPtransport: renamed 'options.need-authentification'
   to 'options.need-authentication'.

2004-04-02  Vincent Richard  <[email protected]>

 * added basic IMAP support. This is EXPERIMENTAL.

2004-03-25  Vincent Richard  <[email protected]>

 * messaging::folder::path: changed type of 'component' from 'string'
   to 'word' to allow multiple charsets to be used in a path.

 * implemented a noop() command on vmime::messaging::service class.

 * messageParser.cpp: it is now possible to get more information on an
   attachment using the "Content-Disposition" (use the attachmentInfo()
   fonction to retrieve the "Content-Disposition" field related to
   the attachment).


VERSION 0.4.1
=============

2004-03-24  Vincent Richard  <[email protected]>

  * SMTPtransport.cpp: fixed a bug in send().


VERSION 0.4.0
=============

2004-02-19  Vincent Richard  <[email protected]>

 * mailboxGroup.cpp: fixed a segfault when generating() an empty group
   (eg. "undisclosed-recipient").

2004-02-17  Vincent Richard  <[email protected]>

 * === MAJOR CHANGE === Removed old "network features". Now, this is called
   "messaging system" and a new (incompatible) interface is provided.

2003-12-30  Vincent Richard  <[email protected]>

 * encoderFactory.cpp/.hpp: added stuff to allow iterating through
   registered encoders.

 * encoder*.cpp/.hpp: changed the way options/results are set in encoders:
   now, a vmime::propertySet is used. This provides more flexibility.

2003-12-25  Vincent Richard  <[email protected]>

 * constants.cpp/.hpp: media types constants: removed "sub" namespace and
   translated "sub::[TYPE]::[SUBTYPE]" to "[TYPE]_[SUBTYPE]".

2003-12-08  Vincent Richard  <[email protected]>

 * constants.cpp/.hpp, dateTime.cpp/.hpp: translated all constants/enums
   from lower-case to upper-case letters.

2003-12-04  Vincent Richard  <[email protected]>

 * Created a new class for singleton. Derived all concerned class from
   this new class. This concerns: "encoderFactory", "headerFieldFactory",
   "parameterFactory", "options" and "textPartFactory".

2003-12-02  Vincent Richard  <[email protected]>

 * Moved to SCons building system (http://www.scons.org/) and dropped old
   autoconf/automake system. Type 'scons' to build the library and use
   'scons install' to install it on your system.

2003-12-01  Vincent Richard  <[email protected]>

 * mailboxGroup.cpp: fixed a bug in typeid() comparison: changed
   "typeid(parsedAddress)" to "typeid(*parsedAddress)" to test the
   object dynamic type (the previous test was always false).


VERSION 0.3.5
=============

2003-10-24  Vincent Richard  <[email protected]>

 * included some sample programs in the "examples/" directory. For a more
   complete documentation, please visit: http://www.kisli.com/vmime/doc/ .

 * all files: it is not possible to create header fields directly anymore
   (ie. you cannot call the constructor directly); instead, you should use
   the "headerFieldFactory" object.


VERSION 0.3.4
=============

2003-10-05  Vincent Richard  <[email protected]>

 * all files: changed all calls 'std::isspace(???)' to '[vmime::]isspace(???)'
   since no locale was passed (anyway, no locale is needed: text is ASCII).

2003-10-04  Kai Stammerjohann  <[email protected]>

 * included a Visual C++ 7 solution/project for vmime: see "vmime.sln" and
   "vmime.vcproj" in the root directory.


VERSION 0.3.3
=============

2003-09-22  Vincent Richard  <[email protected]>

 * moved all constants (media types, charsets...) from base.cpp/.hpp to new
   files constants.cpp/.hpp.

2003-09-21  Vincent Richard  <[email protected]>

 * messageBuilder.cpp (construct): fixed algorithm for generating text parts.
   Single and multiple text parts, with or without attachments are now handled
   correctly (as recommended by the RFCs).

 * bodyPart.cpp/.hpp, body.cpp/.hpp, header.cpp/.hpp: added clone() and
   operator=() functions to be able to duplicate body parts.

 * messageParser.cpp (findTextParts): handled the case in which the message
   is not "multipart/*": we use the main part if its type is "text/*".

 * messageParser.cpp (destructor): added code for deleting the text parts
   created by the findTextParts() function.


VERSION 0.3.2
=============

2003-09-19  Bevan Collins  <[email protected]>

 * encoderQP.cpp: fixed a bug in quoted-printable encoding: "=20\r\n" is
   appended to the line ending with a space.

2003-09-13  Vincent Richard  <[email protected]>

 * charset.cpp/.hpp: dropped internal conversion from charset name (string) to
   charset type (enum). We keep only the name of the charset.

 * base.cpp/.hpp: added string constants for some charsets.

2003-09-12  Vincent Richard  <[email protected]>

 * messageParser.cpp (findAttachments): fixed the search for attachment
   parts. The right test is "cdf.value().name() != dispositionTypes::_inline"
   and not "cdf.value().name() != dispositionTypes::attachment"...

2003-09-11  Vincent Richard  <[email protected]>

 * plainTextPart.cpp/htmlTextPart.cpp: fixed a bug in parse(): when getting
   the "charset" parameter, "no_such_parameter" exception was not caught if
   the parameter was not present.

2003-09-06  Vincent Richard  <[email protected]>

 * base.cpp: added a special case when encoding to Quoted-Printable: lines
   are no more limited to 76 characters (the maximum length recommended by
   the RFC) if maxLineLength == lineLengthLimits::infinite. However, this
   SHOULD NOT be used when generating mails (not RFC compliant).


VERSION 0.3.1
=============

2003-08-24  Vincent Richard  <[email protected]>

 * mailbox.hpp: added "const" functions for name() and email().

2003-07-26  Vincent Richard  <[email protected]>

 * charset.cpp: fixed a bug in "charset::iconvert()". Also, the
   conversion is now done using a buffer, and not in one block.

2003-07-24  Vincent Richard  <[email protected]>

  * receiveProtocol[POP3].hpp/.cpp: a socket factory can now be passed in
    argument to the constructor so that it is possible to override the
    use of the default factory (set in vmime::platformDependantHandler).


VERSION 0.3.0
=============

2003-07-21  Vincent Richard  <[email protected]>

 * configure.in: changed 'libdir' to install lib files in {PREFIX}/lib
   instead of {PREFIX}/lib/vmime. However, include files remain in the
   {PREFIX}/include/vmime directory.

2003-06-28  Vincent Richard  <[email protected]>

 * base.hpp/.cpp: changed the return type of "libname()" and "libversion()"
   from "string::value_type*" to "string".

2003-06-16  Vincent Richard  <[email protected]>

 * platformDependant.hpp: added "getSocketFactory()" function to be used
   with the new network features.

 * configure.in: modified the file to permit passing arguments to
   the "configure" script:
     . --disable-net: disable network support (new in 0.3.0)
     . --enable-debug: enable debug mode (not used for now)

 * started version 0.3.0: added network features: connection to mail
   servers via POP3, IMAP... Related classes: "receiveProtocol*",
   "serverInfos" and "socket", an abstract socket class.


VERSION 0.2.1
=============

2003-05-28  Vincent Richard  <[email protected]>

 * messageId.cpp: added "vmime." at the beginning of random-generated
   message-ids (to make them more unique).

2003-05-26  Vincent Richard  <[email protected]>

 * all source files: replaced "_VMIME_xxxxx_HPP_INCLUDED_" macros with
   "VMIME_xxxxx_HPP_INCLUDED". Names beginning with "_" (underscore) and
   followed by an uppercase letter are reserved to the implementation
   (see the C++ standard: 17.4.3.1.2 Global names).


VERSION 0.2.0
=============

2003-05-18  Vincent Richard  <[email protected]>

 * messageParser.cpp: added a message parser (to be used parallely with
   messageBuilder). Extraction of attachment, plain text parts and HTML
   text parts (with embedded objects) is supported.

2003-05-09  Vincent Richard  <[email protected]>

 * body.cpp (generate): the default prolog & epilog text (as defined
   in vmime::options) are not written anymore in sub-parts (only for
   the "root" part). Added a "isRoot" member to vmime::header.

2003-05-08  Vincent Richard  <[email protected]>

 * encoding.cpp (decide): added some code to choose "quoted-printable"
   when there are lines with more than "lineLengthLimits::convenient"
   characters (or with a '.' just after a '\n').

 * base.cpp (makeWordsFromText): enhanced algorithm.

2003-05-04  Vincent Richard  <[email protected]>

 * address.cpp, mailbox.cpp, mailboxGroup.cpp: added empty() function.

 * messageBuilder.cpp (construct): some validity checks: we now check
   there is one expeditor and at least one recipient.


VERSION 0.1.0
=============

2003-05-03  Vincent Richard  <[email protected]>

 * First (beta) version released.