changeset 3573:85e509808c30 HEAD

Added 'R' reverse modifier.
author Timo Sirainen <tss@iki.fi>
date Sun, 11 Sep 2005 23:22:35 +0300
parents bb648f016990
children 08ee6a4ed96e
files src/lib/var-expand.c
diffstat 1 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/var-expand.c	Sun Sep 11 22:56:03 2005 +0300
+++ b/src/lib/var-expand.c	Sun Sep 11 23:22:35 2005 +0300
@@ -44,6 +44,20 @@
 	return t_strdup_printf("%llx", l);
 }
 
+static const char *
+m_str_reverse(const char *str, struct var_expand_context *ctx __attr_unused__)
+{
+	size_t len = strlen(str);
+	char *p, *rev;
+
+	rev = t_malloc(len + 1);
+	rev[len] = '\0';
+
+	for (p = rev + len - 1; *str != '\0'; str++)
+		*p-- = *str;
+	return rev;
+}
+
 static const char *m_str_hash(const char *str, struct var_expand_context *ctx)
 {
 	unsigned int value = str_hash(str);
@@ -68,6 +82,7 @@
 	{ 'U', m_str_ucase },
 	{ 'E', m_str_escape },
 	{ 'X', m_str_hex },
+	{ 'R', m_str_reverse },
 	{ 'H', m_str_hash },
 	{ '\0', NULL }
 };