diff options
Diffstat (limited to 'libmail/smapdelete.C')
| -rw-r--r-- | libmail/smapdelete.C | 52 | 
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"); +} | 
