* providers/imap/camel-imap-search.c: New CamelFolderSearch
subclass that just reimplements body_contains (using the IMAP
SEARCH command). All other kinds of searching are done against the
local summary.
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
Use a CamelImapSearch to do searching.
* providers/imap/camel-imap-utils.c (imap_translate_sexp, etc): No
longer needed.
* camel-folder-search.h: Add missing CAMEL_FOLDER_SEARCH_TYPE
#define
svn path=/trunk/; revision=7119
2000-12-01 Jeffrey Stedfast <fejj@helixcode.com>
* camel-folder-search.h: Added system_flag to CamelFolderSearchClass
* camel-folder-summary.c (camel_system_flag_get): Convenience
function to return whether or not a flag is set using a string as
the flag name.
(camel_system_flag): Return the integer value of the flag string.
* camel-folder-search.c (search_system_flag): New ESExp callback
for allowing vfoldering on CamelMessageInfo flags.
svn path=/trunk/; revision=6763
2000-11-21 Not Zed <NotZed@HelixCode.com>
* providers/local/camel-mh-summary.c (mh_summary_sync_message):
Shite, -1 on error, >=0 on success. So i've just been truncating
all the messages I touched, good one zed.
(mh_summary_sync_message): Sigh, and write to the right damn fd as
well.
(mh_summary_sync_message): Argh, and we need to compare the length
of the old xev -1 to the new xev, to check if we can optimise it.
* camel-folder.c (camel_folder_change_info_new): Init the pool.
(camel_folder_change_info_add_source): Allocate string in the
pool.
(camel_folder_change_info_add_source_list):
(camel_folder_change_info_add_update): No longer free the key, as
it cannot be yet.
(change_info_add_uid): Add a new arg, copy, telling it whether to
copy the uid argument or not, and copy using mempool_strdup.
(change_info_cat): Tell add_uid to copy the string.
(camel_folder_change_info_add_update): Call add_uid directly.
(change_info_remove): Call add_uid directly, with no copy, and
dont free the key.
(change_info_free_update): No longer required since we dont malloc
the keys.
(camel_folder_change_info_add_uid): Fix for add_uid change.
(camel_folder_change_info_remove_uid):
(camel_folder_change_info_change_uid):
(change_info_clear): No longer needed, just set the size to 0 on
the array directly.
(camel_folder_change_info_clear): Empty the arrays directly, and
flush the mempool too, and also clear uid_source, incase anyone
was silly enough to call us in the wrong order.
(camel_folder_change_info_free): Dont bother clearing the array's
contents, just free the pool and throw away all the indexes.
* camel-folder.h: Added a mempool to CamelFolderChangeInfo to
store the uid's we get.
* camel-folder-search.c (search_match_all): If we are only
matching a single info, just use that/do the search.
(camel_folder_search_match_expression): New function. Matches a
single message info against an expression.
(camel_folder_search_init): Init a hash table used to map the
returned gptrarrays' to mempools.
(camel_folder_search_execute_expression): Store all of the string
data in a mempool, slightly faster, less wasted space (usually),.
(camel_folder_search_free_result): Check for the mempool that
stores the data for the list, and free that if we have it,
otherwise assume we need to use g_free() (which should only happen
if the list is empty at the moment).
: commented out the debugging prints. Got sick of 'executing
header search' crap.
* providers/vee/camel-vee-folder.c (camel_vee_folder_init): Init
changes.
(camel_vee_folder_finalise): Free changes.
(vfolder_add_match): Simple helper to add a new matching info
record.
(camel_vee_folder_add_folder): Only trigger a changed event if we
have changes.
(vfolder_change_match): New function, changes our local vfolder
info to match the source.
(vfolder_add_match): Add a new info to the vfolder list.
(vfolder_remove_match): Remove a no-longer matching info from the
vfolder summary.
(message_changed): check if the message still matches, and
remove/etc as required.
(camel_vee_folder_finalise, init): init/free search object.
(vee_folder_build_folder): Build the changes to the folder into
the changes data, as we go.
(folder_changed): If the folder gave us an explicit list of
changes, then process each one separately (unless there's a lot
added/changed).
* providers/vee/camel-vee-folder.h: Added a changes field to the
folder.
svn path=/trunk/; revision=6628
2000-10-18 Not Zed <NotZed@HelixCode.com>
* camel-mime-part.c (add_header): No, we must not encode the
headers here. These interfaces ARE raw interfaces as they are
defined in camel_medium. Also removed a bogus/meaningless FIXME.
(set_header): Likewise here, we must not.
(process_header): Removed another bogus comment.
* camel-object.c (shared_is_of_type): Comment out the spitting of
a big warning when we're trying to determine types from code.
* providers/mbox/camel-mbox-summary.c
(message_info_new_from_parser): Only call ibex funcitons if we
have an index.
* providers/mh/camel-mh-summary.c (camel_mh_summary_add): Only
call ibex functions if we have an index.
(remove_summary): Likewise.
(camel_mh_summary_check): Likewise.
* providers/nntp/camel-nntp-store.c (nntp_store_get_folder):
get_folder -> flags argument.
* providers/vee/camel-vee-store.c (vee_get_folder): create->flags.
* providers/pop3/camel-pop3-store.c (get_folder): Changed create
-> flags.
* providers/imap/camel-imap-store.c (get_folder): Added flags
argument.
* providers/mh/camel-mh-folder.c (camel_mh_folder_new): Added
flags argument, and fixed code appropriately.
* providers/mh/camel-mh-store.c (get_folder): Added flags argument.
* camel-folder-search.c (message_body_contains): Perform a regex
match on the contents of messages. This wont quite work yet as
message contents are encoded when written to a stream.
(build_match_regex): Converts a number of strings into a regex
matching pattern, escaping special chars.
(match_message): match a single message from a folder, by uid.
Slow.
(search_body_contains): Changed to support matching where no index
is supplied. Matches are performed by retrieving message
contents, etc.
() WTF? camel should not be including any widget headers.
* providers/mbox/camel-mbox-folder.c (camel_mbox_folder_new):
Added flags argument.
(mbox_refresh_info): Changed into a NOP, the refresh info code
moved into the new function.
(camel_mbox_folder_new): If we have an index requested, build one,
otherwise, remove an old one, or just dont do anything.
* providers/mbox/camel-mbox-store.c (get_folder): Changed create
to flags, changed code to suit.
* camel-store.c (camel_store_get_folder): Changed create to flags.
(get_folder_internal): And here.
(get_folder): And here too.
* camel-store.h (camel_store_get_folder): Change the create
argument to be a flags argument.
svn path=/trunk/; revision=5978
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* configure.in: Added check for gnome-app-lib. Removed
directories that have been moved to gal.
From addressbook/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/Makefile.am, contact-editor/Makefile.am,
ename/Makefile.am, gui/component/Makefile.am,
gui/widgets/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* backend/ebook/e-card.c, backend/pas/pas-backend-file.c,
contact-editor/e-contact-editor-address.c,
contact-editor/e-contact-editor-categories.c,
contact-editor/e-contact-editor-categories.h,
contact-editor/e-contact-editor-fullname.c,
contact-editor/e-contact-editor.c,
contact-editor/e-contact-save-as.c, ename/e-address-western.c,
ename/test-ename-western-gtk.c,
gui/component/addressbook-factory.c, gui/component/addressbook.c,
gui/component/e-cardlist-model.h, gui/component/e-ldap-storage.c,
gui/component/select-names/e-select-names-bonobo.c,
gui/component/select-names/e-select-names-manager.c,
gui/component/select-names/e-select-names-model.c,
gui/component/select-names/e-select-names-table-model.c,
gui/component/select-names/e-select-names-table-model.h,
gui/component/select-names/e-select-names-text-model.h,
gui/component/select-names/e-select-names.c,
gui/component/select-names/e-select-names.h,
gui/search/e-addressbook-search-dialog.c,
gui/widgets/e-addressbook-model.h,
gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-label.c,
gui/widgets/e-minicard-view-widget.c,
gui/widgets/e-minicard-view-widget.h,
gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h,
gui/widgets/e-minicard-widget.h, gui/widgets/e-minicard.c,
gui/widgets/test-minicard-label.c, gui/widgets/test-reflow.c,
printing/e-contact-print.c: Fixed the #include lines to deal
properly with gal.
From calendar/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* gui/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* gui/calendar-model.h, gui/e-calendar-table.c, gui/e-day-view.c,
gui/e-week-view-event-item.c, gui/e-week-view.c,
gui/event-editor.c, gui/gncal-todo.c, gui/gnome-cal.c, gui/main.c,
gui/print.c, gui/dialogs/task-editor.c: Fixed the #include lines
to deal properly with gal.
* gui/check-filled.xpm: New file since we can't include it from
e-table anymore.
From camel/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* camel-folder-search.c, camel-folder-search.h,
camel-remote-store.c, providers/imap/camel-imap-folder.c,
providers/imap/camel-imap-store.c: Fixed the #include lines to
deal properly with gal.
From composer/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-msg-composer-address-dialog.c, e-msg-composer-address-entry.c,
e-msg-composer-attachment.c, e-msg-composer-hdrs.c,
e-msg-composer.c: Fixed the #include lines to deal properly with
gal.
From e-util/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Removed all the files moved to gal.
* e-dialog-widgets.c: Fixed the #include lines to deal properly
with gal.
* e-gui-utils.c, e-gui-utils.h: Removed all of the functionality
that was moved to gal.
* e-canvas-utils.c, e-canvas-utils.h, e-canvas-vbox.c,
e-canvas-vbox.h, e-canvas.c, e-canvas.h, e-cursors.c, e-cursors.h,
e-font.c, e-font.h, e-popup-menu.c, e-popup-menu.h, e-printable.c,
e-printable.h, e-unicode.c, e-unicode.h, e-util.c, e-util.h,
e-xml-utils.c, e-xml-utils.h: Moved to gal.
From filter/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* filter-editor.c, filter-filter.c, filter-folder.c,
filter-input.c, filter-message-search.c, filter-option.c,
filter-rule.c, score-editor.c, vfolder-editor.c, vfolder-rule.c:
Fixed the #include lines to deal properly with gal.
From mail/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* component-factory.c, folder-browser-factory.c, folder-browser.c,
mail-callbacks.c, mail-config-gui.c, mail-display.c,
mail-display.h, main.c, message-list.c, message-list.h: Fixed the
#include lines to deal properly with gal.
From po/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* POTFILES.in: Removed files that have been moved to gal.
From shell/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-component-registry.c, e-corba-storage-registry.c,
e-corba-storage.c, e-folder-type-registry.c, e-folder.c,
e-local-folder.c, e-local-storage.c,
e-shell-folder-creation-dialog.c,
e-shell-folder-selection-dialog.c, e-shell-folder-title-bar.c,
e-shell-view.c, e-shell.c, e-shortcuts-view.c, e-shortcuts.c,
e-storage-set-view.c, e-storage-set-view.h, e-storage-set.c,
e-storage.c, evolution-local-storage.c, evolution-session.c,
evolution-shell-client.c, evolution-shell-component-client.c,
evolution-shell-component.c, evolution-shell-view.c,
evolution-storage-listener.c, evolution-storage.c, main.c: Fixed
the #include lines to deal properly with gal.
From widgets/meeting-time-sel/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-meeting-time-sel-list-item.c, e-meeting-time-sel.c,
e-meeting-time-sel.h: Fixed the #include lines to deal properly
with gal.
If you've read this far, you deserve a prize. The first email in my
mailbox with the subject "What a commit message!" (and your physical
mailing address somewhere in the message) will receive a free Helix
Code T-shirt mailed to anywhere within the continental United States.
I cannot be held responsible for problems with email systems anywhere.
This is supposed to be for fun, so please don't make a fuss if
something goes wrong and your mail doesn't reach me. Find my email
elsewhere in this message, and if it's been more than a few days,
you're probably too late.
From widgets/misc/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-calendar-item.c, e-calendar.c, e-calendar.h, e-title-bar.c:
Fixed the #include lines to deal properly with gal.
* e-scroll-frame.c, e-scroll-frame.h: Moved to gal.
From widgets/shortcut-bar/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-icon-bar.c, e-icon-bar.h, e-shortcut-bar.c,
e-shortcut-model.c, test-shortcut-bar.c: Fixed the #include lines
to deal properly with gal.
From widgets/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Removed directories that have been moved to gal.
* e-paned/.cvsignore, e-paned/Makefile.am, e-paned/e-hpaned.c,
e-paned/e-hpaned.h, e-paned/e-paned.c, e-paned/e-paned.h,
e-paned/e-vpaned.c, e-paned/e-vpaned.h: Moved to gal.
* e-reflow/.cvsignore, e-reflow/Makefile.am,
e-reflow/e-reflow-sorted.c, e-reflow/e-reflow-sorted.h,
e-reflow/e-reflow.c, e-reflow/e-reflow.h: Moved to gal.
* e-table/.cvsignore, e-table/ChangeLog, e-table/LICENSE,
e-table/Makefile.am, e-table/ROADMAP.e-table, e-table/TODO,
e-table/add-col.xpm, e-table/arrow-down.xpm, e-table/arrow-up.xpm,
e-table/check-empty.xpm, e-table/check-filled.xpm,
e-table/clip.png, e-table/e-cell-checkbox.c,
e-table/e-cell-checkbox.h, e-table/e-cell-string.c,
e-table/e-cell-text.c, e-table/e-cell-text.h,
e-table/e-cell-toggle.c, e-table/e-cell-toggle.h,
e-table/e-cell-tree.c, e-table/e-cell-tree.h, e-table/e-cell.c,
e-table/e-cell.h, e-table/e-table-click-to-add.c,
e-table/e-table-click-to-add.h, e-table/e-table-col-dnd.h,
e-table/e-table-col.c, e-table/e-table-col.h,
e-table/e-table-column-model.h, e-table/e-table-column.c,
e-table/e-table-config.c, e-table/e-table-config.glade,
e-table/e-table-config.glade.h, e-table/e-table-config.h,
e-table/e-table-defines.h, e-table/e-table-example-1.c,
e-table/e-table-example-2.c,
e-table/e-table-field-chooser-dialog.c,
e-table/e-table-field-chooser-dialog.h,
e-table/e-table-field-chooser-item.c,
e-table/e-table-field-chooser-item.h,
e-table/e-table-field-chooser.c,
e-table/e-table-field-chooser.glade,
e-table/e-table-field-chooser.glade.h,
e-table/e-table-field-chooser.h,
e-table/e-table-group-container.c,
e-table/e-table-group-container.h, e-table/e-table-group-leaf.c,
e-table/e-table-group-leaf.h, e-table/e-table-group.c,
e-table/e-table-group.glade, e-table/e-table-group.glade.h,
e-table/e-table-group.h, e-table/e-table-header-item.c,
e-table/e-table-header-item.h, e-table/e-table-header.c,
e-table/e-table-header.h, e-table/e-table-item.c,
e-table/e-table-item.h, e-table/e-table-model.c,
e-table/e-table-model.h, e-table/e-table-one.c,
e-table/e-table-one.h, e-table/e-table-scrolled.c,
e-table/e-table-scrolled.h, e-table/e-table-selection-model.c,
e-table/e-table-selection-model.h, e-table/e-table-simple.c,
e-table/e-table-simple.h, e-table/e-table-size-test.c,
e-table/e-table-sort-info.c, e-table/e-table-sort-info.h,
e-table/e-table-sorted-variable.c,
e-table/e-table-sorted-variable.h, e-table/e-table-sorted.c,
e-table/e-table-sorted.h, e-table/e-table-sorter.c,
e-table/e-table-sorter.h, e-table/e-table-subset-variable.c,
e-table/e-table-subset-variable.h, e-table/e-table-subset.c,
e-table/e-table-subset.h, e-table/e-table-text-model.c,
e-table/e-table-text-model.h, e-table/e-table-tooltip.h,
e-table/e-table-tree.h, e-table/e-table.c, e-table/e-table.h,
e-table/e-tree-example-1.c, e-table/e-tree-example-2.c,
e-table/e-tree-model.c, e-table/e-tree-model.h,
e-table/e-tree-simple.c, e-table/e-tree-simple.h,
e-table/image1.png, e-table/image2.png, e-table/image3.png,
e-table/remove-col.xpm, e-table/sample.table,
e-table/table-test.c, e-table/table-test.h, e-table/test-check.c,
e-table/test-cols.c, e-table/test-table.c: Moved to gal.
* e-text/.cvsignore, e-text/Makefile.am, e-text/e-entry-test.c,
e-text/e-entry.c, e-text/e-entry.h,
e-text/e-text-event-processor-emacs-like.c,
e-text/e-text-event-processor-emacs-like.h,
e-text/e-text-event-processor-types.h,
e-text/e-text-event-processor.c, e-text/e-text-event-processor.h,
e-text/e-text-model.c, e-text/e-text-model.h,
e-text/e-text-test.c, e-text/e-text.c, e-text/e-text.h: Moved to
gal.
i.e.,
...
changed evolution to work with gal.
svn path=/trunk/; revision=5490
2000-08-11 Not Zed <NotZed@HelixCode.com>
* camel-mime-parser.c (folder_scan_header): A better way to
compress leading whitespace. The code is probably invalid anyway,
I dont think it will work across buffer boundaries.
* providers/mbox/camel-mbox-folder.c (mbox_append_message): And
write out proper format From lines here too.
* providers/mbox/camel-mbox-summary.c
(camel_mbox_summary_build_from): New function to build a more
compatible mbox "From " line.
(camel_mbox_summary_sync): Write From lines in the proper format.
2000-08-10 Not Zed <NotZed@HelixCode.com>
* providers/mh/camel-mh-store.c (get_folder): Remove warnin g.
* providers/mbox/camel-mbox-store.c (xrename): Kill some warnings
with constification.
* providers/imap/camel-imap-folder.c (imap_append_message): Fixed
for append api change. Eek this routine seriously wastes memory.
* providers/mh/camel-mh-folder.c (mh_search_free): Impelemnt.
(mh_append_message): Fix for api change, and include user flags
and tags in new message.
* providers/vee/camel-vee-folder.c (vee_search_by_expression): Fix
for search api change.
* camel-folder.c (camel_folder_search_free): New function for
freeing search results.
(search_free): Changed my mind, implement a default that actually
does something. Free as to the old interface.
(camel_folder_append_message): Changed to accept a
camelmessageinfo rather than flags, which just doesn't have enough
info in it.
(copy_message_to): Change for append_message api change.
(move_message_to): Likewise.
* providers/mbox/camel-mbox-folder.c (mbox_search_free):
Implement.
(mbox_append_message): Fix for api change, and also copy user
flags/tags across to new summary.
* camel-folder-search.c (search_user_tag): A search expression
that returns the current use flag by name.
(camel_folder_search_free_result): New function to free the result
of a search.
* camel-folder-summary.c: Bump summary version.
(message_info_new):
(message_info_load):
(message_info_save):
(camel_message_info_dup_to):
(camel_message_info_free): Added support for arbitrary tag/value
pairs (CamelTag's).
(camel_tag_get):
(camel_tag_set):
(camel_tag_list_size):
(camel_tag_list_free): Operations for working with CamelTags.
svn path=/trunk/; revision=4683
2000-07-12 Jeffrey Stedfast <fejj@helixcode.com>
Chris forgot to add #include <e-util/e-util.h> to the source files
* providers/imap/camel-imap-store.c (imap_connect): Fixed Peter's
fix, we don't want to send a string to a %d.
svn path=/trunk/; revision=4133
* camel-folder.c (camel_folder_search_by_expression): Make this
return a GPtrArray rather than a GList.
* camel-folder-search.c (camel_folder_search_execute_expression):
* providers/imap/camel-imap-folder.c (imap_search_by_expression):
* providers/mbox/camel-mbox-folder.c (mbox_search_by_expression):
* providers/nntp/camel-nntp-folder.c (nntp_search_by_expression):
Update to return a GPtrArray rather than a GList.
svn path=/trunk/; revision=3958
* camel-object.c: New subclass of GtkObject which is now the base
of the Camel object hierarchy. Currently the only difference
between CamelObject and GtkObject is that CamelObjects don't start
out floating.
* *.h: Move a bunch of typedefs to camel-types.h. Standardize on
using <camel/foo.h> in header files rather than <foo.h>, "foo.h",
or "camel/foo.h". Remove some unneeded includes.
* camel-address.c, camel-data-wrapper.c, camel-folder-search.c,
camel-folder-summary.c, camel-folder.c, camel-mime-filter.c,
camel-mime-parser.c, camel-service.c, camel-session.c,
camel-stream.c: These are now subclasses of CamelObject.
* camel-data-wrapper.c (set_output_stream):
* camel-medium.c (set_content_object):
* camel-seekable-substream.c
(init_with_seekable_stream_and_bounds):
* providers/mbox/camel-mbox-folder.c (mbox_get_message_by_uid):
remove gtk_object_sink calls.
* camel-stream-buffer.c (init_vbuf):
* camel-stream-filter.c (camel_stream_filter_new_with_stream):
ref the original stream.
* camel-folder-summary.c (camel_folder_summary_finalise): unref
the filters when finalizing.
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser,
camel_mime_part_construct_content_from_parser):
* camel-mime-part.c (camel_mime_part_set_content): Unref objects
that are created only to be handed off to other objects. If
they're going to be needed later, they will have been additionally
ref'ed by the object that needs them.
* providers/pop3/camel-pop3-folder.c (get_message_by_number):
unref the message stream after creating the data from it.
* camel-stream.c, camel-stream-buffer.c, camel-stream-filter.c,
camel-stream-fs.c, camel-stream-mem.c: Remove camel_stream_close,
since its semantics are dubious (what happens when you close a
stream other people still have references on?).
* providers/nntp/camel-nntp-store.c:
* providers/smtp/camel-smtp-transport.c:
* providers/pop3/camel-pop3-store.c:
replace camel_stream_close calls with gtk_object_unref.
* providers/mbox/camel-mbox-folder.c:
* providers/nntp/camel-nntp-folder.c:
* providers/sendmail/camel-sendmail-transport.c:
replace camel_stream_close with camel_stream_flush +
gtk_object_unref
svn path=/trunk/; revision=2882