summaryrefslogtreecommitdiffstats
path: root/src/rtf2html/rtf_tools.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rtf2html/rtf_tools.h')
-rw-r--r--src/rtf2html/rtf_tools.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/rtf2html/rtf_tools.h b/src/rtf2html/rtf_tools.h
new file mode 100644
index 0000000..528549e
--- /dev/null
+++ b/src/rtf2html/rtf_tools.h
@@ -0,0 +1,65 @@
+/* This is RTF to HTML converter, implemented as a text filter, generally.
+ Copyright (C) 2003 Valentin Lavrinenko, [email protected]
+
+ available at http://rtf2html.sf.net
+
+ Original available under the terms of the GNU LGPL2, and according
+ to those terms, relicensed under the GNU GPL2 for inclusion in Tellico */
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of version 2 of the GNU General Public License as *
+ * published by the Free Software Foundation; *
+ * *
+ ***************************************************************************/
+
+#ifndef __RTF_TOOLS_H__
+#define __RTF_TOOLS_H__
+
+#include "common.h"
+#include "rtf_keyword.h"
+
+namespace rtf {
+
+template <class InputIter>
+void skip_group(InputIter &iter);
+
+
+/****************************************
+function assumes that file pointer points AFTER the opening brace
+and that the group is really closed. cs is caller's curchar.
+Returns the character that comes after the enclosing brace.
+*****************************************/
+
+template <class InputIter>
+void skip_group(InputIter &iter)
+{
+ int cnt=1;
+ while (cnt)
+ {
+ switch (*iter++)
+ {
+ case '{':
+ cnt++;
+ break;
+ case '}':
+ cnt--;
+ break;
+ case '\\':
+ {
+ rtf_keyword kw(iter);
+ if (!kw.is_control_char() && kw.keyword()==rtf_keyword::rkw_bin
+ && kw.parameter()>0)
+ {
+ std::advance(iter, kw.parameter());
+ }
+ break;
+ }
+ }
+ }
+}
+
+}
+
+#endif