aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-ops.c
Commit message (Collapse)AuthorAgeFilesLines
* Set threaded view before setting the folder (cleanup some flash onsNot Zed2000-11-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-30 Not Zed <NotZed@HelixCode.com> * mail-ops.c (cleanup_load_folder): Set threaded view before setting the folder (cleanup some flash ons tartup). * message-list.c (message_list_init): Initialise a mempool for uid string storage. (new_id_from_uid): Added messagelist arg, allocate strings from uid_pool. (new_id_from_subject): Same. Fixed all callers. (remove_node_diff): Dont free uid here. (build_flat_diff): Nor here. (clear_tree): Flush the mempool, rather than freeing the id's directly. (free_tree_ids): Removed, no longer required. (free_tree_ids): Likewise. (message_list_init): Dont connect to the table destroy signal anymore to free the uid table. (message_list_destroy): Free the uid pool here. (*): Use accessors for messageid stuff. (content_is_attachment): Removed, no longer required. (ml_tree_value_at): Get the attachment flag directly from the summary. (ml_tree_value_at): For 'fake' nodes, try and do something better than "?" for from, to, and size. (subtree_size): New function, add up the total size of a subtree. (subtree_earliest): Get the earliest date from a subtree. (ml_tree_value_at): Return earliest date sent/received for fake nodes. (ml_tree_value_at): Return something to mark a fake subject line as a fake subject, although i dont know, i guess this buggers up sorting ... (subtree_size): Check the info node is still there. (subtree_earliest): Same here. (subtree_unread): And here. The info node might vanish if the folder has changed/is changing and we try and redraw stuff while its doing it. (message_list_drag_data_get): Use accessors. svn path=/trunk/; revision=6732
* Use camel a bit more to help us out. Don't create the file ourselves,Jeffrey Stedfast2000-11-301-15/+34
| | | | | | | | | | 2000-11-29 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_save_messages): Use camel a bit more to help us out. Don't create the file ourselves, treat it as a CamelFolder so we don't have to worry about formatting. svn path=/trunk/; revision=6724
* Wait until after setting up the local storage to find theDan Winship2000-11-291-5/+2
| | | | | | | | | | * component-factory.c (owner_set_cb): Wait until after setting up the local storage to find the Drafts/Outbox/Sent folders. * mail-ops.c (do_setup_folder): Use the file: store rather than mbox:. svn path=/trunk/; revision=6704
* Added the SaveAs bonobo menu verb thingy.Jeffrey Stedfast2000-11-291-38/+17
| | | | | | | | | | | | | | | | | 2000-11-28 Jeffrey Stedfast <fejj@helixcode.com> * folder-browser-factory.c: Added the SaveAs bonobo menu verb thingy. * mail-callbacks.c (save_msg): New callback for saving messages. (save_msg_ok): * folder-browser.c (on_right_click): Add a Save Ass menu item. * mail-ops.c (cleanup_save_messages): Save all emails to the path given. svn path=/trunk/; revision=6699
* New function to return if user wants to view message source.Jeffrey Stedfast2000-11-221-131/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix IMAP get-mail to work; CORBA calls in the dispatch thread are a no-no.Peter Williams2000-11-211-13/+53
| | | | svn path=/trunk/; revision=6620
* Use the new quote_message function and make it start with "On %s, %sJeffrey Stedfast2000-11-181-52/+2
| | | | | | | | | | | | | | | | | 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
* Added the MessageViewSource bonobo menu verb.Jeffrey Stedfast2000-11-171-0/+122
| | | | | | | | | | | | 2000-11-16 Jeffrey Stedfast <fejj@helixcode.com> * folder-browser-factory.c: Added the MessageViewSource bonobo menu verb. * mail-ops.c (mail_do_save_messages): New async function to save messages as individual files in a given path. svn path=/trunk/; revision=6596
* Added a new Forward as Attachment bonobo menu item verb.Jeffrey Stedfast2000-11-161-64/+278
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-15 Jeffrey Stedfast <fejj@helixcode.com> * folder-browser-factory.c: Added a new Forward as Attachment bonobo menu item verb. * mail-view.c (view_forward_msg): Updated to reflect changes to mail_do_forward_message(). It now forwards the message without attaching it - is this what we want? * mail-ops.c (mail_do_view_message_sources): New async function to display message source dialog windows. (setup_forward_messages): If we were asked not to forward the message(s) as attachment(s) and the user chose more than a single message, then default to making each message an attachment. (cleanup_forward_messages): If we aren't forwarding the message as an attachment, then quote the text and set the composer's body with it. * mail-callbacks.c (view_source): New callback to view the message source of all messages that are currently selected. (forward_attach): New callback to forward a message as an attachment (forward_msg is now for forwarding a message without it being an attachment). (forward_message): Convenience function for forwarding messages. svn path=/trunk/; revision=6585
* Sync the source folder.Jeffrey Stedfast2000-11-131-0/+3
| | | | | | | | 2000-11-12 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_filter_ondemand): Sync the source folder. svn path=/trunk/; revision=6553
* A very, long, very tedious IDL API rename and re-scoping;Michael Meeks2000-11-111-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this script + some grunt approximates the work: s/Evolution_MessageList/GNOME_Evolution_MessageList/g; s/GNOME_Evolution_MessageList_select_message/GNOME_Evolution_MessageList_selectMessage/g; s/GNOME_Evolution_MessageList_open_message/GNOME_Evolution_MessageList_openMessage/g; s/Evolution_Folder([ \t])/GNOME_Evolution_Folder$1/g; s/Evolution_FolderTypeList/GNOME_Evolution_FolderTypeList/g; s/Evolution_FolderBrowser/GNOME_Evolution_FolderBrowser/g; s/GNOME_Evolution_FolderBrowser_get_message_list/GNOME_Evolution_FolderBrowser_getMessageList/g; s/Evolution_LocalStorage/GNOME_Evolution_LocalStorage/g; s/GNOME_Evolution_LocalStorage_update_folder/GNOME_Evolution_LocalStorage_updateFolder/g; s/Evolution_ShellView/GNOME_Evolution_ShellView/g; s/GNOME_Evolution_ShellView_set_message/GNOME_Evolution_ShellView_setMessage/g; s/GNOME_Evolution_ShellView_unset_message/GNOME_Evolution_ShellView_unsetMessage/g; s/GNOME_Evolution_ShellView_change_current_view/GNOME_Evolution_ShellView_changeCurrentView/g; s/Evolution_StorageSetViewListener/GNOME_Evolution_StorageSetViewListener/g; s/GNOME_Evolution_StorageSetViewListener_folder_selected/GNOME_Evolution_StorageSetViewListener_notifyFolderSelected/g; s/GNOME_Evolution_StorageSetViewListener_storage_selected/GNOME_Evolution_StorageSetViewListener_notifyStorageSelected/g; s/Evolution_StorageSetView/GNOME_Evolution_StorageSetView/g; s/GNOME_Evolution_StorageSetView_add_listener/GNOME_Evolution_StorageSetView_addListener/g; s/GNOME_Evolution_StorageSetView_remove_listener/GNOME_Evolution_StorageSetView_removeListener/g; s/Evolution_Shell/GNOME_Evolution_Shell/g; s/GNOME_Evolution_Shell_get_component_for_type/GNOME_Evolution_Shell_getComponentByType/g; s/GNOME_Evolution_Shell_user_select_folder/GNOME_Evolution_Shell_selectUserFolder/g; s/GNOME_Evolution_Shell_get_local_storage/GNOME_Evolution_Shell_getLocalStorage/g; s/GNOME_Evolution_Shell_create_storage_set_view/GNOME_Evolution_Shell_createStorageSetView/g; s/Evolution_FolderSelectionListener/GNOME_Evolution_FolderSelectionListener/g; s/GNOME_Evolution_FolderSelectionListener_selected/GNOME_Evolution_FolderSelectionListener_notifySelected/g; s/GNOME_Evolution_FolderSelectionListener_cancel/GNOME_Evolution_FolderSelectionListener_notifyCanceled/g; s/Evolution_Storage/GNOME_Evolution_Storage/g; s/GNOME_Evolution_Storage_add_listener/GNOME_Evolution_Storage_addListener/g; s/GNOME_Evolution_Storage_remove_listener/GNOME_Evolution_Storage_removeListener/g; s/GNOME_Evolution_StorageListener_destroyed/GNOME_Evolution_StorageListener_notifyDestroyed/g; s/GNOME_Evolution_StorageListener_new_folder/GNOME_Evolution_StorageListener_notifyFolderCreated/g; s/GNOME_Evolution_StorageListener_update_folder/GNOME_Evolution_StorageListener_notifyFolderUpdated/g; s/GNOME_Evolution_StorageListener_removed_folder/GNOME_Evolution_StorageListener_notifyFolderRemoved/g; s/GNOME_Evolution_StorageRegistry_register_storage/GNOME_Evolution_StorageRegistry_addStorage/g; s/GNOME_Evolution_StorageRegistry_unregister_storage/GNOME_Evolution_StorageRegistry_removeStorageByName/g; s/Evolution_ShellComponent/GNOME_Evolution_ShellComponent/g; s/GNOME_Evolution_ShellComponent_set_owner/GNOME_Evolution_ShellComponent_setOwner/g; s/GNOME_Evolution_ShellComponent_unset_owner/GNOME_Evolution_ShellComponent_unsetOwner/g; s/GNOME_Evolution_ShellComponent_create_view/GNOME_Evolution_ShellComponent_createView/g; s/GNOME_Evolution_ShellComponent_async_create_folder/GNOME_Evolution_ShellComponent_addFolderAsync/g; s/GNOME_Evolution_ShellComponent_async_remove_folder/GNOME_Evolution_ShellComponent_removeFolderAsync/g; s/GNOME_Evolution_ShellComponent_populate_folder_context_menu/GNOME_Evolution_ShellComponent_populateFolderContextMenu/g; s/GNOME_Evolution_ShellComponentListener_report_result/GNOME_Evolution_ShellComponentListener_notifyResult/g; s/Evolution_Session/GNOME_Evolution_Session/g; s/GNOME_Evolution_Session_save_configuration/GNOME_Evolution_Session_saveConfiguration/g; s/GNOME_Evolution_Session_load_configuration/GNOME_Evolution_Session_loadConfiguration/g; s/Evolution_Calendar_Cal/GNOME_Evolution_Calendar_Cal/g; s/GNOME_Evolution_Calendar_Cal_get_n_objects/GNOME_Evolution_Calendar_Cal_countObjects/g; s/GNOME_Evolution_Calendar_Cal_get_object/GNOME_Evolution_Calendar_Cal_getObject/g; s/GNOME_Evolution_Calendar_Cal_get_uids/GNOME_Evolution_Calendar_Cal_getUIds/g; s/GNOME_Evolution_Calendar_Cal_get_changed_uids/GNOME_Evolution_Calendar_Cal_getChangedUIds/g; s/GNOME_Evolution_Calendar_Cal_get_objects_in_range/GNOME_Evolution_Calendar_Cal_getObjectsInRange/g; s/GNOME_Evolution_Calendar_Cal_get_alarms_in_range/GNOME_Evolution_Calendar_Cal_getAlarmsInRange/g; s/GNOME_Evolution_Calendar_Cal_get_alarms_for_object/GNOME_Evolution_Calendar_Cal_getAlarmsForObject/g; s/GNOME_Evolution_Calendar_Cal_update_object/GNOME_Evolution_Calendar_Cal_updateObject/g; s/GNOME_Evolution_Calendar_Cal_remove_object/GNOME_Evolution_Calendar_Cal_removeObject/g; s/Evolution_Calendar_Listener/GNOME_Evolution_Calendar_Listener/g; s/GNOME_Evolution_Calendar_Listener_cal_loaded/GNOME_Evolution_Calendar_Listener_notifyCalLoaded/g; s/GNOME_Evolution_Calendar_Listener_obj_updated/GNOME_Evolution_Calendar_Listener_notifyObjUpdated/g; s/GNOME_Evolution_Calendar_Listener_obj_removed/GNOME_Evolution_Calendar_Listener_notifyObjRemoved/g; s/Evolution_Calendar_CalFactory/GNOME_Evolution_Calendar_CalFactory/g; s/GNOME_Evolution_Calendar_CalFactory_load/GNOME_Evolution_Calendar_CalFactory_load/g; s/GNOME_Evolution_Calendar_CalFactory_create/GNOME_Evolution_Calendar_CalFactory_create/g; s/Evolution_Composer/GNOME_Evolution_Composer/g; s/GNOME_Evolution_Composer_set_headers/GNOME_Evolution_Composer_setHeaders/g; s/GNOME_Evolution_Composer_set_body_text/GNOME_Evolution_Composer_setBodyText/g; s/GNOME_Evolution_Composer_attach_MIME/GNOME_Evolution_Composer_attachMIME/g; s/GNOME_Evolution_Composer_attach_data/GNOME_Evolution_Composer_attachData/g; s/GNOME_Evolution_Composer_show/GNOME_Evolution_Composer_show/g; s/Evolution_Addressbook_SelectNames/GNOME_Evolution_Addressbook_SelectNames/g; s/GNOME_Evolution_Addressbook_SelectNames_add_section/GNOME_Evolution_Addressbook_SelectNames_addSection/g; s/GNOME_Evolution_Addressbook_SelectNames_get_entry_for_section/GNOME_Evolution_Addressbook_SelectNames_getEntryBySection/g; s/GNOME_Evolution_Addressbook_SelectNames_activate_dialog/GNOME_Evolution_Addressbook_SelectNames_activateDialog/g; s/Evolution_CardCursor/GNOME_Evolution_Addressbook_CardCursor/g; s/GNOME_Evolution_Addressbook_CardCursor_get_length/GNOME_Evolution_Addressbook_CardCursor_getLength/g; s/GNOME_Evolution_Addressbook_CardCursor_get_nth/GNOME_Evolution_Addressbook_CardCursor_getNth/g; s/Evolution_BookViewListener/GNOME_Evolution_Addressbook_BookViewListener/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_added/GNOME_Evolution_Addressbook_BookViewListener_notifyCardAdded/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_removed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardRemoved/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_changed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardChanged/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_sequence_complete/GNOME_Evolution_Addressbook_BookViewListener_notifySequenceComplete/g; s/GNOME_Evolution_Addressbook_BookViewListener_signal_status_message/GNOME_Evolution_Addressbook_BookViewListener_notifyStatusMessage/g; s/Evolution_BookView/GNOME_Evolution_Addressbook_BookView/g; s/Evolution_Book/GNOME_Evolution_Addressbook_Book/g; s/GNOME_Evolution_Addressbook_Book_get_vcard/GNOME_Evolution_Addressbook_Book_getVCard/g; s/GNOME_Evolution_Addressbook_Book_can_write/GNOME_Evolution_Addressbook_Book_isWriteable/g; s/GNOME_Evolution_Addressbook_Book_can_write_card/GNOME_Evolution_Addressbook_Book_isCardWriteable/g; s/GNOME_Evolution_Addressbook_Book_create_card/GNOME_Evolution_Addressbook_Book_addCard/g; s/GNOME_Evolution_Addressbook_Book_remove_card/GNOME_Evolution_Addressbook_Book_removeCard/g; s/GNOME_Evolution_Addressbook_Book_modify_card/GNOME_Evolution_Addressbook_Book_modifyCard/g; s/GNOME_Evolution_Addressbook_Book_get_cursor/GNOME_Evolution_Addressbook_Book_getCursor/g; s/GNOME_Evolution_Addressbook_Book_get_book_view/GNOME_Evolution_Addressbook_Book_getBookView/g; s/GNOME_Evolution_Addressbook_Book_get_changes/GNOME_Evolution_Addressbook_Book_getChanges/g; s/GNOME_Evolution_Addressbook_Book_check_connection/GNOME_Evolution_Addressbook_Book_checkConnection/g; s/GNOME_Evolution_Addressbook_Book_get_static_capabilities/GNOME_Evolution_Addressbook_Book_getStaticCapabilities/g; s/GNOME_Evolution_Addressbook_Book_get_name/GNOME_Evolution_Addressbook_Book_getName/g; s/Evolution_BookListener/GNOME_Evolution_Addressbook_BookListener/g; s/GNOME_Evolution_Addressbook_BookListener_respond_create_card/GNOME_Evolution_Addressbook_BookListener_notifyCardCreated/g; s/GNOME_Evolution_Addressbook_BookListener_respond_remove_card/GNOME_Evolution_Addressbook_BookListener_notifyCardRemoved/g; s/GNOME_Evolution_Addressbook_BookListener_respond_modify_card/GNOME_Evolution_Addressbook_BookListener_notifyCardModified/g; s/GNOME_Evolution_Addressbook_BookListener_report_open_book_progress/GNOME_Evolution_Addressbook_BookListener_notifyOpenBookProgress/g; s/GNOME_Evolution_Addressbook_BookListener_respond_open_book/GNOME_Evolution_Addressbook_BookListener_notifyBookOpened/g; s/GNOME_Evolution_Addressbook_BookListener_respond_get_cursor/GNOME_Evolution_Addressbook_BookListener_notifyCursorRequested/g; s/GNOME_Evolution_Addressbook_BookListener_respond_get_view/GNOME_Evolution_Addressbook_BookListener_notifyViewRequested/g; s/GNOME_Evolution_Addressbook_BookListener_respond_get_changes/GNOME_Evolution_Addressbook_BookListener_notifyChangesRequested/g; s/GNOME_Evolution_Addressbook_BookListener_report_connection_status/GNOME_Evolution_Addressbook_BookListener_notifyConnectionStatus/g; s/Evolution_BookFactory/GNOME_Evolution_Addressbook_BookFactory/g; s/GNOME_Evolution_Addressbook_BookFactory_open_book/GNOME_Evolution_Addressbook_BookFactory_openBook/g; s/Evolution_SummaryComponent/GNOME_Evolution_Summary_Component/g; s/GNOME_Evolution_Summary_SummaryComponent_set_owner/GNOME_Evolution_Summary_Component_setOwner/g; s/GNOME_Evolution_Summary_SummaryComponent_unset_owner/GNOME_Evolution_Summary_Component_unsetOwner/g; s/GNOME_Evolution_Summary_SummaryComponent_create_view/GNOME_Evolution_Summary_Component_createView/g; s/GNOME_Evolution_Summary_SummaryComponent_destroy_view/GNOME_Evolution_Summary_Component_destroyView/g; s/Evolution_Summary([ \t])/GNOME_Evolution_Summary_ViewFrame$1/g; s/Evolution_Summary_set_title/GNOME_Evolution_Summary_ViewFrame_setTitle/g; s/Evolution_Summary_set_icon/GNOME_Evolution_Summary_ViewFrame_setIcon/g; s/Evolution_Summary_update_component/GNOME_Evolution_Summary_ViewFrame_updateComponent/g; s/GNOME_GNOME/GNOME/g; s/GNOME_GNOME/GNOME/g; s/GNOME_GNOME/GNOME/g; svn path=/trunk/; revision=6535
* Updated to use the ESearchBar object rather than the previously usedJeffrey Stedfast2000-11-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | 2000-11-07 Jeffrey Stedfast <fejj@helixcode.com> * folder-browser.c (search_full_clicked): Updated to use the ESearchBar object rather than the previously used search widgets. (search_full): Same. (search_save): Same. Also use enums to make it a little easier to read now that we have to have enums anyway. (folder_browser_search_menu_activated): New ESearchBar menu callback. (folder_browser_search_query_changed): New ESearchBar query callback. Replaces search_set() (folder_browser_clear_search): Updated to use the ESearchBar object rather than the previously used search widgets. (folder_browser_gui_init): Don't hand construct a search widget, use the new ESearchBar convenience widget. * mail-ops.c (cleanup_load_folder): Updated to reflect changes to FolderBrowser. svn path=/trunk/; revision=6490
* Added mail-display.h.Not Zed2000-11-031-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-03 Not Zed <NotZed@HelixCode.com> * mail-view.c: Added mail-display.h. * mail-autofilter.c: Removed unecessary headers. Who ran indent over this code? Sigh. * mail-ops.c (display_message_input_s): Added messagedisplay. (mail_do_display_message): Added messagedisplay arg. (mail_do_display_message): Dont bother doing another thread when we know we dont have a uid. (): Added folder-browser.h to headers. Sigh. * folder-browser-factory.c (control_activate): Setup the viewthreaded callback to the folder_browser function. * folder-browser.c (my_folder_browser_init): Connect to right_click of etable of the messagelist here. (on_right_click): Changed for argument changes. (folder_browser_toggle_threads): Changed to take a fb, and to set threaded mode on the messagelist. (my_folder_browser_init): Connect also to the double_click signal. (my_folder_browser_init): Connect to the message_selected signal of the message_list. (on_message_selected): Signal handler for message selected. (my_folder_browser_init): Fix for change to message_list_new(). * message-list.h: Dont include folder-browser.h. (message_list_toggle_threads): Moved into folder-browser.h. (struct _MessageList): Removed folderbrowser. * mail.h: Dont include folder-browser.h here either, but mail-types.h instead. Moved prototypes moved into folder-browser.c into folder-browser.h. (vfolder_*, filter_*). * mail-display.h: Dont include folder-browser.h here, but mail-types.h and specific camel headers. * message-thread.c (sort_node): Invert the sort order logic so the list is sorted in mailbox order, not reverse mailbox order. * message-list.c (free_tree_ids): Fix a merge foo. (remove_node_diff): Removed unused row argument. Fixed callers/prototype. (clear_tree): pre_change on the removal of the root node. (build_flat): Only perform pre_change if we are rebuilding the whole lot. For incremental change let etable do its thing. (build_tree): Likewise for building the tree view. If making incremental updates, do them as we build it. (vfolder_subject): (vfolder_sender): (vfolder_recipient): (filter_subject): (filter_sender): (filter_recipient): (filter_mlist): (on_right_click): Moved to folder-browser.c, where they belong. (message_list_init): Dont connect to right_click anymore. (message_list_toggle_threads): Moved to folder-browser.c, renamed. (on_double_click): Moved to folder-browser.c (on_click): Set the flags directly, rather than in anothre thread, which is just not necessary. (message_list_class_init): Added a new signal 'message_selected', to indicate when a message was selected. (on_cursor_change_idle): Emit a signal, rather than directly triggering the display update. (select_row): Removed, no longer used. (idle_select_row): And this too. (select_msg): Removed as well. (message_list_select): Emit a signal, rather thandisplaying/clearing the mail-display directly. (mark_msg_seen): Moved to folder-browser.c (message_list_new): Removed folderbrowser argument. svn path=/trunk/; revision=6365
* Make "Get Mail" even more functional on IMAP (scans all folders),Dan Winship2000-11-021-32/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | and do a first cut at folder tree highlighting (for IMAP/news only). * mail-ops.c (do_fetch_mail): For imap (sigh, we *still* shouldn't be hardcoding that), rescan the store's folder tree, rescan each changed folder for new messages, and update the shell folder tree. (do_scan_subfolders): Update for component-factory.c changes, and set folder display names and highlights appropriately when building the storage. * component-factory.c (add_storage): Make this static (was mail_add_new_storage). Use camel_service_get_name for the name rather than url->host. (Among other things, this lets you use a single machine as both an IMAP server and a news server.) (mail_lookup_storage): Hash storages based on their CamelStore rather than the URL. (factory_destroy): Disconnect each of the CamelStores in the storages_hash. * subscribe-dialog.c (cleanup_subscribe_folder): * mail-vfolder.c (vfolder_refresh): Pass "highlighted" flag to evolution_storage_new_folder svn path=/trunk/; revision=6342
* Don't call the default logging function. (do_fetch_mail): Set the logfileJeffrey Stedfast2000-11-021-12/+8
| | | | | | | | | | | | 2000-11-01 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (mail_op_report_status): Don't call the default logging function. (do_fetch_mail): Set the logfile and don't pass the logfile to filter_driver_set_status_func - it's purpose has been altered. (do_filter_ondemand): Same. svn path=/trunk/; revision=6341
* ** Merged in camel-incremental-branch.Not Zed2000-11-021-1/+1
| | | | | | | | | | | | | 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
* Sync the folder before refreshing so we don't lose flag settings.Dan Winship2000-10-301-1/+3
| | | | | | | * mail-ops.c (do_fetch_mail): Sync the folder before refreshing so we don't lose flag settings. svn path=/trunk/; revision=6254
* Don't forget to unref the FilterDriver.Jeffrey Stedfast2000-10-261-61/+58
| | | | | | | | | | | | | | | | | | | | 2000-10-25 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_send_mail): Don't forget to unref the FilterDriver. * mail-callbacks.c (apply_filters): New callback for applying on-demand filters. (removed the old on-demand filters callback). * mail-ops.c (do_filter_ondemand): Rewrote to apply "incoming" filters to all selected messages. (mail_do_filter_ondemand): No longer takes a FilterContext argument or a destination folder argument (why did we ever need this last one??) but now takes a uids argument. * folder-browser-factory.c: Add a MessageApplyFilters menu item. svn path=/trunk/; revision=6190
* Apply outgoing filters to the message.Jeffrey Stedfast2000-10-241-17/+48
| | | | | | | | | 2000-10-23 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_send_mail): Apply outgoing filters to the message. svn path=/trunk/; revision=6140
* For an imap store, just refresh the INBOX.Dan Winship2000-10-201-2/+9
| | | | | | | | | | | * mail-ops.c: (do_fetch_mail): For an imap store, just refresh the INBOX. * folder-browser-factory.c (control_deactivate): Don't sync non-existent folders. * message-list.c (nuke_uids): Don't traverse non-existent trees. svn path=/trunk/; revision=6047
* Clean up some old #if 0 code.Dan Winship2000-10-191-204/+0
| | | | | | * mail-ops.c: Clean up some old #if 0 code. svn path=/trunk/; revision=6030
* No, we REALLY dont want to perform an immediate search as the keys areNot Zed2000-10-181-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-18 Not Zed <NotZed@HelixCode.com> * folder-browser.c (folder_browser_gui_init): No, we REALLY dont want to perform an immediate search as the keys are pressed. * mail-display.c (on_object_requested): Kill a minor warning with a cast. * mail-config.c: Include mising ctype.h to kill a warning. * message-thread.c (main): Fixed the test case for api changes. * message-list.c (message_list_drag_data_get): Set some flags to get_folder(). I dont even think this will work because mail_tool_get_folder doesn't handle file url's. * mail-vfolder.c (vfolder_uri_to_folder): Pass appropriate flags. * mail-ops.c (do_setup_folder): Pass appropriate flags. Hmm, whats the difference between setup and create. *shrug* (do_create_folder): Pass appropriate flags to get_folder. Needs a way to specify the index flag. * mail-tools.c (mail_tool_get_folder_from_urlname): Changed create to flags argument. (mail_tool_get_local_inbox_url): Add an index argument. (mail_tool_get_local_inbox): honour index flag. (mail_tool_get_inbox): Changed for api change. (mail_tool_uri_to_folder): Fixed calls to store_get_folder(); * mail-local.c (load_metainfo): Added an indexed field to the metainfo. (save_metainfo): And save it too. (do_reconfigure_folder): Honour index flag when creating the new folder. Do not open the old folder with an index at all. (mail_local_map_uri): Add an index argument - tells if the mbox is indexed. (mail_tool_local_uri_to_folder): Create & pass flags properly. (#include gnome.h): Dont include all of gnome, just what we use, and explicity include xml-memory, so we get xmlFree(). svn path=/trunk/; revision=5979
* sync & expunge the source folder after filtering.Jeffrey Stedfast2000-10-131-36/+49
| | | | | | | | | 2000-10-12 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): sync & expunge the source folder after filtering. svn path=/trunk/; revision=5895
* Duh, fix the test for the folder name, strstr != strcmp is it.Not Zed2000-10-121-47/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-12 Not Zed <NotZed@HelixCode.com> * message-list.c (message_list_setup_etable): Duh, fix the test for the folder name, strstr != strcmp is it. 2000-10-10 Not Zed <NotZed@HelixCode.com> * message-list.c (folder_to_cachename): Removed, changed callers to use mail_config_folder_to_cachename instead. * mail-config.c (mail_config_folder_to_cachename): New utility function to get a cache name for a folder. * mail-tools.c (mail_tool_do_movemail): Changed to return the path to the mbox, rather than opening a folder of it. * mail-ops.c (mail_incorporate_messages): Dont bother making the pseudo messageinfo, filder_driver_filter_message will do it for us. (report_status): Callback to report status of filtering operation. (do_fetch_mail): Changed significantly - for the api changes to the filtering system. Also now incorporates a mailbox file directly, without having to import it into a camel folder first. (mail_incorporate_messages): Removed entirely, no longer needed. * mail-vfolder.c (vfolder_refresh): Fix for context api changes. (vfolder_uri_to_folder): Likewise. * folder-browser-factory.c (create_ondemand_hooks): Changed for api changes. Also only adds demand filters to the menu (fixed a small logic bug). svn path=/trunk/; revision=5883
* add a ref to input->storage here so that the ref/unref pattern moreChris Toshok2000-10-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-10 Chris Toshok <toshok@helixcode.com> * mail-ops.c (setup_scan_subfolders): add a ref to input->storage here so that the ref/unref pattern more closely matches other mail-ops. also, this keeps the storage from being freed when we hit the unref in cleanup_scan_subfolders, which is important because we maintain a reference to it in the storage_hash in component-factory.c * subscribe-dialog.h: add storage field. * subscribe-dialog.c (subscribe_folder_info): new function, subscribe to a folder given it's CamelFolderInfo, and add it to the shell - we're generating a path from the name of the folder which is bad. (unsubscribe_folder_info): same (except we unsubscribe and remove from the shell). (storage_selected_cb): unref the currently selected storage. (subscribe_dialog_destroy): unref the currently selected storage. (subscribe_dialog_construct): sc->storage = NULL. * component-factory.c (mail_lookup_storage): new function, to look up a EvolutionStorage corresponding to a CamelService. we ref the EvolutionStorage before passing it back. (mail_add_new_storage): insert the storage into storages_hash if result is EVOLUTION_STORAGE_OK. * mail.h: add prototype for mail_lookup_storage. svn path=/trunk/; revision=5830
* New widget, full search dialogue for mail.Not Zed2000-10-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Tag string for translation (do_flag_messages): ditto.Miguel de Icaza2000-10-081-4/+4
| | | | | | | | | 2000-10-08 Miguel de Icaza <miguel@helixcode.com> * mail-ops.c (mail_incorporate_messages): Tag string for translation (do_flag_messages): ditto. svn path=/trunk/; revision=5784
* Repeates writes on EINTRS. (pipe_read): Repeats reads on EINTRS.Miguel de Icaza2000-10-081-10/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-08 Miguel de Icaza <miguel@helixcode.com> * mail-threads.c (pipe_write): Repeates writes on EINTRS. (pipe_read): Repeats reads on EINTRS. (mail_operation_queue): Use pipe_write (mail_op_set_percentage): ditto. (mail_op_hide_progressbar): ditto. (mail_op_show_progressbar): ditto. (mail_op_set_message): ditto. (mail_op_get_password): ditto. (mail_op_error): ditto. (mail_op_forward_event): ditto. (mail_operations_terminate): ditto. (dispatch): use pipe_read. (dispatch): use pipe_write (dispatch): ditto. * mail-ops.c (mail_incorporate_messages): Only show message being incorporated every 2 seconds, to avoid a bunch of CORBA round trips. (do_transfer_messages): ditto. (do_forward_messages): ditto. svn path=/trunk/; revision=5783
* Move the functionality to incorporate messages intoMiguel de Icaza2000-10-081-122/+142
| | | | | | | | | | | 2000-10-07 Miguel de Icaza <miguel@helixcode.com> * mail-ops.c (do_fetch_mail): Move the functionality to incorporate messages into mail_incorporate_messages. (mail_load_evolution_rule_context): New function. Move the functionality for loading the context rules to its own function. svn path=/trunk/; revision=5782
* set the @subscribed_only parameter to TRUE, since the subscribe UI is theChris Toshok2000-10-071-1/+1
| | | | | | | | | | 2000-10-06 Chris Toshok <toshok@helixcode.com> * mail-ops.c (do_scan_subfolders): set the @subscribed_only parameter to TRUE, since the subscribe UI is the only interface that should show unsubscribed groups. svn path=/trunk/; revision=5768
* Add missing parameter in call to `camel_store_get_folder_info()'.Ettore Perazzoli2000-10-071-1/+1
| | | | | | (Duh, I hope `FALSE' is fine.) svn path=/trunk/; revision=5763
* Don't expunge the source mailbox on completion.Jeffrey Stedfast2000-10-051-1/+1
| | | | | | | | | 2000-10-04 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_filter_ondemand): Don't expunge the source mailbox on completion. svn path=/trunk/; revision=5715
* Don't try to add_folders if get_folder_info returned NULL.Dan Winship2000-10-051-2/+4
| | | | | | | * mail-ops.c (do_scan_subfolders): Don't try to add_folders if get_folder_info returned NULL. svn path=/trunk/; revision=5712
* Update for CamelFolderInfo changes.Dan Winship2000-10-031-46/+37
| | | | | | | | | | | | | * mail-ops.c (mail_do_scan_subfolders, etc): Update for CamelFolderInfo changes. * message-list.c (message_list_destroy): Don't save_tree_state if there's no folder associated with the MessageList. * folder-browser.c (folder_browser_set_uri): Only call mail_do_load_folder if the URI is not "". svn path=/trunk/; revision=5664
* Messages should be appended to Sent as Seen. (do_send_mail): Same.Jeffrey Stedfast2000-09-291-2/+2
| | | | | | | | | | 2000-09-28 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_send_queue): Messages should be appended to Sent as Seen. (do_send_mail): Same. svn path=/trunk/; revision=5622
* Note: We need a configuration option to specify whether to log filteringJeffrey Stedfast2000-09-281-3/+31
| | | | | | | | | | | | | 2000-09-27 Jeffrey Stedfast <fejj@helixcode.com> Note: We need a configuration option to specify whether to log filtering actions or not. * mail-ops.c (do_filter_ondemand): Updated to pass a log file pointer to filter_driver_run. (do_fetch_mail): Same. (mail_do_fetch_mail): Fixed a compiler warning. svn path=/trunk/; revision=5604
* If the message has been deleted, don't try filtering it - skip to the nextJeffrey Stedfast2000-09-281-0/+8
| | | | | | | | | | 2000-09-27 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_filter_ondemand): If the message has been deleted, don't try filtering it - skip to the next message. Fixes bugzilla bug #639. svn path=/trunk/; revision=5601
* CamelException is not for compile-time errors. Replace lots of argumentDan Winship2000-09-261-485/+87
| | | | | | | | | | * mail-ops.c: CamelException is not for compile-time errors. Replace lots of argument checks in setup_ functions with g_return_if_fails in the public functions. Also remove some prototypes that weren't needed because they were for static functions that are defined before they're used. svn path=/trunk/; revision=5576
* Fixed some memory leakage. Call free_recipients() so we don't leak memory.Jeffrey Stedfast2000-09-221-7/+8
| | | | | | | | | 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
* Use the folder's full_name so recursive directory structures displayJeffrey Stedfast2000-09-201-2/+2
| | | | | | | | | 2000-09-19 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_scan_subfolders): Use the folder's full_name so recursive directory structures display correctly ;-) svn path=/trunk/; revision=5507
* Update for CamelFolder changes (subfolder_names -> subfolder_info).Dan Winship2000-09-201-5/+7
| | | | | | | * mail-ops.c (do_scan_subfolders): Update for CamelFolder changes (subfolder_names -> subfolder_info). svn path=/trunk/; revision=5504
* Deal with NULL composer.Dan Winship2000-09-191-4/+5
| | | | | | | | | | * 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
* Don't get_message_flags, because POP doesn't support it and it's pointlessDan Winship2000-09-151-5/+2
| | | | | | | | | * mail-ops.c (do_fetch_mail): Don't get_message_flags, because POP doesn't support it and it's pointless anyway since we're setting deleted, not toggling it. call camel_folder_sync with expunge=TRUE so that the deletions are actually recorded. svn path=/trunk/; revision=5450
* Fix the sense of the "keep on server" check so we're not doing thisDan Winship2000-09-151-1/+1
| | | | | | | * mail-ops.c (do_fetch_mail): Fix the sense of the "keep on server" check so we're not doing this backwards. svn path=/trunk/; revision=5447
* This bug was so much fun to fix the first time that I decided toDan Winship2000-09-151-1/+2
| | | | | | | | | | | | | fix it again. 2000-07-11 Dan Winship <danw@helixcode.com> * mail-ops.c (real_send_mail): Set the post_send_data flag rather than toggling it. (Maybe we'll need more control over it later, but for now, the only flag we set is "replied", and we want that set, not toggled.) svn path=/trunk/; revision=5445
* camel_folder_append is perfectly happy to take a NULL info.Dan Winship2000-09-141-6/+0
| | | | | | | * mail-ops.c (setup_append_mail): camel_folder_append is perfectly happy to take a NULL info. svn path=/trunk/; revision=5429
* Only use the cache if the user plans to keep_on_server.Jeffrey Stedfast2000-09-141-20/+22
| | | | | | | | | 2000-09-14 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Only use the cache if the user plans to keep_on_server. svn path=/trunk/; revision=5422
* Was trying to unhook an event from the wrong folder - oops.Jeffrey Stedfast2000-09-121-1/+1
| | | | | | | | | 2000-09-12 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Was trying to unhook an event from the wrong folder - oops. svn path=/trunk/; revision=5356
* added some comments (no source code changes)Jeffrey Stedfast2000-09-121-1/+2
| | | | svn path=/trunk/; revision=5351
* Updated to use the new mail_do_filter_ondemand.Jeffrey Stedfast2000-09-121-13/+19
| | | | | | | | | | | | | | | | | 2000-09-11 Jeffrey Stedfast <fejj@helixcode.com> * mail-callbacks.c (run_filter_ondemand): Updated to use the new mail_do_filter_ondemand. * mail-ops.c (do_fetch_mail): Update to use the new filter_driver_run args. (do_filter_ondemand): Updated to use the new filter_driver_run args. (mail_do_filter_ondemand): Take a FilterContext as a argument instead of a driver as we need to destroy the filter inside the do_filter_ondemand function and things'd get messy. svn path=/trunk/; revision=5347
* Don't have the filter driver self_destruct.Jeffrey Stedfast2000-09-121-1/+1
| | | | | | | | | 2000-09-11 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Don't have the filter driver self_destruct. svn path=/trunk/; revision=5345
* If we're fetching from an mbox formatted file then we need to do someJeffrey Stedfast2000-09-121-1/+4
| | | | | | | | | 2000-09-11 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): If we're fetching from an mbox formatted file then we need to do some special-casing. svn path=/trunk/; revision=5329
* might be a good idea to *save* the uids in the cache when we're done ↵Jeffrey Stedfast2000-09-101-1/+9
| | | | | | fetching mail ;-) svn path=/trunk/; revision=5291
* Use the CamelUIDCache so that we only retrieve *new* messages and alsoJeffrey Stedfast2000-09-101-1/+27
| | | | | | | | | | | 2000-09-09 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Use the CamelUIDCache so that we only retrieve *new* messages and also send notes to the status bar telling it which message we're downloading so that Ettore can sleep at night ;-) svn path=/trunk/; revision=5290
* Updated to not send hook/unhook data to filter_driver_run as it no longerJeffrey Stedfast2000-09-101-2/+7
| | | | | | | | | | | 2000-09-09 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Updated to not send hook/unhook data to filter_driver_run as it no longer takes those args. (do_filter_ondemand): Same. Also wrap filtering in freeze/thaw to prevent signals from being queued up svn path=/trunk/; revision=5288
* Freeze the default folder before filtering and thaw it afterward toJeffrey Stedfast2000-09-101-1/+11
| | | | | | | | | | 2000-09-09 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Freeze the default folder before filtering and thaw it afterward to prevent a ton of "folder_changed" signals from being queued. svn path=/trunk/; revision=5286
* Fixed some warnings.Christopher James Lahey2000-09-091-2/+2
| | | | | | | | | | | 2000-09-08 Christopher James Lahey <clahey@helixcode.com> * folder-browser.c, mail-config-gui.c, mail-ops.c: Fixed some warnings. * message-list.c: Added base ETableModel functions. svn path=/trunk/; revision=5268
* Updated to pass a CamelMessageInfo to filter_driver_runJeffrey Stedfast2000-09-081-5/+35
| | | | | | | | | | 2000-09-08 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Updated to pass a CamelMessageInfo to filter_driver_run (do_filter_ondemand): Same. svn path=/trunk/; revision=5252
* Updated to check the boolean return code from fulter_driver_run to findJeffrey Stedfast2000-09-081-6/+17
| | | | | | | | | | | 2000-09-07 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_filter_ondemand): Updated to check the boolean return code from fulter_driver_run to find out whether or not the message was filtered so that it can decide whether or not to delete the message from the source folder or not. svn path=/trunk/; revision=5250
* oops, forgot to pass "expunge" to camel_folder_sync - this should fix thatJeffrey Stedfast2000-09-081-1/+1
| | | | svn path=/trunk/; revision=5244
* Updated to pass an exception to filter_driver_run and also check theJeffrey Stedfast2000-09-081-4/+8
| | | | | | | | | | | | 2000-09-07 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Updated to pass an exception to filter_driver_run and also check the exception before deleting the message from the source folder. (do_filter_ondemand): Updated to pass an exception to filter_driver_run svn path=/trunk/; revision=5242
* Fix previous fix. (Free the uids, just do it correctly.)Dan Winship2000-09-081-0/+1
| | | | | | | * mail-ops.c (do_fetch_mail): Fix previous fix. (Free the uids, just do it correctly.) svn path=/trunk/; revision=5238
* Don't free uids, let the camel folder do that when it gets finalizedJeffrey Stedfast2000-09-081-3/+3
| | | | | | | | | 2000-09-07 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (do_fetch_mail): Don't free uids, let the camel folder do that when it gets finalized svn path=/trunk/; revision=5237
* New async function to filter messages on demand. (do_fetch_mail): UpdatedJeffrey Stedfast2000-09-071-22/+195
| | | | | | | | | | | | | | | | | | | | 2000-09-06 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (mail_do_filter_ondemand): New async function to filter messages on demand. (do_fetch_mail): Updated to filter 1 message at a time using the new filter-driver code * mail-callbacks.c (composer_postpone_cb): Send NULL as the message info. (run_filter_ondemand): Use mail_do_filter_ondemand instead of filter_driver_run * mail-tools.c: Removed mail_tool_filter_contents_into and mail_tool_fetch_mail_into_searchable as they have now been deprecated. svn path=/trunk/; revision=5225
* kill a warningDan Winship2000-09-061-1/+1
| | | | svn path=/trunk/; revision=5214
* Add a use-default-port option to the source editor ; bugfixesPeter Williams2000-09-061-12/+13
| | | | svn path=/trunk/; revision=5208
* Replace mail_do_setup_draftbox, mail_do_setup_outbox, andDan Winship2000-09-061-141/+46
| | | | | | | | | | | | | | * mail-ops.c: Replace mail_do_setup_draftbox, mail_do_setup_outbox, and mail_do_setup_sentbox with mail_do_setup_folder. (do_send_mail, do_send_queue): s/sentbox_folder/sent_folder/ * component-factory.c (owner_set_cb): Use mail_do_setup_folder, rename sentbox_folder to sent_folder, and call mail_operation_wait_for_finish after the setup_folder calls in case anything needs to use the _folder variables. svn path=/trunk/; revision=5200
* Change the "Get Mail" toolbar button to become "Send & Receieve"Jeffrey Stedfast2000-09-031-22/+177
| | | | | | | | | | | | | | | | | | | | 2000-09-03 Jeffrey Stedfast <fejj@helixcode.com> * folder-browser-factory.c: Change the "Get Mail" toolbar button to become "Send & Receieve" * mail-callbacks.c (send_queued_mail): New callback function for sending queued mail (send_receieve_mail): New callback for Send & Receieve that basically just calls send_queued_mail and then fetch_mail * mail-ops.c (cleanup_send_mail): Mod to be able to handle a NULL composer window (setup_send_mail): Modified to handle a NULL composer widget (mail_do_send_queue): New convenience async function to send all messages in a folder (aka all messages in a queue) svn path=/trunk/; revision=5184
* Attach a callback to the postpone signal (send_to_url): Same (mail_reply):Jeffrey Stedfast2000-09-021-12/+130
| | | | | | | | | | | | | | | | | | | | | | | | 2000-09-01 Jeffrey Stedfast <fejj@helixcode.com> * mail-callbacks.c (compose_msg): Attach a callback to the postpone signal (send_to_url): Same (mail_reply): Same (forward_msg): Same (composer_postpone_cb): Callback function for the postpone signal * mail-ops.c (mail_do_setup_outbox): New convenience function to load the Outbox folder (mail_do_setup_sentbox): Same, but for Sentbox. (do_send_mail): Now saves messages in Sentbox if sent successfully (mail_do_append_mail): New convenience async function for appending messages to a folder * component-factory.c: Added outbox_folder and sent_folder (owner_set_cb): Call our new convenience functions to load Outbox and Sentbox svn path=/trunk/; revision=5178
* New convenience function to load the Outbox folderJeffrey Stedfast2000-09-021-14/+136
| | | | | | | | | | | | | | | 2000-09-01 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (mail_do_setup_outbox): New convenience function to load the Outbox folder (mail_do_setup_sentbox): Same, but for Sentbox. (do_send_mail): Now saves messages in Sentbox if sent successfully * component-factory.c: Added outbox_folder and sent_folder (owner_set_cb): Call our new convenience functions to load Outbox and Sentbox svn path=/trunk/; revision=5172
* Changed `Evolution::Storage' so that the displayed name for a folderEttore Perazzoli2000-09-011-0/+1
| | | | | | | is decoupled from its path, and updated all the components accordingly. svn path=/trunk/; revision=5159
* Update this and related functions to no longer take a From address. (TheDan Winship2000-08-301-13/+5
| | | | | | | | | | | | | | | | | * mail-ops.c (mail_do_send_mail): Update this and related functions to no longer take a From address. (The composer deals with it itself now.) (do_send_mail): Add the Evolution version back to the X-Mailer header (this change got lost in the thread migration). * mail-callbacks.c (composer_send_cb): Don't re-fetch the From address. It's set by the composer now. Don't free the post_send_data from here. (mail_reply): Attach to the composer's destroy signal to free the psd. (The current code would free it more than once if an error occurred while trying to send the first time.) svn path=/trunk/; revision=5102
* Add more user-friendly progress messages from the friendly folks at Helix ↵Peter Williams2000-08-281-2/+18
| | | | | | Code (TM) svn path=/trunk/; revision=5076
* Goodbye, GDK_THREADS!Peter Williams2000-08-281-1/+1
| | | | svn path=/trunk/; revision=5074
* Start adding progress info; make flag_all_messages camel-safe; make the no ↵Peter Williams2000-08-251-4/+36
| | | | | | new mail dialog more descriptive. svn path=/trunk/; revision=5016
* Fix GDK_THREADS_entering and leaving, hopefully once and for all. Genericify ↵Peter Williams2000-08-251-2/+1
| | | | | | the recursive-store-loading. Load stores when they're added to the config page. svn path=/trunk/; revision=5005
* Fix a deadlock upon checking mail due to new camel_service semantics.Peter Williams2000-08-241-5/+6
| | | | svn path=/trunk/; revision=4984
* Whole buncha leak fixes thanks to PurifyMatthew Loper2000-08-171-2/+2
| | | | svn path=/trunk/; revision=4862
* Use a configurable timeout.Richard Hult2000-08-171-2/+10
| | | | | | | | | | | | | | | | | | | | | 2000-08-16 Richard Hult <rhult@hem.passagen.se> * mail-ops.c (cleanup_display_message): Use a configurable timeout. * mail-config.c (mail_config_set_mark_as_seen_timeout): New function for the settable mark-as-seen timeout. (mail_config_mark_as_seen_timeout): Likewise. (mail_config_write): Write the timeout setting. (config_read): Read timeout setting. * mail-config-gui.c (mail_config): Add option for the settable mark-as-seen timeout. (mail_config_apply_clicked): Likewise. (timeout_changed): New function for the timeout setting. svn path=/trunk/; revision=4859
* Updated russian translation. Fixed typo in mail-ops.c.Valek Frob2000-08-161-1/+1
| | | | svn path=/trunk/; revision=4852
* Close the pipes when finished; add i18nPeter Williams2000-08-161-47/+60
| | | | svn path=/trunk/; revision=4846
* Add support for copying messagesPeter Williams2000-08-161-44/+70
| | | | svn path=/trunk/; revision=4845
* Compile fix for RH7.0beta from Kenny Graunke <kwg@teleport.com>; unprototype ↵Peter Williams2000-08-141-1/+1
| | | | | | the disabled mail functions svn path=/trunk/; revision=4836
* Use CORBA_Object_release() instead of CORBA_free() as appropriate, youEttore Perazzoli2000-08-141-1/+1
| | | | | | doofus. svn path=/trunk/; revision=4830
* Fix bug in the folder creation code: CORBA_Object_duplicate() theEttore Perazzoli2000-08-141-6/+9
| | | | | | CORBA listener before storing it. svn path=/trunk/; revision=4804
* Updated to reflect changes to mail_do_scan_subfoldersJeffrey Stedfast2000-08-131-152/+131
| | | | | | | | | | | | | 2000-08-13 Jeffrey Stedfast <fejj@helixcode.com> * component-factory.c (create_news_storage): Updated to reflect changes to mail_do_scan_subfolders (create_imap_storage): Same. * mail-ops.c (mail_do_scan_subfolders): No longer takes an add_INBOX argument svn path=/trunk/; revision=4795
* Lose a reference to the store on purpose. To be fixed later.Dan Winship2000-08-131-0/+6
| | | | | | | * mail-ops.c (do_scan_subfolders): Lose a reference to the store on purpose. To be fixed later. svn path=/trunk/; revision=4794
* Don't leak the transport.Dan Winship2000-08-131-0/+1
| | | | | | * mail-ops.c (do_send_mail): Don't leak the transport. svn path=/trunk/; revision=4784
* Put the dont-try-to-get-mail-from-imap-sources check into a better spotPeter Williams2000-08-121-0/+7
| | | | svn path=/trunk/; revision=4750
* Freeze/thaw around multi-message folder operations (flag, move)Peter Williams2000-08-121-0/+13
| | | | svn path=/trunk/; revision=4739
* Use camel_service_get_name rather than showing the URL to the user.Dan Winship2000-08-111-4/+11
| | | | | | | * mail-ops.c (describe_fetch_mail): Use camel_service_get_name rather than showing the URL to the user. svn path=/trunk/; revision=4737
* Add a function to return a useful name for a folder (not just "mbox" orDan Winship2000-08-111-14/+14
| | | | | | | | | | | * mail-tools.c (mail_tool_get_folder_name): Add a function to return a useful name for a folder (not just "mbox" or "mh" for any local folder.) * mail-ops.c: Use mail_tool_get_folder_name rather than folder->full_name when printing folder names. svn path=/trunk/; revision=4733
* 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
* Add a "gboolean create" argument to pass to camel_store_get_folder.Dan Winship2000-08-111-2/+2
| | | | | | | | | | | | * mail-tools.c (mail_tool_get_folder_from_urlname): Add a "gboolean create" argument to pass to camel_store_get_folder. * mail-ops.c (do_create_folder, do_setup_draftbox): * mail-local.c (mail_tool_local_uri_to_folder): * mail-vfolder.c (vfolder_uri_to_folder): Add create flag to mail_tool_get_folder_from_urlname calls. svn path=/trunk/; revision=4702
* Show 'no new mail' correctly.Peter Williams2000-08-111-9/+34
| | | | svn path=/trunk/; revision=4699
* Fix the infinite movemailPeter Williams2000-08-111-0/+1
| | | | svn path=/trunk/; revision=4696
* Merge with camel-async.Peter Williams2000-08-111-828/+1576
| | | | svn path=/trunk/; revision=4687
* Get the from address set in the composer, if that fails ONLY THEN get theJeffrey Stedfast2000-08-101-14/+15
| | | | | | | | | | | | 2000-08-09 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (composer_send_cb): Get the from address set in the composer, if that fails ONLY THEN get the default from mail config * mail-config.c (mail_config_get_identities): New convenience function for getting a list of the configured identities svn path=/trunk/; revision=4672
* Changed to only take a FolderBrowser argumentJeffrey Stedfast2000-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | 2000-08-09 Jeffrey Stedfast <fejj@helixcode.com> * mail-view.c (mail_view_create): Changed to only take a FolderBrowser argument * mail-ops.c (real_view_msg): Create a new FolderBrowser for each message being opened in a new window. Also set the message_list->cursor_uid and mail_display->current_message to the appropriate values. (real_view_msg): Updated to reflect changes in the mail_view_create * message-list.c (on_right_click): Nicify a little, add in a menu separator between VFolder and Filter stuff. * mail-ops.c (real_view_msg): Set the UID of the message that is being displayed svn path=/trunk/; revision=4662
* Create a new FolderBrowser for each message being opened in a new window.Jeffrey Stedfast2000-08-101-7/+10
| | | | | | | | | | | 2000-08-09 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (real_view_msg): Create a new FolderBrowser for each message being opened in a new window. Also set the message_list->cursor_uid and mail_display->current_message to the appropriate values. svn path=/trunk/; revision=4660
* Nicify a little, add in a menu separator between VFolder and Filter stuff.Jeffrey Stedfast2000-08-101-2/+3
| | | | | | | | | 2000-08-09 Jeffrey Stedfast <fejj@helixcode.com> * message-list.c (on_right_click): Nicify a little, add in a menu separator between VFolder and Filter stuff. svn path=/trunk/; revision=4657
* Set the UID of the message that is being displayedJeffrey Stedfast2000-08-101-1/+2
| | | | | | | | | 2000-08-09 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (real_view_msg): Set the UID of the message that is being displayed svn path=/trunk/; revision=4655
* Fixed some warnings.Christopher James Lahey2000-08-091-0/+1
| | | | | | | | | | | 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
* New convenience function with params of a normal Gtk callback function. WeJeffrey Stedfast2000-08-091-11/+26
| | | | | | | | | | | | | | | | | | | | 2000-08-08 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (view_msg): New convenience function with params of a normal Gtk callback function. We also now create a new FolderBrowser object so that the message-view window isn't tied to the display in the main window (view_message): Now calls view_msg (this function is a bonobo callback and can't be used with gtk widgets) (edit_msg): Same idea as view_msg() (edit_message): Again, same as view_message() * message-list.c (on_right_click): Callback for creating an e-popup-menu (message_list_init): Added a right_click event to trigger a pop-up menu to be displayed svn path=/trunk/; revision=4619
* Add "Don't delete messages from server" button to remote SOURCEs thatDan Winship2000-08-091-46/+90
| | | | | | | | | | | | | | | * mail-config-gui.c: Add "Don't delete messages from server" button to remote SOURCEs that aren't STORAGEs (ie, POP). (provider_list): Only list SOURCEs. (ie, not mh) * mail-config.c: Save/load "keep_on_server" flag. * mail-ops.c (fetch_remote_mail): New function, split out of real_fetch_mail. Deals with copying mail from a remote server into a temporary mbox, possibly using a CamelUIDCache to leave the messages on the server. svn path=/trunk/; revision=4617
* Fix build by allowing includes for e-table dirJP Rosevear2000-08-081-28/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-08-08 JP Rosevear <jpr@helixcode.com> * Makefile.am: Fix build by allowing includes for e-table dir 2000-08-08 JP Rosevear <jpr@helixcode.com> * mail-ops.c (check_configured): Use config accessors (fetch_mail): ditto (composer_send_cb): ditto (create_msg_composer): ditto * mail-config-gui.h: Update API * mail-config.h: Update API * mail-config.c: Add accessor functions (mail_config_is_configured): accessor function (mail_config_get_default_identity): ditto (mail_config_get_default_source): ditto (mail_config_get_transport): ditto (mail_config_send_html): ditto (identity_copy): Make public (identity_destroy): ditto (identity_destroy_each): ditto (service_copy): ditto (service_destroy): ditto (service_destroy_each): ditto (mail_config_init): Rename from init_config and make public (mail_config_clear): Rename from clear_config and make public (mail_config_read): Rename from read_config and make public (mail_config_write): Reanme from write_config and make public * main.c (main): Call mail_config_init. * mail.h: Include mail-config-gui.h * mail-config-gui.c: Move config gui stuff here. (source_dialog): Kill memory leak from debug leftovers. Make sure returned source is NULL by default svn path=/trunk/; revision=4592
* Redone to show a dialogue first, and show progress of whats happening asNot Zed2000-08-081-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | 2000-08-07 Not Zed <NotZed@HelixCode.com> * mail-local.c (local_reconfigure_folder): Redone to show a dialogue first, and show progress of whats happening as its done. * Makefile.am (glade_DATA): Added local-config.glade, for mailbox reconfig dialogue. 2000-08-04 Not Zed <NotZed@HelixCode.com> * folder-browser.c (mail_uri_to_folder): Use local_uri_to_folder() for local uri's (file://). * mail-local.c (local_uri_to_folder): Handle looking up folder storage type before opening the store/folder. (local_reconfigure_folder): Function to reconfigure the format of a local mailbox into another storage format. * Makefile.am (evolution_mail_SOURCES): Added mail-local.c and missing mail-vfolder.h. svn path=/trunk/; revision=4591
* Added mail-view.cJeffrey Stedfast2000-08-081-0/+44
| | | | | | | | | | | | | | | | | 2000-08-07 Jeffrey Stedfast <fejj@helixcode.com> * Makefile.am: Added mail-view.c * folder-browser-factory.c (control_activate): Adda menu item for viewing the message * mail-view.c: New file containing methods for viewing messages in separate windows * mail-ops.c (view_message): New callback for viewing messages in a new window. svn path=/trunk/; revision=4588
* Get rid of kludge around subject beginning with spaces.Jeffrey Stedfast2000-08-081-4/+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
* Clarify that the input row is a model row, and swap it to a view row whenDan Winship2000-08-081-1/+4
| | | | | | | | | | | | * message-list.c (message_list_select): Clarify that the input row is a model row, and swap it to a view row when finding the next/previous row. (idle_select_row): Select view row 0, not model row 0. * mail-ops.c (select_first_unread): Start from view row 0, not model row 0. svn path=/trunk/; revision=4570
* Renamed from reply_body() so other functions can use itJeffrey Stedfast2000-08-071-3/+14
| | | | | | | | | | | | 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 menu item under Actions to allow editing of messages.Jeffrey Stedfast2000-08-071-2/+33
| | | | | | | | | | | 2000-08-07 Jeffrey Stedfast <fejj@helixcode.com> * folder-browser-factory.c (control_activate): New menu item under Actions to allow editing of messages. * mail-ops.c (edit_message): New function for editing messages. svn path=/trunk/; revision=4563
* I pity da foo that committed this bug!Peter Williams2000-08-041-1/+1
| | | | svn path=/trunk/; revision=4528
* Yay, no more compiler warningsJeffrey Stedfast2000-08-041-9/+8
| | | | | | | | 2000-08-03 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (composer_send_cb): Yay, no more compiler warnings svn path=/trunk/; revision=4521
* Check for identity before sending ; remove gconf_init callPeter Williams2000-08-031-0/+11
| | | | svn path=/trunk/; revision=4505
* Emit "model_pre_change" where appropriate.Christopher James Lahey2000-08-031-0/+2
| | | | | | | | | 2000-08-02 Christopher James Lahey <clahey@helixcode.com> * mail-ops.c, message-list.c: Emit "model_pre_change" where appropriate. svn path=/trunk/; revision=4475
* Remove hack to pass the storage around.Not Zed2000-07-301-111/+66
| | | | | | | | | | | | | | | | | | | | | | 2000-07-29 Not Zed <NotZed@HelixCode.com> * component-factory.c (create_view): Remove hack to pass the storage around. * folder-browser-factory.c (control_activate): Changed to call renamed vfolder editor. * mail-ops.c (vfolder_edit_vfolders): renamed from vfolder_edit, call new edit function. (vfolder_editor_clicked): Removed. (filter_druid_clicked): (filter_edit): Updated for api change. (real_fetch_mail): Fixed up for api change and fucked up indent. (filter_get_folder): callback for filter driver. * mail-vfolder.c: New file to manage virtual folders. svn path=/trunk/; revision=4417
* New function to create composer with sig file set.JP Rosevear2000-07-291-48/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Added mark_all_seen(), to mark every message in the list withCody Russell2000-07-291-0/+17
| | | | | | | | | | 2000-07-28 Cody Russell <bratsche@gnome.org> * mail-ops.c, mail.h: Added mark_all_seen(), to mark every message in the list with CAMEL_MESSAGE_SEEN. * folder-browser-factory.c: Added "Actions/Mark all seen". svn path=/trunk/; revision=4412
* Don't create the tmp_mbox before calling movemail, because the externalDan Winship2000-07-271-18/+11
| | | | | | | | | | | * mail-ops.c (real_fetch_mail): Don't create the tmp_mbox before calling movemail, because the external movemail requires it to not exist. Contrariwise, delete it in the cleanup code if it's empty. Update for camel_movemail interface change. Do the "No new messages" dialog in the mbox case as well as the remote mail issue. svn path=/trunk/; revision=4356
* s/struct refile_data/struct move_data (real_move_msg): Renamed fromJeffrey Stedfast2000-07-271-7/+7
| | | | | | | | | | | | 2000-07-26 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c: s/struct refile_data/struct move_data (real_move_msg): Renamed from real_refile_msg() (move_msg): Renamed from refile_msg() * folder-browser-factory.c: Changed Refile to Move. svn path=/trunk/; revision=4347
* Fix crash on NULL current_message when replying.Peter Williams2000-07-261-1/+2
| | | | svn path=/trunk/; revision=4319
* Update for CamelFolder API changes. (Certain functions no longer take aDan Winship2000-07-251-8/+6
| | | | | | | | | | | | | | * message-list.c (mark_msg_seen, ml_tree_set_value_at, message_list_regenerate): Update for CamelFolder API changes. (Certain functions no longer take a CamelException.) * mail-ops.c (real_fetch_mail, real_send_mail, real_delete_msg): ditto * component-factory.c (real_create_imap_storage, real_create_news_storage): ditto svn path=/trunk/; revision=4305
* Add a "Send HTML mail" toggle in the message composer.Ettore Perazzoli2000-07-231-3/+34
| | | | svn path=/trunk/; revision=4284
* Put the version number in the `X-Mailer:' header instead of justEttore Perazzoli2000-07-161-2/+14
| | | | | | "Developer Preview". svn path=/trunk/; revision=4179
* Back to the old way to avoid g_warnings, yay. Also fix append to send aJeffrey Stedfast2000-07-131-1/+2
| | | | | | | | | 2000-07-13 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (real_fetch_mail): Back to the old way to avoid g_warnings, yay. Also fix append to send a flags argument (0) svn path=/trunk/; revision=4139
* Back to the old way to avoid g_warnings, yayJeffrey Stedfast2000-07-131-2/+18
| | | | | | | | | 2000-07-13 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (real_fetch_mail): Back to the old way to avoid g_warnings, yay svn path=/trunk/; revision=4138
* Changed to use camel_folder_move_message_to () rather than get_message ()Jeffrey Stedfast2000-07-121-17/+2
| | | | | | | | | | | | | | | | | 2000-07-11 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (real_fetch_mail): Changed to use camel_folder_move_message_to () rather than get_message () and then append_message (). This also makes it so we don't have to worry about fetching message flags to pass to the new append_message () method. * folder-browser.c (folder_browser_load_folder): Disable Search capability menu/entry if folder doesn't support it. * message-list.c (message_list_regenerate): Don't perform a search if the folder doesn't support it. svn path=/trunk/; revision=4098
* Set the post_send_data flag rather than toggling it. (Maybe we'll needDan Winship2000-07-121-5/+2
| | | | | | | | | * mail-ops.c (real_send_mail): Set the post_send_data flag rather than toggling it. (Maybe we'll need more control over it later, but for now, the only flag we set is "replied", and we want that set, not toggled.) svn path=/trunk/; revision=4096
* kill more debugging messagesDan Winship2000-07-111-14/+0
| | | | | | * kill more debugging messages svn path=/trunk/; revision=4050
* Don't multiply free dest_url.Dan Winship2000-07-111-2/+0
| | | | | | * mail-ops.c (real_fetch_mail): Don't multiply free dest_url. svn path=/trunk/; revision=4049
* Update message_list_select_next to do either next or previous.Dan Winship2000-07-111-18/+11
| | | | | | | | | | | | | * message-list.c (message_list_select): Update message_list_select_next to do either next or previous. * folder-browser.c (etable_key): Make 'n' and 'p' do next and previous unread message. * mail-ops.c (select_first_unread): Update. (real_fetch_mail): clean up a bit. svn path=/trunk/; revision=4046
* Fix an unitialized variable error.Ettore Perazzoli2000-07-111-0/+3
| | | | svn path=/trunk/; revision=4045
* Fixed broken POP fetchingJeffrey Stedfast2000-07-111-0/+10
| | | | | | | | 2000-07-10 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (real_fetch_mail): Fixed broken POP fetching svn path=/trunk/; revision=4042
* Fixed movemail so that it too would deliver to Inbox.Jeffrey Stedfast2000-07-101-38/+26
| | | | | | | | | 2000-07-10 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (real_fetch_mail): Fixed movemail so that it too would deliver to Inbox. svn path=/trunk/; revision=4029
* Don't g_warn if the user selects a fake tree parent.Dan Winship2000-07-101-7/+4
| | | | | | | | | | | | | | | | * message-list.c (get_message_info): Don't g_warn if the user selects a fake tree parent. (message_list_select_next): Ignore fake rows (build_tree): Store the "root_subject" for fake rows (ml_tree_value_at): Display the correct subject for fake rows. (on_cursor_change_cmd): Update for the other changes and set cursor_uid to NULL when the cursor is on a fake row. * mail-ops.c (reply): Don't try to reply when no (real) message is selected. (forward_msg): Ditto. svn path=/trunk/; revision=4021
* Always dump incoming messages to Inbox (assuming not filtered to anotherJeffrey Stedfast2000-07-091-25/+58
| | | | | | | | | 2000-07-08 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (real_fetch_mail): Always dump incoming messages to Inbox (assuming not filtered to another location). svn path=/trunk/; revision=3996
* Deal with having multiple selected messages.Dan Winship2000-07-091-2/+55
| | | | | | | | | | * 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
* fix warnings.Dan Winship2000-07-071-1/+0
| | | | | | | * folder-browser-factory.c, folder-browser.c, mail-ops.c, message-list.c: fix warnings. svn path=/trunk/; revision=3931
* New function to select the first message on or after the given row thatDan Winship2000-07-071-7/+20
| | | | | | | | | | | | | | | | | * message-list.c (message_list_select_next): New function to select the first message on or after the given row that meets certain flag criteria. * folder-browser.c (etable_key): call message_list_select_next to select next non-deleted message after Delete. * mail-ops.c (real_fetch_mail): call message_list_select_next to select first unread message in current folder if it changes. (real_delete_msg): Remove the code to move the etable cursor. It only makes sense really if you deleted the message with the keyboard, so do it from there. svn path=/trunk/; revision=3927
* Well, delete, expunge, appear broken, it sorts (initially) at least now.Michael Zucci2000-07-061-1/+2
| | | | | | | | | | | | * message-thread.c (sort_thread): sort messages based on date for the initial sort order. (thread_messages_free): Implement. (message_list_init): set the root node invisible afterall. (message_list_set_search): Clear the old tree before putting in a new one. svn path=/trunk/; revision=3922
* Remove hack to redisplay the inbox, since folder_changed signals will nowDan Winship2000-07-031-5/+0
| | | | | | | | * mail-ops.c (real_fetch_mail): Remove hack to redisplay the inbox, since folder_changed signals will now be emitted appropriately. svn path=/trunk/; revision=3866
* Pass mail_uri_to_folder and rules to filter_driver_new.Dan Winship2000-07-031-5/+2
| | | | | | | | | * mail-ops.c (real_fetch_mail): (vfolder_editor_clicked): * component-factory.c (create_vfolder_storage): Pass mail_uri_to_folder and rules to filter_driver_new. svn path=/trunk/; revision=3860
* Added an extra @allowed_types parameter to the shell's folderEttore Perazzoli2000-07-021-1/+2
| | | | | | selection dialog, and update the code that uses it accordingly. svn path=/trunk/; revision=3854
* Updated to reflect camel-folder changes.Jeffrey Stedfast2000-07-011-2/+2
| | | | | | | | | | | | 2000-07-01 Jeffrey Stedfast <fejj@helixcode.com> * message-list.c (get_message_info): (select_msg): Updated to reflect camel-folder changes. * mail-ops.c (real_fetch_mail): Modified to reflect camel-folder changes. svn path=/trunk/; revision=3844
* Use gnome-print to do a print preview.Dan Winship2000-07-011-0/+21
| | | | | | | | * mail-ops.c (print_msg): Use gnome-print to do a print preview. * folder-browser-factory.c: Hook up "Print" button. svn path=/trunk/; revision=3835
* New function, a wrapper around e_table_selected_row_foreach, which callsDan Winship2000-07-011-19/+76
| | | | | | | | | | | | | | | | | | | | | * message-list.c (message_list_foreach): New function, a wrapper around e_table_selected_row_foreach, which calls the callback function with UIDs rather than row numbers. * folder-browser-factory.c: Remove never-used "Find" button from the toolbar and replace it with "Refile". (We need a better icon for this...). Hook up "Refile" to "refile_msg". * mail-ops.c (refile_msg): Call the shell's user_select_folder routine, and then use message_list_foreach and real_refile_msg to do the work. (delete_msg): Update to use message_list_foreach. * folder-browser.c (mail_uri_to_folder): new function, extracted from folder_browser_load_folder, to turn a URI into a folder. (folder_browser_load_folder): Use it. svn path=/trunk/; revision=3833
* use the ETable row_selection signal to track how many rows are selected.Dan Winship2000-07-011-1/+1
| | | | | | | | | | | | | | | * message-list.c (on_row_selection): use the ETable row_selection signal to track how many rows are selected. Eventually we will use this info to disable toolbar buttons when you have too few/too many messages selected, but the current toolbar widget doesn't allow that. * message-list.h, message-list.c, mail-ops.c: Change selected_row and selected_uid fields of MessageList to cursor_row and cursor_uid to be more correct according to the new ETable interfaces. svn path=/trunk/; revision=3829
* oops, corrected the gtk/gnome castsJeffrey Stedfast2000-06-301-4/+4
| | | | svn path=/trunk/; revision=3813
* Clean up compile warnings (real_fetch_mail): Fetching from IMAP should doJeffrey Stedfast2000-06-301-113/+111
| | | | | | | | | 2000-06-29 Jeffrey Stedfast <fejj@helixcode.com> * mail-ops.c (delete_msg): Clean up compile warnings (real_fetch_mail): Fetching from IMAP should do nothing svn path=/trunk/; revision=3811
* Handle multiple deletes (change by Peter Williams.)Christopher James Lahey2000-06-301-17/+27
| | | | | | | | 2000-06-29 Christopher James Lahey <clahey@helixcode.com> * mail-ops.c: Handle multiple deletes (change by Peter Williams.) svn path=/trunk/; revision=3809
* Changed "Send" to "Compose" to avoid user confusion. Compose is a littleJeffrey Stedfast2000-06-301-1/+1
| | | | | | | | | | | 2000-06-29 Jeffrey Stedfast <fejj@helixcode.com> * folder-browser-factory.c: Changed "Send" to "Compose" to avoid user confusion. Compose is a little more intuitive. * mail-ops.c (compose_msg): Renamed to avoid confusion svn path=/trunk/; revision=3805
* From mail:Christopher James Lahey2000-06-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-06-29 Christopher James Lahey <clahey@helixcode.com> * message-list.c, mail-ops.c: Changed the name of e_table_select_row to e_table_set_cursor_row. From widgets/e-table: 2000-06-29 Christopher James Lahey <clahey@helixcode.com> * e-table-click-to-add.c: Made this appear a bit better. * e-table-defines.h: Cleaned this up a bit, added ETableForeachFunc. * e-table-group-container.c, e-table-group-leaf.c, e-table-group.c, e-table-group.h, e-table-item.c, e-table-item.h, e-table.c, e-table.h: Changed e_table_select_row to e_table_set_cursor_row. Changed e_table_get_selected_view_row to e_table_get_cursor_row. Added e_table_selected_row_foreach. * e-table-header-item.c: Fixed some warnings. * e-table-sorted-variable.c: Removed some unneeded debugging print statments. * e-tree-example-1.c: Changed e_table_get_selected_view_row to e_table_get_cursor_row. svn path=/trunk/; revision=3799
* Make the broken threads optionalPeter Williams2000-06-271-0/+25
| | | | svn path=/trunk/; revision=3740
* Land most of the stuff to move fetch_mail, send_mail, expunge_folder, ↵Peter Williams2000-06-241-72/+191
| | | | | | init_imap, and init_news to async operation. svn path=/trunk/; revision=3711
* Revert Peter's change and Chris's fix to it, since it looks like PeterDan Winship2000-06-231-62/+23
| | | | | | probably didn't actually intend to commit it yet... svn path=/trunk/; revision=3699
* new function, passed as arg to mail_operation_try. (fetch_mail): addChris Toshok2000-06-231-1/+7
| | | | | | | | | | 2000-06-22 Chris Toshok <toshok@helixcode.com> * mail-ops.c (fetch_mail_cleanup): new function, passed as arg to mail_operation_try. (fetch_mail): add cleanup func arg. svn path=/trunk/; revision=3698
* Prettify the progress dialog a bit.Peter Williams2000-06-221-23/+56
| | | | svn path=/trunk/; revision=3689
* Add a confirmation dialog box for when the user tries to send aEttore Perazzoli2000-06-201-0/+28
| | | | | | message without a subject. svn path=/trunk/; revision=3644
* new function to do a uid to row mapping. (mark_msg_seen, select_msg,Dan Winship2000-06-171-33/+51
| | | | | | | | | | | | | | | | | | * message-list.c (get_message_row): new function to do a uid to row mapping. (mark_msg_seen, select_msg, message_changed, message_list_set_folder): Update for Camel flag changes. (on_cursor_change_cmd): Rename "row_to_select" to "selected_row", and keep a "selected_uid" as well. * mail-ops.c (composer_send_cb): Update for Camel flag changes, and fix some memory-handling bugs. (Free the post_send_data when the composer is destroyed, not when the user clicks "send", which could happen never, or more than once.) (delete_msg): Update for Camel flag changes, and fix the "holding down the delete key skips some messages" bug. svn path=/trunk/; revision=3600
* Update for CamelFolder changes.Dan Winship2000-06-161-9/+2
| | | | | | | | | * mail-ops.c (fetch_mail): * component-factory.c (owner_unset_cb): * message-list.c (message_list_set_folder): Update for CamelFolder changes. svn path=/trunk/; revision=3583
* New function to revert back to non-searching mode.Dan Winship2000-06-161-0/+2
| | | | | | | | | * folder-browser.c (folder_browser_clear_search): New function to revert back to non-searching mode. * mail-ops.c (fetch_mail): Use folder_browser_clear_search. svn path=/trunk/; revision=3576
* if the document requests an unknown URL, it's not an error; just ignoreDan Winship2000-06-151-0/+8
| | | | | | | | | * mail-display.c (on_url_requested): if the document requests an unknown URL, it's not an error; just ignore the URL. * mail-ops.c (fetch_mail): If there's no new mail, tell the user. svn path=/trunk/; revision=3574
* display error from camel_folder_expunge if there is one.Dan Winship2000-06-101-3/+0
| | | | | | | * mail-ops.c (expunge_folder): display error from camel_folder_expunge if there is one. svn path=/trunk/; revision=3500
* close and expunge the source folder after copying it to a local folder.Dan Winship2000-06-101-0/+3
| | | | | | | * mail-ops.c (fetch_mail): close and expunge the source folder after copying it to a local folder. svn path=/trunk/; revision=3493
* Update for folder creation/existence changes.Dan Winship2000-06-071-7/+4
| | | | | | | | | | | | * mail-ops.c (fetch_mail): * folder-browser.c (folder_browser_load_folder): Update for folder creation/existence changes. * message-list.c (message_list_set_folder): Remove the code to create the folder if it doesn't exist, since we don't want to do that. svn path=/trunk/; revision=3455
* Leave the composer window around if the message doesn't get sent.Dan Winship2000-06-061-6/+9
| | | | | | | * mail-ops.c (composer_send_cb): Leave the composer window around if the message doesn't get sent. svn path=/trunk/; revision=3436
* fix some function prototypesDan Winship2000-06-061-4/+7
| | | | | | * mail.h, mail-ops.c: fix some function prototypes svn path=/trunk/; revision=3433
* Use camel_service_connect, not connect_with_url, since we already passedDan Winship2000-06-031-2/+1
| | | | | | | | * mail-ops.c (fetch_mail): Use camel_service_connect, not connect_with_url, since we already passed the URL into camel_session_get_store. svn path=/trunk/; revision=3392
* Add a quick hack to move the selection down a row when you delete aDan Winship2000-06-021-1/+10
| | | | | | | * mail-ops.c (delete_msg): Add a quick hack to move the selection down a row when you delete a message. svn path=/trunk/; revision=3355
* started to add a camel provider configuration toolJeffrey Stedfast2000-05-311-4/+14
| | | | svn path=/trunk/; revision=3287
* don't put up an error message if the user cancels the password dialog.Dan Winship2000-05-291-1/+2
| | | | | | | * mail-ops.c (fetch_mail): don't put up an error message if the user cancels the password dialog. svn path=/trunk/; revision=3245
* vfolder gui! So you can define them,k they show up in the list (well,Not Zed2000-05-281-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | after a restart), but they always come up empty - doesn't search any folders yet. 2000-05-27 Not Zed <NotZed@HelixCode.com> * Makefile.am (SHELL_OBJS): Include mail storage so we can initialise folders. * component-factory.c (create_test_storage): Parses vfolder defintions and adds them to the storage. Definetly needs more work. * folder-browser-factory.c (control_activate): Add the VFolder druid menu item. (control_deactivate): And remove it. * mail-ops.c (vfolder_editor_clicked): For editing vfolder definitions (rather like filters, oddly enough :). Tries to update the shell but it doesn't seem to work properly - requires a mail component restart to take effect. * folder-browser.c (folder_browser_load_folder): Handle vfolder: urls' appropriately and map to camel. Still needs a way to tell the vfolder what folders to search! (all vfolders come up empty!). svn path=/trunk/; revision=3241
* set CAMEL_MESSAGE_ANSWERED on a message after a successful reply.Dan Winship2000-05-271-8/+27
| | | | | | | | | | * mail-ops.c (composer_send_cb, reply): set CAMEL_MESSAGE_ANSWERED on a message after a successful reply. * message-list.c (folder_changed): free the summary with camel_folder_free_summary rather than g_ptr_array_free. svn path=/trunk/; revision=3221
* connect to and disconnect from the transport.Dan Winship2000-05-251-3/+8
| | | | | | | * mail-ops.c (composer_send_cb): connect to and disconnect from the transport. svn path=/trunk/; revision=3197
* Update for camel_folder_get_uids (folder_changed,Dan Winship2000-05-191-8/+9
| | | | | | | | | | * message-list.c (select_msg): Update for camel_folder_get_uids (folder_changed, message_list_set_folder): Update for camel_folder_get_summary * mail-ops.c (fetch_mail): Update for camel_folder_get_uids svn path=/trunk/; revision=3128
* Ok, so all incoming mail comes through filters, yay!NotZed2000-05-171-64/+90
| | | | | | | | | | | | | | | | | | The default is just to copy to the inbox. I wouldn't trust this code as far as i could piss up a wall, just yet. 2000-05-16 NotZed <NotZed@HelixCode.com> * mail-ops.c (fetch_mail): Apply filters to incoming mail ... *hold breath* If we are coming from a non-indexed/searchable/etc source, then copy it to an mbox first. When copying mail from an mbox source, dont remove it aftewards, open it for append, so partially filtered mail isn't lost. svn path=/trunk/; revision=3102
* New menu to bring up the filter editor, and edit filters. They dontNotZed2000-05-171-0/+38
| | | | | | | | | | | | | | | get invoked yet though. 2000-05-16 NotZed <NotZed@HelixCode.com> * mail-ops.c (filter_edit): Function to bring up the filter editor. (filter_druid_clicked): Save/close dialogue. * Makefile.am (evolution_mail_LDADD): Added libfilter. (INCLUDES): Add EVOLUTION_DATADIR, and fix matt's brokeneditor(tm) for putting spaces instead of tabs in. svn path=/trunk/; revision=3099
* Use 6 X's to mkstemp, as required by the man page, just a temp fix, thisNotZed2000-05-131-1/+1
| | | | | | | | | | 2000-05-12 NotZed <NotZed@HelixCode.com> * mail-ops.c (fetch_mail): Use 6 X's to mkstemp, as required by the man page, just a temp fix, this should probably change to a known filename. svn path=/trunk/; revision=3007
* make this a little less kludgy. Use gnome_error_dialog rather than printfDan Winship2000-05-091-36/+16
| | | | | | | | | | | | | | | * folder-browser.c (folder_browser_load_folder): make this a little less kludgy. Use gnome_error_dialog rather than printf on errors. * mail-ops.c (fetch_mail): Fix to work with the new shell stuff... sorta. Will need more fixing later when the new shell framework is more done. * mail-config.c (finish): Call gnome_config_sync so the data actually gets written. svn path=/trunk/; revision=2931
* Don't hardcode "inbox" here.Dan Winship2000-05-071-4/+6
| | | | | | | | | | | | | | | | | | | * folder-browser-factory.c (folder_browser_factory): Don't hardcode "inbox" here. * folder-browser.c (folder_browser_set_uri): Don't hardcode "inbox" here either. (folder_browser_load_folder): Create a new store according to the folder browser's URI, and load the mbox file from that store. Parts of this are temporary. * session.c, mail.h: There is no longer a global store, just a global session. * mail-config.c, mail-ops.c: Update for default_session -> session change. fetch_mail is currently broken. svn path=/trunk/; revision=2853
* New code to configure identity, mail source, and mail transport.Dan Winship2000-05-071-40/+114
| | | | | | | | | | | | | | | | | | | * mail-config.c: New code to configure identity, mail source, and mail transport. (mail_config_druid): A druid using the config widgets. (Only allows configuration of a single identity, source, and transport.) * mail-ops.c (check_configured): New function to make sure the user has configured stuff, and call the druid if not. (fetch_mail, send_msg, send_to_url, reply, forward_msg): Call check_configured (composer_send_cb): Make this pass the message to a CamelTransport rather than just printing it to stdout. * folder-browser-factory.c (development_warning): Add a warning about sending mail, since you can do that now. svn path=/trunk/; revision=2842
* consolidate mail-format.h, mail-identify.h, mail-ops.h, main.h andDan Winship2000-05-071-5/+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
* Ok, you can now delete and expunge messages ... not really prettyMichael Zucci2000-05-021-0/+42
| | | | | | | | | | | | | | (gui wise), but it works, after a fashion. > * folder-browser-factory.c: Setup callback for actual delete op. > (control_activate): Setup a tool menu item to expnge deleted > messages. > > * mail-ops.c (delete_msg): Toggle the delete flag on a message. > (expunge_folder): New function to expunge deleted messages from > the current folder. svn path=/trunk/; revision=2744
* This is no longer necessary.Dan Winship2000-04-301-13/+1
| | | | | | | | | * session.c (session_providers_init): This is no longer necessary. * mail-ops.c (fetch_mail): Remove kludge to load remote provider, as camel can do it by itself now. svn path=/trunk/; revision=2692
* Oops. Remove the part of the previous patch that wasn't supposed toDan Winship2000-04-281-24/+8
| | | | | | escape into the real world. :) svn path=/trunk/; revision=2665
* Move text_to_html to e-util.Dan Winship2000-04-281-8/+36
| | | | | | | | | | | | | * 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
* rename "send" to "send_msg", to avoid name clash with the tcp function.Dan Winship2000-04-241-1/+18
| | | | | | | | | | | | | | * 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
* #include "mail-format.h"Dan Winship2000-04-231-0/+1
| | | | svn path=/trunk/; revision=2555
* move msg_composer_cb and msg_composer_send_cb to mail-ops. Attach send,Dan Winship2000-04-231-0/+61
| | | | | | | | | | | | | | | | | * 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
* Add some #includes for the non-HAVE_MKSTEMP caseDan Winship2000-04-101-0/+5
| | | | | | * mail-ops.c: Add some #includes for the non-HAVE_MKSTEMP case svn path=/trunk/; revision=2361
* use camel_movemail when fetching mail from an mbox store. This leavesDan Winship2000-04-101-14/+76
| | | | | | | | | | * mail-ops.c (fetch_mail): use camel_movemail when fetching mail from an mbox store. This leaves behind temp files for now, because CamelMboxFolder::delete is too confused to use, and NotZed is rewriting CamelMboxFolder, so I'm not going to bother to try to fix it. svn path=/trunk/; revision=2359
* new file, for toolbar/menu callbacks (fetch_mail): fetch mail. Doesn't doDan Winship2000-04-081-0/+185
* mail-ops.c: new file, for toolbar/menu callbacks (fetch_mail): fetch mail. Doesn't do mbox locking. Many kludges. * folder-browser-factory.c (control_activate): use new fetch_mail function as the callback for the "New mail" icon. Rename check_cb to random_cb. * Makefile.am: don't build test-sources since the version in CVS doesn't do much and once I've fixed it it won't be a separate program. Add mail-ops.[ch]. svn path=/trunk/; revision=2330