[Evolution-hackers] Folder URI changes



I made some changes to Camel and Evolution in time for 3.1.1.

I realize it's a bit last minute but I wanted to pack all the changes
into one soname bump for libcamel.  This is a strategic move to solve
some issues on the account-mgmt branch, but it also simplifies a good
deal of code in Evolution.

The changes are:

  * Camel no longer uses folder URIs.  Folder URIs are now Evolution's
    exclusive domain.  Most significantly, the CamelFolderInfo struct
    no longer has a 'uri' field.

  * Evolution has a new and simpler folder URI format to replace the
    previous -two- formats we've been using:

      'folder://' $(CAMEL_STORE_UID) '/' $(CAMEL_FOLDER_FULL_NAME)

    All folder URI handling should now flow through the following new
    functions in mail/e-mail-folder-utils.c:

      gchar *  e_mail_folder_uri_build       (CamelStore *store,
                                              const gchar *folder_name)

      gboolean e_mail_folder_uri_parse       (CamelSession *session,
                                              const gchar *folder_uri,
                                              CamelStore **out_store,
                                              gchar **out_folder_name,
                                              GError **error)

      gboolean e_mail_folder_uri_equal       (CamelSession *session,
                                              const gchar *folder_uri_a,
                                              const gchar *folder_uri_b)

      gchar *  e_mail_folder_uri_from_folder (CamelFolder *folder);

    The functions should be self-explanatory from their declarations.

    e_mail_folder_uri_parse() knows how to parse not only the new folder
    URI format, but also the previous formats.  So all legacy knowledge
    about folder URIs is neatly packed into that one function.


I've been running with the new code for almost a week now and haven't
noticed any regressions, but be on the lookout anyway and please file
bugs if you spot any.

      



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]