2001-02-08 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (mail_generate_reply): New location for this
function.
* mail-format.c: Removed mail_generate_reply as it's ONLY ever
used in mail-callbacks.c.
* mail-ops.c (fetch_mail_fetch): Reworked some keep-mail-on-server
logic so that we ALWAYS look for a cached array of UIDs that we
may have downloaded previously so as not to download them again
even if we will be deleting them off the server. This fixes bug
#1344.
svn path=/trunk/; revision=8137
* mail-format.c (mail_content_loaded): Check if a message part's
content is available, and if it's not, queue a thread that will
load it and then queue an idle-handler redisplay of the message.
(call_handler_function): Call mail_content_loaded() on the part
and don't try to display it if it's currently offline.
(get_data_wrapper_text): Simplify a bit
* mail-display.c (mail_display_queue_redisplay): rename and make
non-static.
(mail_display_redisplay): Use a "new and improved" way of
preserving the GtkHTML scroll location. ("new and improved" is
code for "gross and hackish", but there should be a real interface
for this eventually.)
(on_url_requested): Use mail_content_loaded() and don't write out
offline cid: URLs
* mail-identify.c (mail_identify_mime_part): Use
mail_content_loaded and don't try to identify the data if it's
offline.
svn path=/trunk/; revision=7813
* component-factory.c (mail_hash_storage): Function to add a
store/storage mapping.
(add_storage): Use it.
* mail-vfolder.c (vfolder_uri_to_folder): Use the vfolder name
rather than the string "mbox" (which wasn't ever used for
anything) in the vfolder URL. (Combined with the CamelVeeFolder
change, this makes camel_folder_get_name() return a pretty name
for vfolders now.) Call mail_hash_storage() to record the
CamelVeeStore/vfolder_storage mapping. (Ideally, there'd only be a
single CamelVeeStore... this is just a quick hack.)
vfolders now display their unread count once you've looked at them
once.
svn path=/trunk/; revision=7712
2001-01-12 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (mail_load_storages): Now takes a
'is_account_data' variable to specify whether the sources is a
list of accounts of a list of services. Basically, the only time
you should pass in FALSE is when you are setting up NNTP storages.
(add_storage): Now takes a 'name' argument that specifies the name
to use in the storage.
(owner_set_cb): Updated to pass TRUE for accounts and FALSE for
news servers into mail_load_storages.
svn path=/trunk/; revision=7469
2001-01-09 Jeffrey Stedfast <fejj@helixcode.com>
* mail-config-druid.glade: Moved to mail-config.glade
* mail-accounts.c (construct): Updated to use mail-config.glade.
* mail-account-editor.c (construct): Updated to use
mail-config.glade.
* mail-config-druid.c (construct): Updated to use
mail-config.glade.
* mail.h: Added the new mail config headers.
svn path=/trunk/; revision=7351
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
2000-11-03 Jeffrey Stedfast <fejj@helixcode.com>
* Makefile.am: Added new header files.
* component-factory.c (owner_set_cb):
s/session_init/mail_session_init
* session.c: Renamed public functions to mail_session_*.
FIXME: Rename session.c to mail-session.c
* folder-browser-factory.c: #include "mail-callbacks.h", #include
"mail-session.h" and replace forget_passwords with
mail_session_forget_passwords
* mail.h: Move session prototypes to mail-session.h, Move
mail-crypto prototypes to mail-crypto.h, Move mail-callback
prototypes to mail-callbacks.h
* mail-session.h: New header file containing public prototypes
for session.c
* mail-format.c: #include "mail-crypto.h"
* mail-view.c:
* folder-browser.c: #include "mail-callbacks.h"
* mail-crypto.h: New header file containing public prototypes
for mail-crypto.c
* mail-callbacks.h: New header file containing public prototypes
for mail-callbacks.c
* message-list.c (message_list_get_layout): Set useful defaults.
(message_list_setup_etable): Don't set the Outbox defaults on a
folder just because it doesn't have a corresponding saved file.
svn path=/trunk/; revision=6372
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
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
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
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
2000-10-04 Jeffrey Stedfast <fejj@helixcode.com>
* folder-browser-factory.c: Instead of UnSelectAll, we want
InvertSelection.
* mail-callbacks.c (select_all): Finished this function.
(invert_selection): Finished. (was unselect_all - but that's not
what we really wanted as it'd be pointless. invert_selection is a
much more useful callback :-)
svn path=/trunk/; revision=5725
2000-09-29 Miguel de Icaza <miguel@helixcode.com>
* folder-browser-factory.c: Add print preview verb here.
* mail-callbacks.c (do_mail_print): Handle printing here, the
complete engine.
(mail_print_preview_msg): new. does print previewing.
(mail_print_msg): does printing of the message.
svn path=/trunk/; revision=5641
2000-09-29 Chris Toshok <toshok@helixcode.com>
* subscribe-control-factory.c, subscribe-control-factory.h: nuked.
* subscribe-control.c, subscribe-control.h: lots of changes. we
now pop up a dialog, and will have a storage set view on our left
side, like the shell does.
* mail.h: add prototype for manage_subscriptions.
* mail-callbacks.c (manage_subscriptions): new function, pops up
the subscribe dialog.
* folder-browser-factory.c: add the verb for managing
subscriptions.
* Makefile.am (evolution_mail_SOURCES): add subscribe-control.[ch]
again.
svn path=/trunk/; revision=5637
2000-09-25 Jeffrey Stedfast <fejj@helixcode.com>
* folder-browser-factory.c: Added new menu items
* mail-callbacks.c (mark_as_seen): New callback to mark all
selected messages as Seen.
(mark_as_unseen): New callback to mark all selected messages as
Unseen.
(select_all): New callback to select all messages (not yet
finished)
(unselect_all): New callback to unselect all messages (not yet
finished)
svn path=/trunk/; revision=5585
list a message comes from and create the rule for it on the fly.
(Many thanks to Joakim for suggesting the way to implement this.)
Also, use the new shiny toolbar icons from TigerT and mark some
strings for translation.
svn path=/trunk/; revision=5362
* mail-display.c, mail-format.c: Another big rewrite of this
stuff. Now all (well, most) attachments get a small icon with a
description and a (non-obvious) right-click pop-up menu with
options to save, open in an external program, or show/hide inline.
TODO: antialias the icon, add more options to the pop-up for
certain MIME types, add an icon to the headers, fix PGP to work
like everything else, fix message/external-body to work again,
add some icon caching action, etc, etc.
svn path=/trunk/; revision=5326
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
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
* mail-display.c, mail-format.c: Redo this again. Get rid of
struct mail_format_data and move most of that info into
MailDisplay itself, and pass the MailDisplay around. Add a GData**
to MailDisplay, and put the urls hash table into that. Also add
the ability to redisplay the currently-displayed message (with the
same GData**), and add a "show_pgp" datum to it that controls
whether or not to decrypt PGP messages, and redo the PGP stuff
(again) to take that into account. Now you don't get the annoying
PGP password dialog box without any warning.
svn path=/trunk/; revision=4757
* mail-format.c (destroy_part): Update this for CamelObject
(try_inline_pgp): Deal with decrypting here rather than trying to
pawn the data off to handle_multipart_encrypted, since it most
likely won't be correct (won't have the proper MIME headers inside
the encrypted part).
(handle_multipart_encrypted): Add code from Nathan Thompson-Amato
to re-MIME-parse the decrypted data after decrypting.
* mail-crypto.c (mail_crypto_openpgp_{de,en}crypt): Get the
password here rather than having it passed in. Remove some dead
code.
* session.c (mail_request_dialog): Allow this to work in either a
sync or an async context.
svn path=/trunk/; revision=4751
* 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
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
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
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
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
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
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
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
2000-08-06 Jeffrey Stedfast <fejj@helixcode.com>
* mail-crypto.c (mail_crypto_openpgp_encrypt): Added support for
encrypting with GnuPG. Support for PGP5 and PGP2 are still in
progress.
svn path=/trunk/; revision=4557
* mail-crypto.c: New code to spawn off GPG/PGP to do stuff.
Currently only deals with decryption. From Nathan Thompson-Amato
<ndt@jps.net>, with bunches of changes from me.
* session.c (mail_request_dialog): Expose the password dialog to
the rest of the app (for use by the GPG/PGP code).
* mail-format.c (handle_text_plain): Handle special inline data
types. (Currently uuencoding, BinHex, and PGP encryption.) This is
not the best way to deal with it, but it works for now.
(try_inline_pgp): Convert an inline PGP-encrypted message into a
multipart/encrypted part.
(try_inline_binhex): Convert an inline BinHex attachment into an
application/mac-binhex40 part (which we currently don't deal
with...)
(try_uudecoding): Convert a uuencoded attachment to an
application/octet-stream part.
(handle_multipart_encrypted): Deal with RFC2015 MIME-encoded PGP
encrypted messages. (From ndt.)
* mail-display.c (mail_text_write, mail_error_write): New utility
functions.
* Makefile.am (evolution_mail_SOURCES): add mail-crypto.c
svn path=/trunk/; revision=4466
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
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
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
* 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
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