aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/local/camel-maildir-folder.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/providers/local/camel-maildir-folder.c')
-rw-r--r--camel/providers/local/camel-maildir-folder.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/camel/providers/local/camel-maildir-folder.c b/camel/providers/local/camel-maildir-folder.c
index 3caa91d771..17bc081f94 100644
--- a/camel/providers/local/camel-maildir-folder.c
+++ b/camel/providers/local/camel-maildir-folder.c
@@ -56,6 +56,35 @@ static CamelMimeMessage *maildir_get_message(CamelFolder * folder, const gchar *
static void maildir_finalize(CamelObject * object);
+static int
+maildir_folder_getv(CamelObject *object, CamelException *ex, CamelArgGetV *args)
+{
+ CamelFolder *folder = (CamelFolder *)object;
+ int i;
+ guint32 tag;
+
+ for (i=0;i<args->argc;i++) {
+ CamelArgGet *arg = &args->argv[i];
+
+ tag = arg->tag;
+
+ switch (tag & CAMEL_ARG_TAG) {
+ case CAMEL_FOLDER_ARG_NAME:
+ if (!strcmp(folder->full_name, "."))
+ *arg->ca_str = _("Inbox");
+ else
+ *arg->ca_str = folder->name;
+ break;
+ default:
+ continue;
+ }
+
+ arg->tag = (tag & CAMEL_ARG_TYPE) | CAMEL_ARG_IGNORE;
+ }
+
+ return ((CamelObjectClass *)parent_class)->getv(object, ex, args);
+}
+
static void camel_maildir_folder_class_init(CamelObjectClass * camel_maildir_folder_class)
{
CamelFolderClass *camel_folder_class = CAMEL_FOLDER_CLASS(camel_maildir_folder_class);
@@ -66,6 +95,8 @@ static void camel_maildir_folder_class_init(CamelObjectClass * camel_maildir_fol
/* virtual method definition */
/* virtual method overload */
+ ((CamelObjectClass *)camel_folder_class)->getv = maildir_folder_getv;
+
camel_folder_class->append_message = maildir_append_message;
camel_folder_class->get_message = maildir_get_message;