aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-mime-part.c
Commit message (Collapse)AuthorAgeFilesLines
* make a blocking version of the header parser. When the fs stream usesbertrand2000-02-151-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-14 bertrand <Bertrand.Guiheneuf@aful.org> * camel/gmime-utils.c (get_header_array_from_stream): make a blocking version of the header parser. When the fs stream uses gnome-vfs, this should be changed. (gmime_read_line_from_stream): ditto. 2000-02-11 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-stream-fs.c: everywhere, when using the cur_pos field, do it on the CamelSeekableStream object. (_seek): small fix. * camel/camel-seekable-stream.c (camel_seekable_stream_seek): s/camel_stream_seek/camel_seekable_stream_seek/g * camel/camel-seekable-stream.h: (struct ): added a field to store the current position. * camel/camel-seekable-stream.c (camel_seekable_stream_get_current_position): New function. Allows to get the current position of a seekable stream. In fact much more changes, but I am lazy. This is the begining of some major changes in camel. svn path=/trunk/; revision=1778
* If we get a -1 read, DONT update the total bytes, and try and truncate theNotZed2000-02-101-4/+7
| | | | | | | | | | | | | | | | 2000-02-09 NotZed <notzed@zedzone.helixcode.com> * camel/camel-mime-part-utils.c (camel_mime_part_store_stream_in_buffer): If we get a -1 read, DONT update the total bytes, and try and truncate the array in reverse. Eek. * camel/camel-mime-part.c (camel_mime_part_encoding_from_string): This was DEFINETLEY not the right way to do it. strncmp!=strcmp (camel_mime_part_encoding_to_string): Handle the default case. : include string.h for strcmp() etc. svn path=/trunk/; revision=1720
* Updated my e-mail address to reflect my new employmentBertrand Guiheneuf2000-01-041-1/+1
| | | | svn path=/trunk/; revision=1533
* Fix copyright informations once againBertrand Guiheneuf1999-12-151-1/+1
| | | | svn path=/trunk/; revision=1489
* Added streaming capability to CamelDataWrapper. This makes it possible, forEttore Perazzoli1999-11-171-30/+72
| | | | | | | example, to build multipart messages out of files that are on disk without loading them in memory. svn path=/trunk/; revision=1394
* Here is my initial Evolution work: message composition widget and someEttore Perazzoli1999-11-061-3/+8
| | | | | | installation fixes for Camel. svn path=/trunk/; revision=1369
* Copyright changeBertrand Guiheneuf1999-10-231-1/+4
| | | | svn path=/trunk/; revision=1348
* changed decl to fit CRLFunc. (_write_recipients_to_stream): callsbertrand1999-09-021-2/+2
| | | | | | | | | | | | | | | | | | | 1999-09-02 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-mime-message.c (_write_one_recipient_to_stream): changed decl to fit CRLFunc. (_write_recipients_to_stream): calls camel_recipient_foreach_recipient_type now. * camel/camel-recipient.c (camel_recipient_foreach_recipient_type): new convinience function. Iterate over all recipient types. * camel/gmime-utils.c (gmime_write_header_table_to_stream): s/write_header_table_to_stream/gmime_write_header_table_to_stream/ (gmime_write_header_with_glist_to_stream): s/write_header_with_glist_to_stream/gmime_write_header_with_glist_to_stream/ svn path=/trunk/; revision=1167
* now use CamelRecipientTablebertrand1999-09-011-1/+1
| | | | | | | | | | | | | | | | | 1999-09-01 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-mime-message.c (_finalize): (_add_recipient): (_remove_recipient): (_get_recipients): now use CamelRecipientTable * camel/gmime-content-field.c: (gmime_content_field_unref): test if object to free is non void. Still are some bugs in camel-recipient.c svn path=/trunk/; revision=1152
* When using g_free (obj) don't test if obj != NULL g_free () already dobertrand1999-09-011-16/+17
| | | | | | | | | | | | | | | | | | | | | | | | 1999-09-01 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-folder.c (_finalize): (_set_name): * camel/camel-mime-message.c (_finalize): * camel/camel-mime-part.c (_finalize): (_set_description): (_set_disposition): * camel/camel-service.c (_finalize): * camel/camel-stream-fs.c (_finalize): * camel/gmime-content-field.c: (gmime_content_field_construct_from_string): * camel/url-util.c (g_url_free): When using g_free (obj) don't test if obj != NULL g_free () already do that. Thanks to elerium for the feedback. 19 svn path=/trunk/; revision=1151
* Address updateBertrand Guiheneuf1999-08-301-1/+1
| | | | svn path=/trunk/; revision=1147
* text parameter declared constbertrand1999-08-291-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1999-08-28 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-mime-part.c (camel_mime_part_set_text): text parameter declared const * camel/camel-mime-part-utils.c (camel_mime_part_store_stream_in_buffer): actually test correctly nb_bytes_read_chunk is >0 * camel/gstring-util.c: * camel/gmime-content-field.c: * camel/providers/MH/camel-mh-folder.c: * camel/camel-stream-fs.c: include string.h * camel/camel-stream-mem.c (_write): return the numver of written bytes. * camel/camel-stream-buffered-fs.c (_eos): return sthg * camel/camel-stream.c (default_camel_seek): return something. * Started to work on new recipient code. * fixed various leaks. svn path=/trunk/; revision=1146
* contruct the content from the buffer before calling CamelMediumbertrand1999-08-261-6/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1999-08-26 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-mime-part.c (_get_content_object): contruct the content from the buffer before calling CamelMedium implementation. (_construct_from_stream): Do not construct the content by default, just store the content bytes in a temporary buffer. Content will be constructed only at caller request (when calling CamelMedium::get_content_object) Providers with better access to the messages (mbox/MH ...) will have to provider lighter implementation, that is shall not read content at all unless the caller asks for it (again with get_content). * camel/camel-mime-part-utils.c: new file, groups mime-part related utils. Meant to be used by providers subclassing MimeMessage. (camel_mime_part_construct_headers_from_stream): (camel_mime_part_construct_content_from_stream): no more useless temporary hash table. * camel/camel-mime-part.c (_construct_from_stream): calls mime-part-utils functions now. * camel/gmime-utils.c (_store_header_pair_from_string): do not use hash table to store header, use an array instead. svn path=/trunk/; revision=1145
* new file, groups mime-part related utils. Meant to be used by providersbertrand1999-08-261-65/+6
| | | | | | | | | | | | | | | | | | | | | | | | 1999-08-26 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-mime-part-utils.c: new file, groups mime-part related utils. Meant to be used by providers subclassing MimeMessage. (camel_mime_part_construct_headers_from_stream): (camel_mime_part_construct_content_from_stream): no more useless temporary hash table. * camel/camel-mime-part.c (_construct_from_stream): calls mime-part-utils functions now. * camel/gmime-utils.c (_store_header_pair_from_string): do not use hash table to store header, use an array instead. * MimePart cleanup. Not complete yet. Content must not be parsed when constructing but only when content object is requested. Default implementation will keep content in a stream. svn path=/trunk/; revision=1144
* now descend from CamelMedium.bertrand1999-08-261-138/+97
| | | | | | | | | | | 1999-08-25 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-mime-part.c: now descend from CamelMedium. * tests/test1.c (main): all headers must be strdup'ed (main): unref created objects svn path=/trunk/; revision=1143
* these methods are in CamelMedium now.bertrand1999-08-251-0/+4
| | | | | | | | | | | | 1999-08-25 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-medium.c (_set_content_object): (_get_content_object): these methods are in CamelMedium now. Going to revamp MimePart soon so that it inherits from CamelMedium. svn path=/trunk/; revision=1141
* new class. Will handle all sort of information media (Mime mail messages,bertrand1999-08-251-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1999-08-24 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-medium.c (camel_medium_class_init): new class. Will handle all sort of information media (Mime mail messages, Lotus Notes mail messages, postit notes, faxes, who knows .... :) CamelMimePart will inherit from it. * camel/camel-mime-part.c (_set_disposition): (_set_description): description and disposition parameters are now const. * camel/gmime-content-field.c (gmime_content_field_free): added assertion code. * camel/providers/MH/camel-mh-folder.c (_get_message): uses buffered stream. * camel/camel-stream-buffered-fs.c: new stream to accelerate file ops. Thanks to jwz, I've decided to add a level of abstraction to Camel. In the future, it should be able to handle other mail systems, but also non-mail information vehicles. Enough for today. Roller time! svn path=/trunk/; revision=1140
* implemented destructors.bertrand1999-08-111-13/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | 1999-08-11 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-multipart.c (_finalize): * camel/camel-simple-data-wrapper.c (_finalize): * camel/camel-mime-part.c (_finalize): implemented destructors. * camel/gmime-content-field.c (gmime_content_field_ref): (gmime_content_field_unref): New reference mechanism for GMimeContentField objects. * camel/camel-data-wrapper.c (_finalize): Started implementing destructors. * camel/camel-mime-part.c (_construct_from_stream): * camel/gmime-content-field.c (gmime_content_field_write_to_stream): * camel/camel-multipart.c (_construct_from_stream): removed forgotten anarchic traces. Go away memory leaks! svn path=/trunk/; revision=1103
* There is a probleme here. We can not allow mime part content-type fieldBertrand Guiheneuf1999-08-031-3/+11
| | | | | | | | | | | | | | | | | | * camel/camel-mime-part.c (_set_content_object): There is a probleme here. We can not allow mime part content-type field and content_object mime-type to be different. I thus chosed to set mime part object content field to be freed (if necessary) and set to be a pointer to content_object mime type field. (_construct_from_stream): set content_object mime type to be the same as mime_part's one. This is necessary because we use _set_content_type. This two things are a bit hackish ansd may need to be redesigned. svn path=/trunk/; revision=1071
* Multipart Mime message parsing works with plain text parts. Woohooo :))))bertrand1999-08-031-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Making it work with other types is now just a matter of writing the various data wrappers. And display them will just be a matter of writing the good bonobo components. 1999-08-03 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-simple-data-wrapper.c (_construct_from_stream): more debugging output + nb_bytes_read is now a signed int to avoid bug when eos is encountered. * camel/camel-mime-part.c (_construct_from_stream): sync to data_wrapper_repository function name changes. Use default "text/plain" type when conten-type field is not found. (following RFC 2046 spec). * camel/data-wrapper-repository.c (data_wrapper_repository_set_data_wrapper_type): (data_wrapper_repository_get_data_wrapper_type): change function name prefix (s/data_wrapper/data_wrapper_repository/) * camel/camel-multipart.c (_read_part): add `\n` at eol but not before boundary. * camel/gmime-utils.c (get_header_table_from_stream): correct implementation of end of stream detection. svn path=/trunk/; revision=1070
* Update logs and sync home/work versions.Bertrand Guiheneuf1999-08-031-1/+0
| | | | | | | | | | | | | | | | | | | | | | | * camel/camel-multipart.c (_read_part): use a stream to store the part instead of GString. * camel/camel-mime-part.c (camel_mime_part_set_text): set data wrapper content type to "text/plain". * camel/camel-stream-mem.c: * camel/camel-stream-mem.h: new memory buffer based stream. * camel/camel-stream-fs.c (_seek): implementation for file system based stream. * camel/camel-stream.c (camel_stream_seek): new method. * camel/camel-stream-fs.c (camel_stream_fs_class_init): pass CamelStreamFsClass instead of CamelStreamClass. svn path=/trunk/; revision=1069
* sync before going homeBertrand Guiheneuf1999-08-021-1/+3
| | | | svn path=/trunk/; revision=1064
* merge a lot of work. Rough ChangeLog will followBertrand Guiheneuf1999-08-011-153/+245
| | | | svn path=/trunk/; revision=1052
* Implemented base64 encoder based on CamelStreams. Should theMiguel de Icaza1999-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1999-07-13 Miguel de Icaza <miguel@gnu.org> * camel/gmime-base64.c (gmime_encode_base64): Implemented base64 encoder based on CamelStreams. Should the encoder/decoder be a Stream itself? * camel/gmime-utils.c: include config.h here. * camel/url-util.c: ditto. * camel/gstring-util.c: ditto. * camel/gmime-content-field.c: ditto. * camel/camel-stream.c: ditto. * camel/camel-stream-fs.c: ditto. * camel/camel-store.c: ditto. * camel/camel-simple-data-wrapper.c: ditto. * camel/camel-session.c: ditto. * camel/camel-service.c: ditto. * camel/camel-mime-part.c: ditto. * camel/camel-mime-message.c: ditto. * camel/camel-log.c: ditto. * camel/camel-data-wrapper.c: ditto * camel/camel-folder.c: ditto. * camel/camel-stream.c (camel_stream_write): Moved api documentation to the places that they document. (camel_stream_class_init): Virtual classes do not need to have a default implementation. So null them all. (camel_stream_write): Return value from write. (camel_stream_available): implement. (camel_stream_write_strings): documented. * devel-docs/query/virtual-folder-in-depth.sgml: Small reformatting 1999-06-28 bertrand <Bertrand.Guiheneuf@inria.fr> * tests/test2.c (main): now use CamelDataWrapper::contruct_form_stream to test svn path=/trunk/; revision=1024
* now use CamelDataWrapper::contruct_form_stream to test message parsingbertrand1999-06-291-0/+37
| | | | | | | | | | | | | | | | | 1999-06-28 bertrand <Bertrand.Guiheneuf@inria.fr> * tests/test2.c (main): now use CamelDataWrapper::contruct_form_stream to test message parsing * camel/camel-data-wrapper.c: * camel/camel-data-wrapper.h: construct_from_stream no longer has maximimum size arg. * camel/camel-mime-part.c (_construct_from_stream): new. Construct the mime_part from a stream. svn path=/trunk/; revision=1003
* new field (content_type) and associated methods. (camel_mime_part_init):bertrand1999-06-281-23/+58
| | | | | | | | | | | | | | | | | | | 1999-06-28 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-mime-part.c: new field (content_type) and associated methods. (camel_mime_part_init): initialize content_type field. (_parse_header_pair): now set content_type MimePart field instead of using DataWrapper Mime typing facility. 1999-06-28 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-data-wrapper.h: s/content_type/mime_type/ 1 svn path=/trunk/; revision=1002
* new class. Simple implementation of a data wrapper: simply keeps thebertrand1999-06-251-2/+2
| | | | | | | | | | | | | 1999-06-24 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-simple-data-wrapper.[ch]: new class. Simple implementation of a data wrapper: simply keeps the stream result in a byte array. * camel/camel-mime-part.c (_parse_header_pair): added a warning. Have to think about the correct way to store content type stuff. svn path=/trunk/; revision=995
* moved all the content-type stuff here. (camel_data_wrapper_init):bertrand1999-06-231-37/+7
| | | | | | | | | | | | | | | | 1999-06-22 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-data-wrapper.c (_get_content_type): moved all the content-type stuff here. (camel_data_wrapper_init): initialize the instance content-type field. * camel/camel-mime-part.c (_parse_header_pair): parse Content-Type stuff in header. (_write_to_stream): write the content type stuff to the stream. svn path=/trunk/; revision=985
* new function, returns "type/subtype" mime type string.bertrand1999-06-221-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * camel/gmime-content-field.c (gmime_content_field_get_mime_type): new function, returns "type/subtype" mime type string. (gmime_content_field_construct_from_string): new function, construbt a content_field object form a string. be used to set the mime_type from a string. * camel/camel-mime-part.c (_set_content_type): (camel_mime_part_set_content_type): (_get_content_type): (_get_content_type): new methods. 1999-06-21 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/gmime-utils.c (get_header_table_from_stream): replace CR/LF+'\t' with ' ' * camel/camel-mime-message.c (_set_recipient_list_from_string): trim \t when splitting * camel/gmime-utils.c (get_header_table_from_file): corrected bug in scanning tabulations ('t' -> '\t') * tests/test2.c (main): read mail.test instead of mail1.test * camel/camel-mime-part.c (_add_header): added comments svn path=/trunk/; revision=984
* syncBertrand Guiheneuf1999-06-221-2/+21
| | | | svn path=/trunk/; revision=983
* Commit of all Netherlands changes.Bertrand Guiheneuf1999-06-191-20/+32
| | | | | | | | All mime stuff uses streams now, and it still works. Bertrand svn path=/trunk/; revision=981
* More header parsing code.bertrand1999-05-291-5/+59
| | | | | | | | | | | 1999-05-28 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-mime-part.c (_parse_header_pair): (_init_header_name_table): More header parsing code. svn path=/trunk/; revision=953
* syncBertrand Guiheneuf1999-05-281-3/+48
| | | | svn path=/trunk/; revision=949
* new func. Parses message header zone and returns a Glist of all headerbertrand1999-05-271-2/+5
| | | | | | | | | | | | | | | 1999-05-26 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/gmime-utils.c (get_header_lines_from_file): new func. Parses message header zone and returns a Glist of all header lines. * tests/test2.c: tests message parsing * camel/gmime-utils.c (write_header_table_to_file): new func to write a table of headers. svn path=/trunk/; revision=948
* test if content exists before calling its write_to method.bertrand1999-05-201-1/+1
| | | | | | | | | | | | | 1999-05-19 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-mime-part.c (_write_to_file): test if content exists before calling its write_to method. * camel/camel-mime-message.c (_write_to_file): bugs fix. First test of mime_message framework. svn path=/trunk/; revision=934
* testsBertrand Guiheneuf1999-05-191-1/+2
| | | | | | | | | * tests/test1.c (main): tests * camel/camel-mime-message.c (_write_to_file): started write_to framework for mime_messages svn path=/trunk/; revision=931
* create recipients hash table (_remove_recipient): (_add_recipient):Bertrand Guiheneuf1999-05-141-1/+8
| | | | | | | | | | | | | | | * camel/camel-mime-message.c (camel_mime_message_init): create recipients hash table (_remove_recipient): (_add_recipient): (_get_recipients): new funcs. Internal Recipients data structure is a bit complicated though. * camel/camel-mime-part.c (camel_mime_part_init): create headers hash table svn path=/trunk/; revision=924
* disposition is now a full GMimeContentField object.Bertrand Guiheneuf1999-05-131-5/+42
| | | | | | | | | | | | | | | | | | | * camel/camel-mime-part.h (struct ): disposition is now a full GMimeContentField object. * camel/gmime-content-field.c: new file handle "type/subtype ;parameter=value ; parameter=value ..." BNF grammar elements (gmime_content_field_write_to_file): new func * camel/gmime-utils.c (gmime_write_header_pair_to_file): namespace change Some work on mime stuff. Mime part can save itself into a file. This stuff is boring. svn path=/trunk/; revision=921
* overload wrapper class method. (_write_to_file): start to write some textbertrand1999-05-121-1/+35
| | | | | | | | | | | 1999-05-11 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-mime-part.c (_write_to_file): overload wrapper class method. (_write_to_file): start to write some text in file. svn path=/trunk/; revision=904
* static functions naming follows gnome coding style guide.bertrand1999-05-121-57/+57
| | | | | | | | | | | | | | 1999-05-11 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-store.c: * camel/camel-service.c: * camel/camel-folder.c: * camel/camel-data-wrapper.c: * camel/camel-mime-part.c: static functions naming follows gnome coding style guide. svn path=/trunk/; revision=902
* implemented public interfacesBertrand Guiheneuf1999-05-111-1/+155
| | | | | | | | 1999-05-11 Bertrand Guiheneuf <Bertrand.Guiheneuf@inria.fr> * camel/camel-mime-part.h: implemented public interfaces svn path=/trunk/; revision=901
* A bunch of new set/get func.Bertrand Guiheneuf1999-05-111-0/+176
| | | | | | | | | | | | | | | | | | | | | | 1999-05-10 Bertrand Guiheneuf <Bertrand.Guiheneuf@inria.fr> * camel/camel-mime-part.c (__camel_mime_part_get_header_lines): (__camel_mime_part_set_header_lines): (__camel_mime_part_get_content_languages): (__camel_mime_part_set_content_languages): (__camel_mime_part_get_encoding): (__camel_mime_part_set_encoding): (__camel_mime_part_get_content_MD5): (__camel_mime_part_set_content_MD5): (__camel_mime_part_get_content_id): (__camel_mime_part_set_content_id): A bunch of new set/get func. * camel/gstring-util.c (g_string_list_free): convenience function for string list complete deallocation. svn path=/trunk/; revision=900
* new methodbertrand1999-05-101-0/+18
| | | | | | | | | | | | 1999-05-09 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-mime-part.c (__camel_mime_part_add_header): new method * camel/camel-mime-part.h (struct CamelMimePart): added core fields. svn path=/trunk/; revision=899
* new class. models a mime mail part.bertrand1999-05-091-0/+75
1999-05-08 bertrand <Bertrand.Guiheneuf@inria.fr> * camel/camel-mime-part.[ch]: new class. models a mime mail part. svn path=/trunk/; revision=894