summaryrefslogtreecommitdiffstats
path: root/sqwebmail/args.c
diff options
context:
space:
mode:
authorSam Varshavchik2013-08-19 16:39:41 -0400
committerSam Varshavchik2013-08-25 14:43:51 -0400
commit9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch)
tree7a81a04cb51efb078ee350859a64be2ebc6b8813 /sqwebmail/args.c
parenta9520698b770168d1f33d6301463bb70a19655ec (diff)
downloadcourier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2
Initial checkin
Imported from subversion report, converted to git. Updated all paths in scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'sqwebmail/args.c')
-rw-r--r--sqwebmail/args.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/sqwebmail/args.c b/sqwebmail/args.c
new file mode 100644
index 0000000..45457f6
--- /dev/null
+++ b/sqwebmail/args.c
@@ -0,0 +1,65 @@
+/*
+** Copyright 2001 Double Precision, Inc. See COPYING for
+** distribution information.
+*/
+
+
+/*
+*/
+#include "sqwebmail.h"
+#include "config.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+struct arglist {
+ struct arglist *next;
+ char *argbuf;
+} ;
+
+static struct arglist *arglist=0;
+
+void freeargs()
+{
+ struct arglist *a;
+
+ while ((a=arglist) != NULL)
+ {
+ arglist=a->next;
+ free(a->argbuf);
+ free(a);
+ }
+}
+
+void addarg(const char *p)
+{
+ char *s=strdup(p);
+ struct arglist *a;
+
+ if (!s)
+ enomem();
+
+ a=(struct arglist *)malloc(sizeof(struct arglist));
+
+ if (!a)
+ {
+ free(s);
+ enomem();
+ }
+
+ a->next=arglist;
+ arglist=a;
+ a->argbuf=s;
+}
+
+const char *getarg(const char *n)
+{
+ size_t l=strlen(n);
+ struct arglist *a;
+
+ for (a=arglist; a; a=a->next)
+ if (strncmp(a->argbuf, n, l) == 0 &&
+ a->argbuf[l] == '=')
+ return (a->argbuf+l+1);
+ return ("");
+}