[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