diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /sqwebmail/args.c | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-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.c | 65 | 
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 (""); +} | 
