[dovecot-cvs] dovecot/src/lib var-expand.c,NONE,1.1 var-expand.h,NONE,1.1 Makefile.am,1.26,1.27

cras at procontrol.fi cras at procontrol.fi
Mon Jan 27 03:27:53 EET 2003


Update of /home/cvs/dovecot/src/lib
In directory danu:/tmp/cvs-serv14619

Modified Files:
	Makefile.am 
Added Files:
	var-expand.c var-expand.h 
Log Message:
Added var_expand()



--- NEW FILE: var-expand.c ---
/* Copyright (C) 2003 Timo Sirainen */

#include "lib.h"
#include "str.h"
#include "var-expand.h"

void var_expand(string_t *dest, const char *str,
		const char *user, const char *home)
{
	const char *var;
	unsigned int width;

	for (; *str != '\0'; str++) {
		if (*str != '%')
			str_append_c(dest, *str);
		else {
			width = 0;
			while (str[1] >= '0' && str[1] <= '9') {
				width = width*10 + (str[1] - '0');
				str++;
			}

			switch (str[1]) {
			case '%':
				var = "%";
				break;
			case 'u':
				var = user;
				break;
			case 'h':
				var = home;
				break;
			case 'n':
				var = t_strcut(user, '@');
				break;
			case 'd':
				var = strchr(user, '@');
				if (var != NULL) var++;
				break;
			default:
				str_append_c(dest, '%');
				if (str[1] != '\0')
					str_append_c(dest, str[1]);
				var = NULL;
				break;
			}

			if (str[1] != '\0')
				str++;

			if (var != NULL) {
				if (width == 0)
					str_append(dest, var);
				else
					str_append_n(dest, var, width);
			}
		}
	}
}

--- NEW FILE: var-expand.h ---
#ifndef __VAR_EXPAND_H
#define __VAR_EXPAND_H

/* Expand % variables in str:

    %u user or user at domain
    %h home
    %n user
    %d domain */
void var_expand(string_t *dest, const char *str,
		const char *user, const char *home);

#endif

Index: Makefile.am
===================================================================
RCS file: /home/cvs/dovecot/src/lib/Makefile.am,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- Makefile.am	3 Jan 2003 15:57:12 -0000	1.26
+++ Makefile.am	27 Jan 2003 01:27:51 -0000	1.27
@@ -51,6 +51,7 @@
 	unlink-lockfiles.c \
 	utc-offset.c \
 	utc-mktime.c \
+	var-expand.c \
 	write-full.c
 
 noinst_HEADERS = \
@@ -99,4 +100,5 @@
 	unlink-lockfiles.h \
 	utc-offset.h \
 	utc-mktime.h \
+	var-expand.h \
 	write-full.h




More information about the dovecot-cvs mailing list