summaryrefslogtreecommitdiffstats
path: root/maildrop/maildir.C
diff options
context:
space:
mode:
authorSam Varshavchik2015-12-19 12:08:37 -0500
committerSam Varshavchik2015-12-19 12:08:37 -0500
commitfc74b7bc645d74c9fc87fa63345b6c6840c73bca (patch)
tree519885c20743c188918eb32e044ac2d7e609ab86 /maildrop/maildir.C
parent08727afd05a6a6f5daa7f1fb293be038d43c4ef8 (diff)
downloadcourier-libs-fc74b7bc645d74c9fc87fa63345b6c6840c73bca.tar.bz2
maildrop: implement FLAGS
Diffstat (limited to 'maildrop/maildir.C')
-rw-r--r--maildrop/maildir.C36
1 files changed, 35 insertions, 1 deletions
diff --git a/maildrop/maildir.C b/maildrop/maildir.C
index a1d88ed..926b9d6 100644
--- a/maildrop/maildir.C
+++ b/maildrop/maildir.C
@@ -130,9 +130,43 @@ static long counter=0;
if (f >= 0)
{
+ Buffer b;
+
+ b="FLAGS";
+
+ const char *flags=GetVarStr(b);
+
tmpname=createInfo.tmpname;
- newname=createInfo.newname;
tmpname += '\0';
+
+ if (flags)
+ {
+ const char *p=flags;
+
+ while (*p)
+ {
+ if (strchr("DRSF", *p) == NULL)
+ {
+ f=0;
+ break;
+ }
+ ++p;
+ }
+ }
+
+ if (flags && *flags)
+ {
+ newname=createInfo.curname;
+ newname += ':';
+ newname += '2';
+ newname += ',';
+ newname += flags;
+ }
+ else
+ {
+ newname=createInfo.newname;
+ }
+
newname += '\0';
maildir_tmpcreate_free(&createInfo);