Andreas Krennmair:
[apps/madmutt.git] / imap / imap.c
index 63eae5a..a9552ce 100644 (file)
@@ -108,20 +108,37 @@ int imap_create_mailbox (IMAP_DATA* idata, char* mailbox)
   return 0;
 }
 
+int imap_rename_mailbox (IMAP_DATA* idata, IMAP_MBOX* mx, const char* newname)
+{
+  char oldmbox[LONG_STRING];
+  char newmbox[LONG_STRING];
+  char buf[LONG_STRING];
+
+  imap_munge_mbox_name (oldmbox, sizeof (oldmbox), mx->mbox);
+  imap_munge_mbox_name (newmbox, sizeof (newmbox), newname);
+
+  snprintf (buf, sizeof (buf), "RENAME %s %s", oldmbox, newmbox);
+
+  if (imap_exec (idata, buf, 0) != 0)
+    return -1;
+
+  return 0;
+}
+
 int imap_delete_mailbox (CONTEXT* ctx, IMAP_MBOX mx)
 {
   char buf[LONG_STRING], mbox[LONG_STRING];
   IMAP_DATA *idata;
 
   if (!ctx || !ctx->data) {
-       if (!(idata = imap_conn_find (&mx.account,
-               option (OPTIMAPPASSIVE) ? M_IMAP_CONN_NONEW : 0)))
-       {
-               FREE (&mx.mbox);
-               return -1;
-       }
+    if (!(idata = imap_conn_find (&mx.account,
+          option (OPTIMAPPASSIVE) ? M_IMAP_CONN_NONEW : 0)))
+    {
+      FREE (&mx.mbox);
+      return -1;
+    }
   } else {
-         idata = ctx->data;
+    idata = ctx->data;
   }
 
   imap_munge_mbox_name (mbox, sizeof (mbox), mx.mbox);