changeset 8383:8815fc1099c8 HEAD

Added imap_utf7 tool for mUTF-7 <-> UTF-8 conversion.
author Timo Sirainen <tss@iki.fi>
date Sat, 01 Nov 2008 22:32:04 +0200
parents bcf3a185bfc1
children c6482b5cdea1
files .hgignore src/util/Makefile.am src/util/imap-utf7.c
diffstat 3 files changed, 46 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Sat Nov 01 21:16:38 2008 +0200
+++ b/.hgignore	Sat Nov 01 22:32:04 2008 +0200
@@ -74,6 +74,7 @@
 src/util/dovecotpw
 src/util/gdbhelper
 src/util/idxview
+src/util/imap_utf7
 src/util/listview
 src/util/logview
 src/util/maildirlock
--- a/src/util/Makefile.am	Sat Nov 01 21:16:38 2008 +0200
+++ b/src/util/Makefile.am	Sat Nov 01 22:32:04 2008 +0200
@@ -4,6 +4,7 @@
 	rawlog \
 	gdbhelper \
 	idxview \
+	imap_utf7 \
 	listview \
 	logview \
 	maildirlock \
@@ -14,6 +15,7 @@
 AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/lib \
 	-I$(top_srcdir)/src/lib-mail \
+	-I$(top_srcdir)/src/lib-imap \
 	-I$(top_srcdir)/src/lib-index \
 	-I$(top_srcdir)/src/lib-storage/index/maildir \
 	-I$(top_srcdir)/src/auth
@@ -34,6 +36,12 @@
 idxview_SOURCES = \
 	idxview.c
 
+imap_utf7_LDADD = \
+	../lib-imap/imap-utf7.o \
+	../lib/liblib.a
+imap_utf7_SOURCES = \
+	imap-utf7.c
+
 listview_LDADD = \
 	../lib/liblib.a
 listview_SOURCES = \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/util/imap-utf7.c	Sat Nov 01 22:32:04 2008 +0200
@@ -0,0 +1,37 @@
+/* Copyright (c) 2008 Dovecot authors, see the included COPYING file */
+
+#include "lib.h"
+#include "str.h"
+#include "imap-utf7.h"
+
+#include <stdio.h>
+
+int main(int argc ATTR_UNUSED, const char *argv[])
+{
+	string_t *dest;
+	bool reverse = FALSE;
+	int ret;
+
+	lib_init();
+
+	if (argv[1] != NULL && strcmp(argv[1], "-r") == 0) {
+		reverse = TRUE;
+		argv++;
+	}
+
+	if (argv[1] == NULL) {
+		fprintf(stderr, "Usage: %s [-r] <string>", argv[0]);
+		return 1;
+	}
+
+	dest = t_str_new(256);
+	ret = reverse ?
+		imap_utf8_to_utf7(argv[1], dest) :
+		imap_utf7_to_utf8(argv[1], dest);
+	if (ret < 0) {
+		fprintf(stderr, "Invalid input\n");
+		return 1;
+	}
+	printf("%s\n", str_c(dest));
+	return 0;
+}