changeset 13155:f89d7ac7bbcd

fts: Added xml2text binary
author Timo Sirainen <tss@iki.fi>
date Thu, 04 Aug 2011 13:38:51 +0300
parents 81e6ba752d98
children 43bf1283df78
files .hgignore src/plugins/fts/Makefile.am src/plugins/fts/xml2text.c
diffstat 3 files changed, 46 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Thu Aug 04 13:05:26 2011 +0300
+++ b/.hgignore	Thu Aug 04 13:38:51 2011 +0300
@@ -92,6 +92,7 @@
 src/util/script
 src/util/script-login
 src/util/tcpwrap
+src/plugins/fts/xml2text
 src/plugins/quota/rquota_xdr.c
 src/plugins/quota/rquota.h
 
--- a/src/plugins/fts/Makefile.am	Thu Aug 04 13:05:26 2011 +0300
+++ b/src/plugins/fts/Makefile.am	Thu Aug 04 13:38:51 2011 +0300
@@ -36,4 +36,11 @@
 	fts-search-serialize.h \
 	fts-storage.h
 
+pkglibexec_PROGRAMS = xml2text
+
+xml2text_SOURCES = xml2text.c
+
+xml2text_LDADD = fts-parser-html.lo $(LIBDOVECOT)
+xml2text_DEPENDENCIES = fts-parser-html.lo $(LIBDOVECOT_DEPS)
+
 EXTRA_DIST = decode2text.sh
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/plugins/fts/xml2text.c	Thu Aug 04 13:38:51 2011 +0300
@@ -0,0 +1,38 @@
+/* Copyright (c) 2011 Dovecot authors, see the included COPYING file */
+
+#include "lib.h"
+#include "message-parser.h"
+#include "fts-parser.h"
+
+#include <unistd.h>
+
+int main(void)
+{
+	struct fts_parser *parser;
+	unsigned char buf[IO_BLOCK_SIZE];
+	struct message_block block;
+	ssize_t ret;
+
+	lib_init();
+
+	parser = fts_parser_html.try_init(NULL, "text/html", NULL);
+	i_assert(parser != NULL);
+
+	memset(&block, 0, sizeof(block));
+	while ((ret = read(STDIN_FILENO, buf, sizeof(buf))) > 0) {
+		block.data = buf;
+		block.size = ret;
+		parser->v.more(parser, &block);
+		write(STDOUT_FILENO, block.data, block.size);
+	}
+
+	for (;;) {
+		block.size = 0;
+		parser->v.more(parser, &block);
+		if (block.size == 0)
+			break;
+		write(STDOUT_FILENO, block.data, block.size);
+	}
+
+	lib_deinit();
+}