aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-format.c
Commit message (Collapse)AuthorAgeFilesLines
* New function to return if user wants to view message source.Jeffrey Stedfast2000-11-221-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-21 Jeffrey Stedfast <fejj@helixcode.com> * mail-config.c (mail_config_view_source): New function to return if user wants to view message source. (mail_config_set_view_source): New function to set whether the view wants to view source. * mail-ops.c (mail_do_view_message_sources): Removed. We're not gonna view-source this way anymore. * folder-browser-factory.c: Removed the ViewSource bonobo verb from the Message menu. (control_activate): Added ViewSource. * folder-browser.c (on_right_click): Removed Message menu item to view message source. (folder_browser_toggle_view_source): New callback to set whether or not the MailDisplay shows the raw message or the pretty-ified message. * mail-callbacks.c: Removed view_source. * mail-display.c (redisplay): If toggle_raw is set then display the raw message else display the pretty formatted message. (mail_display_redisplay): New function to force the redisplay of a message. * mail-format.c (mail_format_raw_message): New function to write the raw message data. svn path=/trunk/; revision=6639
* Use the new quote_message function and make it start with "On %s, %sJeffrey Stedfast2000-11-181-52/+12
| | | | | | | | | | | | | | | | | 2000-11-17 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (mail_generate_reply): Use the new quote_message function and make it start with "On %s, %s wrote:" since people seem to want that. * mail-ops.c (cleanup_forward_messages): Use the new quote_message function. * mail-tools.c (mail_tool_quote_message): New convenience function to quote a message body (since both the reply and forward code do similar quoting) svn path=/trunk/; revision=6605
* likewiseRadek Doulik2000-11-091-1/+1
| | | | | | | | | | | 2000-11-08 Radek Doulik <rodo@helixcode.com> * mail-format.c (mail_generate_reply): likewise * mail-callbacks.c (create_msg_composer): added send_html arg to e_msg_composer_new_with_sig_file call svn path=/trunk/; revision=6511
* God, I sure wish people would listen when i'm saying i'm changing and API.Not Zed2000-11-071-115/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-07 Not Zed <NotZed@HelixCode.com> * mail-display.c (on_object_requested): God, I sure wish people would listen when i'm saying i'm changing and API. I mean I even mailed everyone and everything. Can't see any changelog either. 2000-11-06 Not Zed <NotZed@HelixCode.com> * mail-autofilter.c (rule_from_message): Updates for api changes. * mail-tools.c (mail_tool_generate_forward_subject): Fixed for api changes. Sigh, whoever wrote the multithread code of the mailer, had little idea. You can't just lock for getting a const value, until you are finished with it, cause the owner still owns it. Fixed this too. Yuck, what a horrid forwarding format, can we change this, or make it configurable? The mail headers show who forwarded it, we dont need to duplicate it in that UGLY subject. * mail-format.c (write_field_to_stream): Removed some jeffness. dont g_strdup stuff we dont need to, and remove the value_is_encoded thing since we can get the unencoded address now. (write_address): New function to write an address field. (write_headers): Uses write_address to write addresses, cleaner, fixed the god-awful unreadable indenting too. (handle_text_plain): Use a 'smarter' printf format, so we dont need to allocate and copy substrings unecessarily (esp since they're about to be allocated any copied another few times anyway *sigh*). (write_field_to_stream): Commented out the isprint check, which afaik serves no purpose. (list_add_addresses): New function to build a list of display-ready addresses. Although I think the composer then uses these as internet-ready addresses. It should probably take a list of CamelAddress's if thats what it wants. (mail_generate_reply): Cleaned up the address list creation stuff a heap, and fixes for camel api changes. Also fixed a small memory leak as a side effect (fulladdr wasn't freed if it was the same as the sender). * mail-display.c (on_object_requested): Changed for interface changes to the from address. I think passing the encoded (internet version) of the address is right here. svn path=/trunk/; revision=6475
* Added new header files.Jeffrey Stedfast2000-11-041-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-03 Jeffrey Stedfast <fejj@helixcode.com> * Makefile.am: Added new header files. * component-factory.c (owner_set_cb): s/session_init/mail_session_init * session.c: Renamed public functions to mail_session_*. FIXME: Rename session.c to mail-session.c * folder-browser-factory.c: #include "mail-callbacks.h", #include "mail-session.h" and replace forget_passwords with mail_session_forget_passwords * mail.h: Move session prototypes to mail-session.h, Move mail-crypto prototypes to mail-crypto.h, Move mail-callback prototypes to mail-callbacks.h * mail-session.h: New header file containing public prototypes for session.c * mail-format.c: #include "mail-crypto.h" * mail-view.c: * folder-browser.c: #include "mail-callbacks.h" * mail-crypto.h: New header file containing public prototypes for mail-crypto.c * mail-callbacks.h: New header file containing public prototypes for mail-callbacks.c * message-list.c (message_list_get_layout): Set useful defaults. (message_list_setup_etable): Don't set the Outbox defaults on a folder just because it doesn't have a corresponding saved file. svn path=/trunk/; revision=6372
* ** Merged in camel-incremental-branch.Not Zed2000-11-021-3/+2
| | | | | | | | | | | | | 2000-11-02 Not Zed <NotZed@HelixCode.com> ** Merged in camel-incremental-branch. * mail-format.c (mail_get_message_body): Jeff! Sigh. We should definetly not be strduping the content, it has already been copied and duplicated. Look at get_data_wrapper_text. svn path=/trunk/; revision=6337
* Shouldn't we be strdup'ing the content? This seems to fix the memoryJeffrey Stedfast2000-11-011-22/+21
| | | | | | | | | | | | | 2000-10-31 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (mail_get_message_body): Shouldn't we be strdup'ing the content? This seems to fix the memory corruption problems. (mail_generate_reply): Make sure that the last char in the generated reply text is '\0' (when bodt text doesn't end with a \n, a random char will appear otherwise). svn path=/trunk/; revision=6306
* lots of i18n fixesDan Winship2000-10-241-20/+28
| | | | svn path=/trunk/; revision=6143
* Get the MailConfigIdentity *before* we create a new composer object soJeffrey Stedfast2000-10-191-4/+4
| | | | | | | | | | 2000-10-19 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (mail_generate_reply): Get the MailConfigIdentity *before* we create a new composer object so that we can set the signature file. svn path=/trunk/; revision=6026
* Decode recipient names so that they display nicely in the To and CcJeffrey Stedfast2000-10-171-23/+37
| | | | | | | | | | | | | | | 2000-10-16 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (mail_generate_reply): Decode recipient names so that they display nicely in the To and Cc fields. (write_field_to_stream): Now takes another argument 'value_is_encoded' so that we know if we should decode that string before proceding onward. Since the message subject is already decoded before it's passed in, we don't want to decode it again (wasted cpu time and/or any 8bit chars will be assumed to be latin1 encoded and thus the decoded value will be corrupt). svn path=/trunk/; revision=5955
* make sure we dup the return value of get_reply_to or get_from whenLarry Ewing2000-10-111-2/+4
| | | | | | | | | 2000-10-10 Larry Ewing <lewing@helixcode.com> * mail-format.c (mail_generate_reply): make sure we dup the return value of get_reply_to or get_from when building the recipient list. svn path=/trunk/; revision=5829
* New widget, full search dialogue for mail.Not Zed2000-10-091-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-06 Not Zed <NotZed@HelixCode.com> * mail-search-dialogue.c: New widget, full search dialogue for mail. * folder-browser.c (search_set): If we click on custom search, run the full search dialogue. (folder_browser_gui_init): Add a button to perform a full search. (search_full): Bring up the mail search dialogue asynchronously. (search_full_clicked): Handle search options. (folder_browser_destroy): Free the saved rule if there is one there. (search_options[]): Added a custom option option - brings up the full search dialogue. (search_set): Disable the search entry if we are doing a full search. * mail-vfolder.c (vfolder_create_storage): Yay, finally depeterised this stuff. (vfolder_uri_to_folder): Removed an irrelevant comment. * mail-callbacks.c (filter_edit): And here. * mail-ops.c (do_fetch_mail): And here too. * mail-autofilter.c (filter_gui_add_from_message): Fixed call to context_load. (filter_gui_add_for_mailing_list): And here too. * folder-browser-factory.c (create_ondemand_hooks): Remove that ondemand callback snot. 2000-10-05 Not Zed <NotZed@HelixCode.com> * message-list.c (message_list_init_etable): Build the etable once we know what folder we are going to use. (save_header_state): Save the header spec to a cache file. (message_list_destroy): Save the header spec. (message_list_setup_etable): Setup the etable spec for this folder, from a saved version if one exists, or to suit the folder type (sent/received). (message_list_set_folder): Setup the etable here once we have a folder. svn path=/trunk/; revision=5798
* Decode the header before writing it to the header box.Jeffrey Stedfast2000-10-061-2/+6
| | | | | | | | | | | | 2000-10-05 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (write_field_to_stream): Decode the header before writing it to the header box. * mail-callbacks.c (send_receieve_mail): fetch mail before sending, this is a temp fix for POP-before-SMTP authentication. svn path=/trunk/; revision=5759
* Add print preview verb here.Miguel de Icaza2000-09-301-0/+1
| | | | | | | | | | | | | 2000-09-29 Miguel de Icaza <miguel@helixcode.com> * folder-browser-factory.c: Add print preview verb here. * mail-callbacks.c (do_mail_print): Handle printing here, the complete engine. (mail_print_preview_msg): new. does print previewing. (mail_print_msg): does printing of the message. svn path=/trunk/; revision=5641
* Fixed some memory leakage. Call free_recipients() so we don't leak memory.Jeffrey Stedfast2000-09-221-3/+13
| | | | | | | | | 2000-09-21 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (mail_generate_reply): Fixed some memory leakage. Call free_recipients() so we don't leak memory. svn path=/trunk/; revision=5542
* Deal with NULL composer.Dan Winship2000-09-191-3/+4
| | | | | | | | | | * mail-callbacks.c (create_msg_composer, compose_msg, send_to_url, mail_reply, forward_msg): * mail-format.c (mail_generate_reply): * mail-ops.c (cleanup_edit_messages): * mail-view.c (view_forward_msg): Deal with NULL composer. svn path=/trunk/; revision=5502
* Another big rewrite of this stuff. Now all (well, most) attachments get aDan Winship2000-09-121-267/+254
| | | | | | | | | | | | | | * mail-display.c, mail-format.c: Another big rewrite of this stuff. Now all (well, most) attachments get a small icon with a description and a (non-obvious) right-click pop-up menu with options to save, open in an external program, or show/hide inline. TODO: antialias the icon, add more options to the pop-up for certain MIME types, add an icon to the headers, fix PGP to work like everything else, fix message/external-body to work again, add some icon caching action, etc, etc. svn path=/trunk/; revision=5326
* I changed the Reply-All behavior so that the sender's address doesJesse Pavel2000-09-081-2/+10
| | | | | | not appear in the cc: field. svn path=/trunk/; revision=5246
* camel_mime_part_get_filename now deals with both Content-Disposition andDan Winship2000-09-061-5/+1
| | | | | | | | | | * mail-display.c (make_safe_filename): * mail-format.c (handle_mystery): * mail-identify.c (mail_identify_mime_part): camel_mime_part_get_filename now deals with both Content-Disposition and Content-Type. svn path=/trunk/; revision=5215
* Applied Jesse's patch that will append a signature to the replied messageJeffrey Stedfast2000-09-041-21/+26
| | | | | | | | | | | | | 2000-09-04 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (mail_generate_reply): Applied Jesse's patch that will append a signature to the replied message text * folder-browser-factory.c: Changed "Send & Receieve" back to "Get Mail" temporarily so that the toolbar buttons don't all get stretched to some weird proportion svn path=/trunk/; revision=5191
* Plug mem leaks.Peter Williams2000-08-171-1/+2
| | | | svn path=/trunk/; revision=4854
* Fix some freed-memory referencesDan Winship2000-08-141-12/+12
| | | | | | * mail-format.c (add_url): Fix some freed-memory references svn path=/trunk/; revision=4806
* Redo this so that the lock icon remains active after a failed decryptionDan Winship2000-08-131-17/+25
| | | | | | | | | | * mail-format.c (decode_pgp): Redo this so that the lock icon remains active after a failed decryption so you can click on it and try again. (try_inline_pgp, handle_multipart_encrypted): Put a border around the decrypted data. svn path=/trunk/; revision=4790
* Remove workaround for gnome-vfs 0.2 bug.Dan Winship2000-08-121-3/+0
| | | | | | | | | | * mail-identify.c: Remove workaround for gnome-vfs 0.2 bug. * mail-format.c (lookup_handler): Remove workaround for function introduced between gnome-vfs 0.2 and 0.3, since we depend on 0.3 now. svn path=/trunk/; revision=4777
* Fixed a warning.Christopher James Lahey2000-08-121-0/+1
| | | | | | | | 2000-08-11 Christopher James Lahey <clahey@helixcode.com> * mail-format.c, mail-tools.h, message-list.c: Fixed a warning. svn path=/trunk/; revision=4760
* Redo this again. Get rid of struct mail_format_data and move most of thatDan Winship2000-08-121-235/+211
| | | | | | | | | | | | | | * mail-display.c, mail-format.c: Redo this again. Get rid of struct mail_format_data and move most of that info into MailDisplay itself, and pass the MailDisplay around. Add a GData** to MailDisplay, and put the urls hash table into that. Also add the ability to redisplay the currently-displayed message (with the same GData**), and add a "show_pgp" datum to it that controls whether or not to decrypt PGP messages, and redo the PGP stuff (again) to take that into account. Now you don't get the annoying PGP password dialog box without any warning. svn path=/trunk/; revision=4757
* Update this for CamelObject (try_inline_pgp): Deal with decrypting hereDan Winship2000-08-121-61/+58
| | | | | | | | | | | | | | | | | | | * mail-format.c (destroy_part): Update this for CamelObject (try_inline_pgp): Deal with decrypting here rather than trying to pawn the data off to handle_multipart_encrypted, since it most likely won't be correct (won't have the proper MIME headers inside the encrypted part). (handle_multipart_encrypted): Add code from Nathan Thompson-Amato to re-MIME-parse the decrypted data after decrypting. * mail-crypto.c (mail_crypto_openpgp_{de,en}crypt): Get the password here rather than having it passed in. Remove some dead code. * session.c (mail_request_dialog): Allow this to work in either a sync or an async context. svn path=/trunk/; revision=4751
* Fix the camel-folder's thaw handler. Implement event forwarding into the ↵Peter Williams2000-08-121-0/+3
| | | | | | main thread. svn path=/trunk/; revision=4744
* Check nrow, not srow.JP Rosevear2000-08-121-3/+1
| | | | | | | | 2000-08-11 JP Rosevear <jpr@helixcode.com> * mail-config-gui.c (news_edit_clicked): Check nrow, not srow. svn path=/trunk/; revision=4738
* Don't call e_setup_base_dir. It was wrong and it doesn't exist any more.Dan Winship2000-08-111-1/+0
| | | | | | | | | | | | | | | | | | | * session.c (session_init): Don't call e_setup_base_dir. It was wrong and it doesn't exist any more. * component-factory.c (owner_set_cb): Update for changed prototype, and record the evolution_homedir. Move call to mail_config_init here from session.c so it happens after evolution_dir is initialized. * mail.h: define "extern char *evolution_dir;" (formerly in e-util/e-setup.h) * component-factory.c, mail-callbacks.c, mail-config-gui.c, mail-config.c, mail-display.c, mail-format.c, mail-ops.c, mail-tools.c, session.c: Remove "e-util/e-setup.h" include. svn path=/trunk/; revision=4712
* Merge with camel-async.Peter Williams2000-08-111-24/+42
| | | | svn path=/trunk/; revision=4687
* Fixed some warnings.Christopher James Lahey2000-08-091-1/+2
| | | | | | | | | | | 2000-08-09 Christopher James Lahey <clahey@helixcode.com> * mail-display.c, mail-format.c, mail-ops.c: Fixed some warnings. * message-list.c: Fix the call to e_popup_menu_run to match the new signature. svn path=/trunk/; revision=4634
* Fix some compiler warnings.Dan Winship2000-08-091-3/+4
| | | | | | | * mail-crypto.c, mail-format.c, message-thread.c: Fix some compiler warnings. svn path=/trunk/; revision=4615
* Fix up format of addresses. (write_headers): Use CamelAddress functions toDan Winship2000-08-091-51/+33
| | | | | | | * mail-format.c (mail_generate_reply): Fix up format of addresses. (write_headers): Use CamelAddress functions to simplify this. svn path=/trunk/; revision=4606
* Get rid of kludge around subject beginning with spaces.Jeffrey Stedfast2000-08-081-5/+2
| | | | | | | | | | | | | | | 2000-08-07 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (write_headers): Get rid of kludge around subject beginning with spaces. (mail_generate_reply): Get rid of kludge around subject beginning with spaces and also use g_strncasecmp instead of strncasecmp for portability * mail-ops.c (forward_msg): Get rid of kludges around subject beginning with spaces. svn path=/trunk/; revision=4572
* Renamed from reply_body() so other functions can use itJeffrey Stedfast2000-08-071-8/+7
| | | | | | | | | | | | 2000-08-07 Jeffrey Stedfast <fejj@helixcode.com> * mail-format.c (mail_get_message_body): Renamed from reply_body() so other functions can use it (mail_generate_reply): Updated to reflect function name changes * mail-ops.c (real_edit_msg): Attach a callback to the send signal svn path=/trunk/; revision=4564
* New code to spawn off GPG/PGP to do stuff. Currently only deals withDan Winship2000-08-021-60/+354
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * mail-crypto.c: New code to spawn off GPG/PGP to do stuff. Currently only deals with decryption. From Nathan Thompson-Amato <ndt@jps.net>, with bunches of changes from me. * session.c (mail_request_dialog): Expose the password dialog to the rest of the app (for use by the GPG/PGP code). * mail-format.c (handle_text_plain): Handle special inline data types. (Currently uuencoding, BinHex, and PGP encryption.) This is not the best way to deal with it, but it works for now. (try_inline_pgp): Convert an inline PGP-encrypted message into a multipart/encrypted part. (try_inline_binhex): Convert an inline BinHex attachment into an application/mac-binhex40 part (which we currently don't deal with...) (try_uudecoding): Convert a uuencoded attachment to an application/octet-stream part. (handle_multipart_encrypted): Deal with RFC2015 MIME-encoded PGP encrypted messages. (From ndt.) * mail-display.c (mail_text_write, mail_error_write): New utility functions. * Makefile.am (evolution_mail_SOURCES): add mail-crypto.c svn path=/trunk/; revision=4466
* New function to create composer with sig file set.JP Rosevear2000-07-291-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-07-28 JP Rosevear <jpr@arcavia.com> * e-msg-composer.c (e_msg_composer_new_with_sig_file): New function to create composer with sig file set. (e_msg_composer_get_sig_file): New function to get sig file (e_msg_composer_set_sig_file): New function to set sig file 2000-07-29 JP Rosevear <jpr@arcavia.com> * mail-format.c (mail_generate_reply): Use new mail config stuff * component-factory.c (create_imap_storage): Use new mail config stuff (create_news_storage): ditto * evolution-mail.schemas: Gconf schema for evolution mail * mail-config-druid.glade: Gladification of config druid * mail-config.h: New header with config structs. * mail-config.c: Rewrite of GUI configuration tools to use new config structs. Stores multiple identities and sources now. Still only uses the first one found. (mail_config_fetch): Returns MailConfig struct to caller for configuration queries. (mail_config): Renamed function to show mail config dialog. (mail_config_druid): Renamed function to show mail config druid. * mail-ops.c (create_msg_composer): Use e_msg_composer_new_with_sig_file and new config stuff (check_configured): Use new config stuff (fetch_mail): ditto (composer_send_cb): ditto svn path=/trunk/; revision=4413
* Update for OAF and for external apps as well as components.Dan Winship2000-07-261-16/+65
| | | | | | | | | | | | | | | | * mail-format.c (lookup_handler): Update for OAF and for external apps as well as components. (handle_via_external): Handler to set up for data that can be displayed by an external application. * mail-display.c (on_link_clicked, etc): Refactor the save_data() code and add launch_external() as a handler for x-evolution-external URLs. (embeddable_destroy_cb): Remove this, since it seems like it's all wrong. (on_object_requested): Update for OAF, and fix some bugs. svn path=/trunk/; revision=4343
* put a <p> at the end of the header table. (I think there used to beDan Winship2000-07-151-4/+7
| | | | | | | | | | | | * mail-format.c (write_headers): put a <p> at the end of the header table. (I think there used to be whitespace after it, but then some gtkhtml change got rid of it...) (handle_text_plain): Don't do this <PRE>. Instead, CONVERT_NL and CONVERT_SPACES and wrap it in <TT>. Now if the sender didn't include any newlines, it will be wrapped to the width of the window instead of extending off into infinity. svn path=/trunk/; revision=4168
* add "message/news" to the mime_function_table using the same handler asChris Toshok2000-07-131-0/+2
| | | | | | | | | 2000-07-12 Chris Toshok <toshok@helixcode.com> * mail-format.c (setup_function_table): add "message/news" to the mime_function_table using the same handler as message/rfc822. svn path=/trunk/; revision=4122
* Deal with having multiple selected messages.Dan Winship2000-07-091-45/+0
| | | | | | | | | | * mail-ops.c (forward_msg): Deal with having multiple selected messages. * mail-format.c (mail_generate_forward): Removed. (Integrated into forward_msg) svn path=/trunk/; revision=3982
* Use the gnomevfs sniff buffer interface to try to identify the MIME typeDan Winship2000-07-061-5/+6
| | | | | | | | | | | | | | * mail-identify.c (mail_identify_mime_part): Use the gnomevfs sniff buffer interface to try to identify the MIME type when everything else fails. * mail-display.c (on_object_requested): * mail-format.c (lookup_handler, handle_undisplayable, handle_audio): s/gnome_mime/gnome_vfs_mime/ * Makefile.am: Add gnomevfs stuff svn path=/trunk/; revision=3893
* add default subjectsDan Winship2000-06-291-1/+16
| | | | | | * mail-format.c (mail_generate_forward): add default subjects svn path=/trunk/; revision=3784
* Get evolution-dir the right way in e-setup.hPeter Williams2000-06-221-2/+1
| | | | svn path=/trunk/; revision=3675
* Add missing declaration of `evolution_dir' to get it to compile.Ettore Perazzoli2000-06-211-0/+1
| | | | svn path=/trunk/; revision=3645
* add an option to prefer text/plain. (reply_body): add an option to preferDan Winship2000-06-201-13/+20
| | | | | | | | | | | * mail-format.c (find_preferred_alternative): add an option to prefer text/plain. (reply_body): add an option to prefer text/plain (mail_generate_reply): Check the mail sending preferences, and generate a text/plain reply if the user prefers to send plain text (and we have a text/plain part to generate a reply from). svn path=/trunk/; revision=3641
* Fix the subject generation so we don't get "Re: Re:". This is workingDan Winship2000-06-131-4/+9
| | | | | | | | * mail-format.c (mail_generate_reply): Fix the subject generation so we don't get "Re: Re:". This is working around something that may later be declared a misfeature in Camel. svn path=/trunk/; revision=3531
* Redo things a bit so that whitespace-only text parts aren't displayed. (InDan Winship2000-06-101-112/+136
| | | | | | | | | * mail-format.c: Redo things a bit so that whitespace-only text parts aren't displayed. (In particular, so that whitespace-only subparts of multipart/mixed aren't displayed as separate (empty) parts.) svn path=/trunk/; revision=3488
* Update for new composer attachment interface.Dan Winship2000-06-061-35/+10
| | | | | | | * mail-format.c (mail_generate_forward): Update for new composer attachment interface. svn path=/trunk/; revision=3431
* Fix forwarding to work for people other than me. :) [Although apparentlyDan Winship2000-06-021-1/+1
| | | | | | | | * mail-format.c (mail_generate_forward): Fix forwarding to work for people other than me. :) [Although apparently it doesn't really.] svn path=/trunk/; revision=3357
* use <blockquote> rather than <center><table border=1 width=95%> to frameDan Winship2000-06-021-3/+2
| | | | | | | | | | | * mail-format.c (handle_message_rfc822): use <blockquote> rather than <center><table border=1 width=95%> to frame the embedded message. If <pre> text in the subtable won't fit in the 95% width, GtkHTML will write past the border of the table (and <blockquote><table border=1> causes creeping updates so it's not usable for now). svn path=/trunk/; revision=3352
* Oops. This needs to take a message argument because we might be writingDan Winship2000-06-021-9/+10
| | | | | | | | * mail-format.c (write_headers): Oops. This needs to take a message argument because we might be writing headers for an embedded message/rfc822 subpart rather than the root document. svn path=/trunk/; revision=3343
* Fix up memory management of x-evolution-data URLs so the URLs and/or theirDan Winship2000-06-011-30/+26
| | | | | | | | | | | | | * mail-format.c (free_url, handle_text_enriched, get_url_for_icon): Fix up memory management of x-evolution-data URLs so the URLs and/or their data don't get freed while there are still references to them. * message-list.c (message_list_init_header): redo the (unused) online status column to no longer refer to pixmaps that no longer exist. svn path=/trunk/; revision=3320
* Initialize the "urls" hash table stored on the message and store cid andDan Winship2000-06-011-84/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | * mail-format.c (mail_format_mime_message): Initialize the "urls" hash table stored on the message and store cid and other URLs there rather than as object data on the message. (get_cid): rewrite this a bunch (handle_text_enriched): move the code from write_iframe_string() into here, since it's the only place that actually needs it. (handle_text_html): simplify this a lot. We can use a cid: URL here rather than x-evolution-data. (get_url_for_icon): New routine to return URLs for icons, and cache the results, so we don't have to keep re-reading the icon files (and so we can't be spoofed into reading non-icon files). (handle_mystery, handle_audio): use get_url_for_icon. * mail-display.c (save_data): move the CamelMimePart filename extracting code from get_cid to here. (on_link_clicked, on_object_requested): Update for cid: changes. (on_url_requested): Kill off the kludgy, exploitable x-gnome-icon URL schema, update cid and x-evolution-data to match mail-format.c. It should now be easier to implement RFC 2557 (Content-Location, etc), but that RFC still pretty much sucks. svn path=/trunk/; revision=3314
* Redo this back to the old way: a single GtkHTML with various things inlineDan Winship2000-05-311-301/+192
| | | | | | | | | | | | | | | | | | | | * mail-format.c: Redo this back to the old way: a single GtkHTML with various things inline in it. (Gets rid of flicker, simplifies some scrolling, selecting, and printing issues.) (handle_text_enriched, handle_text_html): Use <iframe>s for these, to protect the rest of the document from their possibily invalid HTML. (handle_via_bonobo): Use (new-and-improved) <object> tags for this, moving most of the work back into mail-display.c * mail-display.c (on_object_requested): Move the Bonobo embedding code back here again (reorganized a bit). (on_url_requested): add x-evolution-data handler, for iframe bodies. (mail_html_new, mail_html_end): removed (mail_display_set_message, mail_display_new): Update for NWO. svn path=/trunk/; revision=3312
* Use `foo@bar' rather than `<foo@bar>' for recipient with no name.Dan Winship2000-05-291-6/+12
| | | | | | | * mail-format.c (write_recipients_to_stream): Use `foo@bar' rather than `<foo@bar>' for recipient with no name. svn path=/trunk/; revision=3247
* Various improvements:Dan Winship2000-05-281-74/+262
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * mail-format.c: Various improvements: (call_handler_function, etc): Add a "mime_type" argument to the handlers, so that if a part is tagged as "application/octet-stream", and we figure out that it's really something else, the handler we call can know what that something else is. (handle_text_enriched): Small fixes to make this not do text/enriched-specific syntax in text/richtext or vice versa. (handle_mystery): Allow for mystery data that can't even be saved to disk. (ie, unrecognized external-body). Let the caller specify the URL to use. (handle_message_external_body): New function to deal with message/external-body parts. Generates URLs for anon-ftp, local-file, and URL access-types, and a more-useful-than-before descriptive message for other types. (handle_audio, handle_undisplayable): Use gnome_mime_get_value to try to get a description of the MIME type to display to the user rather than the raw form. (This will only work if the user has recent gnome-vfs installed. [If they don't, it works just like it used to.]) svn path=/trunk/; revision=3234
* Fix a bug (security/stability) in its usage of mail_html_write.Dan Winship2000-05-271-1/+1
| | | | | | | * mail-format.c (handle_text_html): Fix a bug (security/stability) in its usage of mail_html_write. svn path=/trunk/; revision=3227
* Update for PersistStream changesDan Winship2000-05-261-2/+5
| | | | | | | * mail-format.c (handle_via_bonobo): Update for PersistStream changes svn path=/trunk/; revision=3216
* Updated for the GtkHTML API changes. Also fixed some compilerEttore Perazzoli2000-05-211-9/+9
| | | | | | warnings here and there. svn path=/trunk/; revision=3145
* Fixes for stream stuff.NotZed2000-05-201-6/+5
| | | | | | | | | | 2000-05-19 NotZed <NotZed@HelixCode.com> * mail-format.c: Fixes for stream stuff. * mail-display.c (save_data_cb): Remove exception stuff on streams. svn path=/trunk/; revision=3143
* Use camel_data_wrapper_write_to_stream rather thanDan Winship2000-05-181-42/+15
| | | | | | | | | * mail-display.c (save_data_cb, save_data, on_url_requested): * mail-format.c (handle_text_plain_flowed, handle_text_html): Use camel_data_wrapper_write_to_stream rather than camel_data_wrapper_get_output_stream. svn path=/trunk/; revision=3113
* Removed usage of bonobo_object_destroy.Christopher James Lahey2000-05-171-3/+2
| | | | | | | | 2000-05-16 Christopher James Lahey <clahey@helixcode.com> * mail-format.c: Removed usage of bonobo_object_destroy. svn path=/trunk/; revision=3094
* Update for CamelStream CamelException changes.Dan Winship2000-05-091-9/+9
| | | | | | | | | | | | * mail-display.c (save_data_cb): (on_url_requested): Update for CamelStream CamelException changes. * mail-format.c: Pass NULL for a CamelException in a bunch of places... the user will see that the data is not being displayed, and there's not a lot we can do, and none of these things should be failing anyway. Maybe fix this later. svn path=/trunk/; revision=2925
* unref the message after displaying it.Dan Winship2000-05-081-4/+5
| | | | | | | | | | | * message-list.c (select_msg): unref the message after displaying it. * mail-format.c (get_data_wrapper_text): (handle_text_plain_flowed): (handle_via_bonobo): Replace camel_stream_close calls. svn path=/trunk/; revision=2883
* consolidate mail-format.h, mail-identify.h, mail-ops.h, main.h andDan Winship2000-05-071-3/+1
| | | | | | | | * mail.h: consolidate mail-format.h, mail-identify.h, mail-ops.h, main.h and session.h into this new file. There's no reason to have a .h for every .c. svn path=/trunk/; revision=2830
* Make the "Cc:" field optional again. (Before, we could check ifDan Winship2000-05-041-7/+9
| | | | | | | | | * mail-format.c (write_recipients_to_stream, write_headers): Make the "Cc:" field optional again. (Before, we could check if camel_mime_message_get_recipients returned NULL, but now we need to actually look into the returned CamelInternetAddress object.) svn path=/trunk/; revision=2783
* s/strcasecmp/g_strcasecamp/ everywhere except intl/, per michael'sJacob Leach2000-05-031-7/+7
| | | | | | request. svn path=/trunk/; revision=2776
* Handle clicks on "cid" URLs by popping up a "Save Attachment" dialog.Dan Winship2000-04-301-1/+25
| | | | | | | | | | | | | * mail-display.c (on_link_clicked): Handle clicks on "cid" URLs by popping up a "Save Attachment" dialog. * mail-format.c (get_cid): if the part has a Content-Disposition with a filename specified, record (a sanitized version of) that on the wrapper when creating the cid reference, so the "save attachment" code can use it later. (handle_mystery): fix a bug in the cid generation here. svn path=/trunk/; revision=2685
* Improve the builtin vs bonobo selection code. (handle_mystery): IncludeDan Winship2000-04-301-110/+94
| | | | | | | | | | | | | | | | | | | | | | * mail-format.c (lookup_handler, etc): Improve the builtin vs bonobo selection code. (handle_mystery): Include name and Content-Description in the "mystery data" info, when available (handle_unknown_type): Call mail_identify_mime_part before giving up. (handle_undisplayable): Split out of handle_unknown_type now that handle_unknown_type can try alternate viewers. (handle_via_bonobo): Fall back to handle_undisplayable if the bonobo control fails. * mail-identify.c (mail_identify_mime_part): New function to attempt to identify a MIME part that we can't identify based on Content-Type alone. * mail-display.c (on_url_requested): redo the mystery data icon display stuff less kludgily. svn path=/trunk/; revision=2684
* update for Camel recipient changes. (Just to make it build, not to takeDan Winship2000-04-291-17/+32
| | | | | | advantage of new features, or do things cleanly.) svn path=/trunk/; revision=2677
* Move text_to_html to e-util.Dan Winship2000-04-281-207/+15
| | | | | | | | | | | | | * mail-format.c: Move text_to_html to e-util. * mail-ops.c (send_to_url): New routine. Thin wrapper for e_msg_composer_new_from_url. * mail-display.c (on_link_clicked): print a warning for news or nntp URLs (which we'll deal with some day), and call send_to_url for mailto URLs. svn path=/trunk/; revision=2664
* Improve URL converstion code. Recognize https, recognize "www\..*" withoutDan Winship2000-04-281-14/+48
| | | | | | | | | * mail-format.c (text_to_html): Improve URL converstion code. Recognize https, recognize "www\..*" without a prefixed "http://". Properly escape &, <, >, etc in URL strings. Don't be fooled by "mailto:", "http://", etc with no following data. svn path=/trunk/; revision=2660
* Reorganize a bit and add a new flag, TEXT_TO_HTML_CONVERT_URLS toDan Winship2000-04-271-95/+130
| | | | | | | | | | | | | * mail-format.c (text_to_html): Reorganize a bit and add a new flag, TEXT_TO_HTML_CONVERT_URLS to recognize and wrap URLs in text. * mail-display.c (mail_html_new): Add link_clicked signal handler. (on_link_clicked): Use gnome_url_show to launch a browser. The Dingus has landed. svn path=/trunk/; revision=2653
* Remove. We weren't using the fields that made this different fromDan Winship2000-04-271-13/+9
| | | | | | | | | | | | | * camel-mime-body-part.[ch]: Remove. We weren't using the fields that made this different from camel-mime-part, so it basically just forced us to do lots of gratuitous typecasting. * camel-multipart.[ch]: Use CamelMimePart. Remove the multipart parent stuff, since we weren't using that either. * etc: update for CamelMimeBodyPart -> CamelMimePart svn path=/trunk/; revision=2645
* update for CamelStream changes.Dan Winship2000-04-261-5/+4
| | | | | | * mail-format.c: update for CamelStream changes. svn path=/trunk/; revision=2631
* add a convert_space_hack flag, which turns N spaces into N-1 &nbsp;s and aDan Winship2000-04-261-5/+106
| | | | | | | | | | | | | * mail-format.c (text_to_html): add a convert_space_hack flag, which turns N spaces into N-1 &nbsp;s and a space. (handle_text_plain): Check for "format=flowed" in the Content-Type. (handle_text_plain_flowed): Spinoff of handle_text_plain to deal with RFC 2646 flowed text. (All the examples I can find of it are generated by Eudora, but it's a pretty cool idea that ought to be used more widely.) svn path=/trunk/; revision=2618
* Now that we're not limited to a single GtkHTML for the display, there's noDan Winship2000-04-261-79/+178
| | | | | | | | | | | | | | | | | * mail-format.c, mail-display.c: Now that we're not limited to a single GtkHTML for the display, there's no reason to embed Bonobo objects for unrecognized content-types in GtkHTML rather than embedded them into the vbox directly. So do that. Meanwhile, fix up the handler-selection code so that we can declare which built-in handlers are more desirable than external handlers and which are less. (Of course, eventually we'll want this to be customizable.) Add some cleverness to handle_multipart_alternative as well so it doesn't accept an alternative which we can display generically over one we can display specifically. svn path=/trunk/; revision=2616
* (reply_body): Make this deal better with multiparts.Dan Winship2000-04-261-40/+29
| | | | svn path=/trunk/; revision=2612
* (setup_function_table): pass unknown text subtypes toDan Winship2000-04-261-3/+27
| | | | | | | | | | | handle_text_plain. (handle_multipart_appledouble): new handler. Just ignores the first (application/applefile) part and tries to display the second part. Since the second part is usually application/octet-stream, this doesn't work very well still usually. svn path=/trunk/; revision=2611
* Fix some bugs that crept into reply generation. This needs a lot more workDan Winship2000-04-251-5/+17
| | | | | | | | * mail-format.c (reply_body): Fix some bugs that crept into reply generation. This needs a lot more work to deal correctly with complicated bodies. svn path=/trunk/; revision=2602
* Redo large chunks of this. The mail display now consists of a vbox in aDan Winship2000-04-251-448/+573
| | | | | | | | | | | | | | | | | | * mail-display.c, mail-format.c: Redo large chunks of this. The mail display now consists of a vbox in a scrolled window, in which we put multiple GtkHTML objects. This means broken HTML in one part can't corrupt other parts. The headers now scroll with the body. Unrecognized attachments look prettier, but still don't do anything, and will probably be changed later. We can also now display nested message/rfc822 parts and multipart/alternatives with multipart subparts. Oh, and text/{richtext,enriched}, since we had all these ancient sample messages that use it and the lack of support annoyed me. :) Bonobo embeddables are broken right now, but I don't think that's my fault. svn path=/trunk/; revision=2601
* rename "send" to "send_msg", to avoid name clash with the tcp function.Dan Winship2000-04-241-0/+56
| | | | | | | | | | | | | | * folder-browser-factory.c: rename "send" to "send_msg", to avoid name clash with the tcp function. Connect the "forward" button. * mail-ops.c: rename "send" to "send_msg", to avoid name clash with the tcp function. Add forward_msg function. * mail-format.c (mail_generate_forward): support function for forward_msg. Pretty much a big kludge right now, pending the attachment/attachment-bar changes. svn path=/trunk/; revision=2562
* move msg_composer_cb and msg_composer_send_cb to mail-ops. Attach send,Dan Winship2000-04-231-13/+238
| | | | | | | | | | | | | | | | | * folder-browser-factory.c: move msg_composer_cb and msg_composer_send_cb to mail-ops. Attach send, reply, and "reply to all" buttons. * mail-ops.c (composer_send_cb, send): moved from folder-browser-factory.c. (reply_to_sender, reply_to_all): new functions to do replies. * mail-format.c (text_to_html): Add an "add_pre" flag, to make it wrap the output in <pre></pre>. (mail_generate_reply): New function to create a composer and build a reply in it. svn path=/trunk/; revision=2554
* deal with cid: URLs. (find_cid): helper routine for above. (This could beDan Winship2000-04-211-21/+65
| | | | | | | | | | * mail-display.c (on_url_requested): deal with cid: URLs. (find_cid): helper routine for above. (This could be much better.) (mail_display_init): connect url_requested signal * mail-format.c (handle_multipart_related): Make this work. svn path=/trunk/; revision=2542
* Moved from camel/camel-formatter, and changed slightly. (More to come.)Dan Winship2000-04-151-0/+793
2000-04-14 Dan Winship <danw@helixcode.com> * mail-format.[ch]: Moved from camel/camel-formatter, and changed slightly. (More to come.) * html-stream.[ch]: No longer necessary. mail-format uses GtkHTMLStreamHandles directly. * mail-display.[ch]: update for new message formatting code. svn path=/trunk/; revision=2438