summaryrefslogtreecommitdiffstats
path: root/libmail/smapdelete.C
diff options
context:
space:
mode:
Diffstat (limited to 'libmail/smapdelete.C')
-rw-r--r--libmail/smapdelete.C52
1 files changed, 52 insertions, 0 deletions
diff --git a/libmail/smapdelete.C b/libmail/smapdelete.C
new file mode 100644
index 0000000..cc9018a
--- /dev/null
+++ b/libmail/smapdelete.C
@@ -0,0 +1,52 @@
+/*
+** Copyright 2003, Double Precision Inc.
+**
+** See COPYING for distribution information.
+*/
+#include "smap.H"
+#include "smapdelete.H"
+
+using namespace std;
+
+///////////////////////////////////////////////////////////////////////
+//
+// DELETE
+
+const char *mail::smapDELETE::getName()
+{
+ return "DELETE";
+}
+
+mail::smapDELETE::smapDELETE(std::string pathArg,
+ bool deleteDirectoryArg,
+ mail::callback &callbackArg)
+ : path(pathArg),
+ deleteDirectory(deleteDirectoryArg)
+{
+ defaultCB= &callbackArg;
+}
+
+mail::smapDELETE::~smapDELETE()
+{
+}
+
+void mail::smapDELETE::installed(imap &imapAccount)
+{
+ vector<string> words;
+
+ path2words(path, words);
+
+ vector<string>::iterator b=words.begin(), e=words.end();
+
+ string pstr="";
+
+ while (b != e)
+ {
+ pstr += " ";
+ pstr += imapAccount.quoteSMAP( *b );
+ b++;
+ }
+
+ imapAccount.imapcmd("", (deleteDirectory ? "RMDIR":"DELETE")
+ + pstr + "\n");
+}