summaryrefslogtreecommitdiff
path: root/plugins/MirOTR/ekhtml/include
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2012-05-19 18:01:32 +0000
committerKirill Volinsky <mataes2007@gmail.com>2012-05-19 18:01:32 +0000
commitb1509f22892dc98057c750e7fae39ded5cea3b09 (patch)
tree6bdcc9379ae86339a67022b758575729d1304074 /plugins/MirOTR/ekhtml/include
parente7a776a6f5ab323cd9dd824e815846ef268fa7f1 (diff)
added MirOTR
git-svn-id: http://svn.miranda-ng.org/main/trunk@83 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/MirOTR/ekhtml/include')
-rw-r--r--plugins/MirOTR/ekhtml/include/Makefile295
-rw-r--r--plugins/MirOTR/ekhtml/include/Makefile.am2
-rw-r--r--plugins/MirOTR/ekhtml/include/Makefile.in295
-rw-r--r--plugins/MirOTR/ekhtml/include/ekhtml.h266
-rw-r--r--plugins/MirOTR/ekhtml/include/ekhtml_config.h42
-rw-r--r--plugins/MirOTR/ekhtml/include/ekhtml_private.h162
-rw-r--r--plugins/MirOTR/ekhtml/include/ekhtml_tables.h146
-rw-r--r--plugins/MirOTR/ekhtml/include/hash.h240
-rw-r--r--plugins/MirOTR/ekhtml/include/stamp-h11
9 files changed, 1449 insertions, 0 deletions
diff --git a/plugins/MirOTR/ekhtml/include/Makefile b/plugins/MirOTR/ekhtml/include/Makefile
new file mode 100644
index 0000000000..3ff805071f
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/Makefile
@@ -0,0 +1,295 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# Generated automatically from Makefile.in by configure.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ..
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/ekhtml
+pkglibdir = $(libdir)/ekhtml
+pkgincludedir = $(includedir)/ekhtml
+top_builddir = ..
+
+ACLOCAL = ${SHELL} /z/missing --run aclocal-1.6
+AUTOCONF = ${SHELL} /z/missing --run autoconf
+AUTOMAKE = ${SHELL} /z/missing --run automake-1.6
+AUTOHEADER = ${SHELL} /z/missing --run autoheader
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = s,x,x,
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias =
+host_triplet = i686-pc-mingw32
+
+EXEEXT = .exe
+OBJEXT = o
+PATH_SEPARATOR = :
+AMTAR = ${SHELL} /z/missing --run tar
+AS = @AS@
+AWK = gawk
+CC = gcc
+DEPDIR = .deps
+DLLTOOL = @DLLTOOL@
+ECHO = echo
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+MAINT = #
+OBJDUMP = @OBJDUMP@
+PACKAGE = ekhtml
+RANLIB = ranlib
+STRIP = strip
+VERSION = 0.3.2
+am__include = include
+am__quote =
+install_sh = /z/install-sh
+include_HEADERS = ekhtml.h
+EXTRA_DIST = ekhtml_private.h hash.h
+subdir = include
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ekhtml_config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+HEADERS = $(include_HEADERS)
+
+DIST_COMMON = $(include_HEADERS) ../config.in Makefile.am Makefile.in
+all: ekhtml_config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: # Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu include/Makefile
+Makefile: # $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+
+ekhtml_config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/../config.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status include/ekhtml_config.h
+
+$(srcdir)/../config.in: # $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
+ cd $(top_srcdir) && $(AUTOHEADER)
+ touch $(srcdir)/../config.in
+
+distclean-hdr:
+ -rm -f ekhtml_config.h stamp-h1
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+includeHEADERS_INSTALL = $(INSTALL_HEADER)
+install-includeHEADERS: $(include_HEADERS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(includedir)
+ @list='$(include_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f"; \
+ $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f; \
+ done
+
+uninstall-includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(include_HEADERS)'; for p in $$list; do \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " rm -f $(DESTDIR)$(includedir)/$$f"; \
+ rm -f $(DESTDIR)$(includedir)/$$f; \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ $(mkinstalldirs) $(distdir)/..
+ @list='$(DISTFILES)'; for file in $$list; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS) ekhtml_config.h
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(includedir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-includeHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-includeHEADERS uninstall-info-am
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool distclean distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags distdir dvi dvi-am info \
+ info-am install install-am install-data install-data-am \
+ install-exec install-exec-am install-includeHEADERS \
+ install-info install-info-am install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool tags uninstall uninstall-am \
+ uninstall-includeHEADERS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/plugins/MirOTR/ekhtml/include/Makefile.am b/plugins/MirOTR/ekhtml/include/Makefile.am
new file mode 100644
index 0000000000..782e59720d
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/Makefile.am
@@ -0,0 +1,2 @@
+include_HEADERS = ekhtml.h
+EXTRA_DIST = ekhtml_private.h hash.h
diff --git a/plugins/MirOTR/ekhtml/include/Makefile.in b/plugins/MirOTR/ekhtml/include/Makefile.in
new file mode 100644
index 0000000000..5506c3f6f9
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/Makefile.in
@@ -0,0 +1,295 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAINT = @MAINT@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+include_HEADERS = ekhtml.h
+EXTRA_DIST = ekhtml_private.h hash.h
+subdir = include
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ekhtml_config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+HEADERS = $(include_HEADERS)
+
+DIST_COMMON = $(include_HEADERS) ../config.in Makefile.am Makefile.in
+all: ekhtml_config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu include/Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+
+ekhtml_config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/../config.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status include/ekhtml_config.h
+
+$(srcdir)/../config.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
+ cd $(top_srcdir) && $(AUTOHEADER)
+ touch $(srcdir)/../config.in
+
+distclean-hdr:
+ -rm -f ekhtml_config.h stamp-h1
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+includeHEADERS_INSTALL = $(INSTALL_HEADER)
+install-includeHEADERS: $(include_HEADERS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(includedir)
+ @list='$(include_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f"; \
+ $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f; \
+ done
+
+uninstall-includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(include_HEADERS)'; for p in $$list; do \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " rm -f $(DESTDIR)$(includedir)/$$f"; \
+ rm -f $(DESTDIR)$(includedir)/$$f; \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ $(mkinstalldirs) $(distdir)/..
+ @list='$(DISTFILES)'; for file in $$list; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS) ekhtml_config.h
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(includedir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-includeHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-includeHEADERS uninstall-info-am
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool distclean distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags distdir dvi dvi-am info \
+ info-am install install-am install-data install-data-am \
+ install-exec install-exec-am install-includeHEADERS \
+ install-info install-info-am install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool tags uninstall uninstall-am \
+ uninstall-includeHEADERS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/plugins/MirOTR/ekhtml/include/ekhtml.h b/plugins/MirOTR/ekhtml/include/ekhtml.h
new file mode 100644
index 0000000000..1bed8eaa70
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/ekhtml.h
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 2002, Jon Travis
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef EKHTML_DOT_H
+#define EKHTML_DOT_H
+
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*!
+ * \file ekhtml.h
+ * \brief Main El-Kabong header file.
+ *
+ * This header defines everything that a program should need to use
+ * the El-Kabong library.
+ */
+
+/**
+ * A string object, which is not NUL terminated.
+ * For speed reasons, El-Kabong does not deal with zero-terminated
+ * strings.
+ */
+
+typedef struct ekhtml_string_t {
+ const char *str; /**< Actual string data */
+ size_t len; /**< Length of the data in `str` */
+} ekhtml_string_t;
+
+/**
+ * Attribute object, passed into callbacks.
+ * When ekhtml parses tags containing key/value attributes, it will pass
+ * this structure representing those values into the callbacks. Note, for
+ * speed reasons, things such as the 'name' and 'value' fields are not
+ * terminated with '\0', and therefore have an associated length
+ * field (namelen, vallen).
+ */
+
+typedef struct ekhtml_attr_t {
+ ekhtml_string_t name; /**< Name of the attribute */
+ ekhtml_string_t val; /**< Value of the attribute */
+ unsigned int isBoolean; /**< True of the attribute is boolean */
+ struct ekhtml_attr_t *next; /**< Pointer to next attribute in the list */
+} ekhtml_attr_t;
+
+/*
+ * Typedefs for function callback types
+ */
+
+/**
+ * The parser object.
+ * The parser object holds state information, such as which callbacks
+ * to invoke when reading tags, how much data is being processed, etc.
+ */
+
+typedef struct ekhtml_parser_t ekhtml_parser_t;
+
+/**
+ * Callback for simple data.
+ * Callback functions of this form are used to process data which is
+ * not part of a start or end tag. This callback may also be used
+ * to process the body of comment tags.
+ *
+ * I.e. <FOO>data_to_process</FOO>
+ * The data passed into the callback function will be "data_to_process"
+ *
+ * @param cbdata Callback data, as previously set by ekhtml_parser_cbdata_set
+ * @param data A pointer to the data in-between tags.
+ *
+ * @see ekhtml_parser_cbdata_set()
+ * @see ekhtml_parser_datacb_set()
+ */
+
+typedef void (*ekhtml_data_cb_t)(void *cbdata, ekhtml_string_t *data);
+
+/**
+ * Callback for start tags.
+ * Callback functions of this form are used to process start tags.
+ *
+ * I.e. <FOO>data_to_process</FOO>
+ * The tag passed into the callback will be "FOO" with a length of 3.
+ *
+ * @param cbdata Callback data, as previously set by ekhtml_parser_cbdata_set
+ * @param tag A pointer to tag name. This is a traditional NUL terminated
+ * string.
+ * @param attrs Attributes of the tag.
+ *
+ * @see ekhtml_parser_cbdata_set()
+ * @see ekhtml_parser_startcb_add()
+ */
+
+typedef void (*ekhtml_starttag_cb_t)(void *cbdata, ekhtml_string_t *tag,
+ ekhtml_attr_t *attrs);
+
+/**
+ * Callback for end tags.
+ * Callback functions of this form are used to process end tags.
+ *
+ * I.e. <FOO>data_to_process</FOO>
+ * The tag passed into the callback will be "FOO" with a length of 3.
+ *
+ * @param cbdata Callback data, as previously set by ekhtml_parser_cbdata_set
+ * @param tag A pointer to tag name. This is a traditional NUL terminated
+ * string.
+ *
+ * @see ekhtml_parser_cbdata_set()
+ * @see ekhtml_parser_endcb_add()
+ */
+
+typedef void (*ekhtml_endtag_cb_t)(void *cbdata, ekhtml_string_t *tag);
+
+/**
+ * Create a new parser object.
+ * This routine creates a new parser object, with no set callback
+ * functions or state.
+ *
+ * @param cbdata Callback data to use when invoking callbacks
+ *
+ * @returns A new ekhtml_parser_t object
+ *
+ * @see ekhtml_parser_cbdata_set()
+ */
+
+extern ekhtml_parser_t *ekhtml_parser_new(void *cbdata);
+
+/**
+ * Destroys a parser object and all memory associated with it.
+ * After calling this routine, the parser should no longer be
+ * used, as any results would be undefined.
+ *
+ * @param parser The parser to destroy
+ *
+ * @see ekhtml_parser_new()
+ */
+
+extern void ekhtml_parser_destroy(ekhtml_parser_t *parser);
+
+/**
+ * Set the callback data for the parser.
+ * This routine sets the callback data which is passed to set callbacks.
+ *
+ * @param parser Parser to set the callback data for
+ * @param cbdata Callback data the parser should use to pass to callbacks
+ */
+
+extern void ekhtml_parser_cbdata_set(ekhtml_parser_t *parser, void *cbdata);
+
+/**
+ * Set the parser's data callback.
+ * This routine sets the callback which should be invoked for
+ * non-tagged data.
+ *
+ * @param parser Parser to set the callback for
+ * @param cb Callback to invoke when processing non-tagged data
+ */
+
+extern void ekhtml_parser_datacb_set(ekhtml_parser_t *parser,
+ ekhtml_data_cb_t cb);
+
+/**
+ * Set the parser's comment callback.
+ * This routine sets the callback which should be invoked when
+ * the parser processes a comment.
+ *
+ * @param parser Parser to set the callback for
+ * @param cb Callback to invoke when processing a comment
+ */
+
+extern void ekhtml_parser_commentcb_set(ekhtml_parser_t *parser,
+ ekhtml_data_cb_t cb);
+
+/**
+ * Feed data for the parser to process.
+ * Feed data into the HTML parser. This routine will fill up the
+ * internal buffer until it can go no more, then flush the data
+ * and refill. If there is more data that is required than the
+ * internal buffer can hold, it will be resized
+ *
+ * @param parser Parser to feed data to
+ * @param data Data to feed to the parser
+ */
+
+extern void ekhtml_parser_feed(ekhtml_parser_t *parser,
+ ekhtml_string_t *data);
+
+/**
+ * Flush the parser innards.
+ * When this function is invoked, the parser will flush all data that is
+ * currently held, and any remaining state is saved. All data which is
+ * processed is removed from the parser, and the internal buffer is
+ * reshuffled.
+ *
+ * @param parser Parser to flush
+ * @param flushall If true, will flush all data, even if tags are not
+ * complete (i.e. "<FO")
+ * @returns 1 if action was taken (i.e. bytes were processed and the
+ * internal buffer was reshuffled) else 0
+ */
+
+extern int ekhtml_parser_flush(ekhtml_parser_t *parser, int flushall);
+
+/**
+ * Add a callback for a start tag.
+ * This routine sets the callback which should be invoked when
+ * the parser processes a start tag. Both specific tags, and
+ * unknown tags can be used with this method.
+ *
+ * @param parser Parser to set the callback for
+ * @param tag Name of the tag to call `cb` for. If `tag` is NULL, then
+ * any tags which are unknown to the parser will be sent
+ * to the callback specified by `cb`.
+ * @param cb Callback to invoke
+ */
+
+extern void ekhtml_parser_startcb_add(ekhtml_parser_t *parser, const char *tag,
+ ekhtml_starttag_cb_t cb);
+
+/**
+ * Add a callback for an end tag.
+ * This routine sets the callback which should be invoked when
+ * the parser processes an end tag. Both specific tags, and
+ * unknown tags can be used with this method.
+ *
+ * @param parser Parser to set the callback for
+ * @param tag Name of the tag to call `cb` for. If `tag` is NULL, then
+ * any tags which are unknown to the parser will be sent
+ * to the callback specified by `cb`.
+ * @param cb Callback to invoke
+ */
+
+extern void ekhtml_parser_endcb_add(ekhtml_parser_t *parser, const char *tag,
+ ekhtml_endtag_cb_t cb);
+
+/** EKHTML_BLOCKSIZE = # of blocks to allocate per chunk */
+#define EKHTML_BLOCKSIZE (1024 * 4)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/plugins/MirOTR/ekhtml/include/ekhtml_config.h b/plugins/MirOTR/ekhtml/include/ekhtml_config.h
new file mode 100644
index 0000000000..5ee8a65feb
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/ekhtml_config.h
@@ -0,0 +1,42 @@
+/* include/ekhtml_config.h. Generated automatically by configure. */
+/* config.in. Generated automatically from configure.in by autoheader. */
+/* local_template.h
+ This file is in the public domain.
+
+ Descriptive text for the C preprocessor macros that
+ the distributed Autoconf macros can define.
+ No software package will use all of them; autoheader copies the ones
+ your configure.in uses into your configuration header file templates.
+
+ The entries are in sort -df order: alphabetical, case insensitive,
+ ignoring punctuation (such as underscores). Although this order
+ can split up related entries, it makes it easier to check whether
+ a given entry is in the file.
+
+ Leave the following blank line there!! Autoheader needs it. */
+
+
+#define EKHTML_VER_BUGFIX 2
+#define EKHTML_VER_MAJOR 0
+#define EKHTML_VER_MINOR 3
+
+
+/* Leave that blank line there!! Autoheader needs it.
+ If you're adding to this file, keep in mind:
+ The entries are in sort -df order: alphabetical, case insensitive,
+ ignoring punctuation (such as underscores). */
+
+/* Define if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Name of package */
+#define PACKAGE "ekhtml"
+
+/* Version number of package */
+#define VERSION "0.3.2"
+
+#define inline __inline
+
+/* Define as `__inline' if that's what the C compiler calls it, or to nothing
+ if it is not supported. */
+/* #undef inline */
diff --git a/plugins/MirOTR/ekhtml/include/ekhtml_private.h b/plugins/MirOTR/ekhtml/include/ekhtml_private.h
new file mode 100644
index 0000000000..47d31282fa
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/ekhtml_private.h
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2002, Jon Travis
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef EKHTML_PRIVATE_DOT_H
+#define EKHTML_PRIVATE_DOT_H
+
+#ifndef EKHTML_USE_PRIVATE
+#error This file should only be used by the EKHTML library
+#endif
+
+#include <stdio.h>
+
+#include "ekhtml_config.h"
+#include "hash.h"
+
+/*
+ * Container structures -- since a void * is not guaranteed to store
+ * the function pointer correctly, we make a small container for them
+ */
+
+typedef struct {
+ ekhtml_starttag_cb_t startfunc;
+ ekhtml_endtag_cb_t endfunc;
+} ekhtml_tag_container;
+
+/*
+ * Processing state information
+ */
+
+#define EKHTML_STATE_NONE 0 /* No state - figure it out */
+#define EKHTML_STATE_INDATA 1 /* In regular data */
+#define EKHTML_STATE_BADDATA 2 /* In some kind of bad data .. I.e
+ an invalid tag. The first char
+ in the data is a '<' we must skip */
+#define EKHTML_STATE_STARTTAG 3 /* In a start tag */
+#define EKHTML_STATE_ENDTAG 4 /* In an end tag */
+#define EKHTML_STATE_SPECIAL 5 /* Special tag: <!FOO BAR BAZ */
+#define EKHTML_STATE_COMMENT 6 /* <!--Comment tag, yo! --> */
+
+#define EKHTML_CHAR_TAGNAME (1 << 0) /* AFTER first letter of tag */
+#define EKHTML_CHAR_WHITESPACE (1 << 1) /* Whitespace, obviously */
+#define EKHTML_CHAR_BEGATTRNAME (1 << 2) /* Valid 1st letter of attr */
+#define EKHTML_CHAR_ATTRNAME (1 << 3) /* AFTER first letter of attr */
+#define EKHTML_CHAR_ATTRVALUE (1 << 4) /* Valid attr value chars */
+
+
+#define EKHTML_CHARMAP_TYPE unsigned int
+#define EKHTML_CHARMAP_TYPE_S "unsigned int"
+#define EKHTML_CHARMAP_LEN (sizeof(EKHTML_CHARMAP_TYPE))
+
+typedef struct {
+ int tagend; /* Offset to the end of the tag name */
+ int mode; /* One of EKHTML_STMODE_* */
+ ekhtml_attr_t *attrs; /* Already processed attributes */
+ ekhtml_attr_t *curattr; /* Attribute currently being processed */
+ char quote; /* If the value is quoted, this is the char */
+} ekhtml_starttag_state;
+
+typedef struct {
+ int dashes; /* # of dashes in a row found */
+ int lastdash; /* Offset of last dash */
+} ekhtml_comment_state;
+
+typedef struct {
+ int lastchar; /* Offset of last non-witespace char (offset from '<') */
+} ekhtml_endtag_state;
+
+struct ekhtml_parser_t {
+ ekhtml_data_cb_t datacb; /* Callback when data is read */
+ hash_t *startendcb; /* Hash of start & end tag callbacks */
+ void *cbdata; /* Data to pass into all callbacks */
+ ekhtml_starttag_cb_t startcb_unk; /* Unknown starttag callback */
+ ekhtml_endtag_cb_t endcb_unk; /* Unknown endtag callback */
+ ekhtml_data_cb_t commentcb; /* Comment callback */
+
+ char *buf; /* malloced buffer holding parse data */
+ size_t nalloced; /* # of bytes alloced in 'buf' */
+ size_t nbuf; /* # of bytes used in 'buf' */
+
+ /* The next two vars are only used in the starttag portion */
+ ekhtml_starttag_state startstate; /* State info in start tags */
+ ekhtml_attr_t *freeattrs; /* Attribute structures which callers
+ can allocate and release at will */
+ ekhtml_endtag_state endstate; /* State info in end tags */
+ ekhtml_comment_state commentstate;/* Only used in comment state */
+
+ struct {
+ int state; /* One of EKHTML_STATE_* */
+ void *state_data; /* State dependent data pointer */
+ int offset; /* State dependent offset information */
+ } state;
+};
+
+extern char *ekhtml_parse_comment(ekhtml_parser_t *, void **, const char *,
+ const char *, int *baddata);
+extern char *ekhtml_parse_special(ekhtml_parser_t *, void **, const char *,
+ const char *, int *);
+extern char *ekhtml_parse_starttag(ekhtml_parser_t *, void **, char *,
+ char *, int *);
+extern char *ekhtml_parse_endtag(ekhtml_parser_t *, void **, char *,
+ char *, int *);
+extern char *ekhtml_parse_data(ekhtml_parser_t *, const char *, const char *,
+ int);
+
+extern void ekhtml_parser_starttag_cleanup(ekhtml_parser_t *);
+extern char *ekhtml_make_upperstr(char *, int);
+
+/*
+ * find_notcharsmap: Find a character in a buffer which contains a false
+ * value in the character map 'map'
+ *
+ * Arguments: buf = Buffer to search through
+ * len = Length of `buf`
+ * charmap = Character map (i.e. one from ekhtml_tables.h)
+ * mask = Mask to compare against each value of the map.
+ * If the char masked against 'mask' is zero,
+ * then the comparison is 'false'.
+ *
+ * Return values: Returns buf + len if a character was not found, else
+ * a pointer to the invalid character.
+ */
+
+static inline
+char *ekhtml_find_notcharsmap(const char *buf, int len,
+ const EKHTML_CHARMAP_TYPE *charmap,
+ EKHTML_CHARMAP_TYPE mask)
+{
+ const char *endp = buf + len;
+
+ for(;buf<endp;buf++)
+ if(!(charmap[(unsigned char )*buf] & mask))
+ break;
+
+ return (char *)((buf == endp) ? endp : buf);
+}
+
+
+#endif
+
diff --git a/plugins/MirOTR/ekhtml/include/ekhtml_tables.h b/plugins/MirOTR/ekhtml/include/ekhtml_tables.h
new file mode 100644
index 0000000000..58f89a2219
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/ekhtml_tables.h
@@ -0,0 +1,146 @@
+#ifndef EKHTML_MKTABLES_DOT_H
+#define EKHTML_MKTABLES_DOT_H
+#ifdef EKHTML_USE_TABLES
+const unsigned int EKCMap_CharMap[256] = {
+0x00000000 /* 0x00 */, 0x00000000 /* 0x01 */, 0x00000000 /* 0x02 */, 0x00000000 /* 0x03 */,
+0x00000000 /* 0x04 */, 0x00000000 /* 0x05 */, 0x00000000 /* 0x06 */, 0x00000000 /* 0x07 */,
+0x00000000 /* 0x08 */, 0x00000002 /* 0x09 */, 0x00000002 /* 0x0a */, 0x00000002 /* 0x0b */,
+0x00000002 /* 0x0c */, 0x00000002 /* 0x0d */, 0x00000000 /* 0x0e */, 0x00000000 /* 0x0f */,
+0x00000000 /* 0x10 */, 0x00000000 /* 0x11 */, 0x00000000 /* 0x12 */, 0x00000000 /* 0x13 */,
+0x00000000 /* 0x14 */, 0x00000000 /* 0x15 */, 0x00000000 /* 0x16 */, 0x00000000 /* 0x17 */,
+0x00000000 /* 0x18 */, 0x00000000 /* 0x19 */, 0x00000000 /* 0x1a */, 0x00000000 /* 0x1b */,
+0x00000000 /* 0x1c */, 0x00000000 /* 0x1d */, 0x00000000 /* 0x1e */, 0x00000000 /* 0x1f */,
+0x00000002 /* 0x20 */, 0x00000010 /* '!' */, 0x00000000 /* '"' */, 0x00000010 /* '#' */,
+0x00000010 /* '$' */, 0x00000010 /* '%' */, 0x00000010 /* '&' */, 0x00000000 /* ''' */,
+0x00000010 /* '(' */, 0x00000010 /* ')' */, 0x00000010 /* '*' */, 0x00000010 /* '+' */,
+0x00000000 /* ',' */, 0x00000019 /* '-' */, 0x00000019 /* '.' */, 0x00000010 /* '/' */,
+0x00000019 /* '0' */, 0x00000019 /* '1' */, 0x00000019 /* '2' */, 0x00000019 /* '3' */,
+0x00000019 /* '4' */, 0x00000019 /* '5' */, 0x00000019 /* '6' */, 0x00000019 /* '7' */,
+0x00000019 /* '8' */, 0x00000019 /* '9' */, 0x00000010 /* ':' */, 0x00000000 /* ';' */,
+0x00000000 /* '<' */, 0x00000010 /* '=' */, 0x00000000 /* '>' */, 0x00000010 /* '?' */,
+0x00000010 /* '@' */, 0x0000001d /* 'A' */, 0x0000001d /* 'B' */, 0x0000001d /* 'C' */,
+0x0000001d /* 'D' */, 0x0000001d /* 'E' */, 0x0000001d /* 'F' */, 0x0000001d /* 'G' */,
+0x0000001d /* 'H' */, 0x0000001d /* 'I' */, 0x0000001d /* 'J' */, 0x0000001d /* 'K' */,
+0x0000001d /* 'L' */, 0x0000001d /* 'M' */, 0x0000001d /* 'N' */, 0x0000001d /* 'O' */,
+0x0000001d /* 'P' */, 0x0000001d /* 'Q' */, 0x0000001d /* 'R' */, 0x0000001d /* 'S' */,
+0x0000001d /* 'T' */, 0x0000001d /* 'U' */, 0x0000001d /* 'V' */, 0x0000001d /* 'W' */,
+0x0000001d /* 'X' */, 0x0000001d /* 'Y' */, 0x0000001d /* 'Z' */, 0x00000000 /* '[' */,
+0x00000000 /* '\' */, 0x00000010 /* ']' */, 0x00000000 /* '^' */, 0x0000001c /* '_' */,
+0x00000000 /* '`' */, 0x0000001d /* 'a' */, 0x0000001d /* 'b' */, 0x0000001d /* 'c' */,
+0x0000001d /* 'd' */, 0x0000001d /* 'e' */, 0x0000001d /* 'f' */, 0x0000001d /* 'g' */,
+0x0000001d /* 'h' */, 0x0000001d /* 'i' */, 0x0000001d /* 'j' */, 0x0000001d /* 'k' */,
+0x0000001d /* 'l' */, 0x0000001d /* 'm' */, 0x0000001d /* 'n' */, 0x0000001d /* 'o' */,
+0x0000001d /* 'p' */, 0x0000001d /* 'q' */, 0x0000001d /* 'r' */, 0x0000001d /* 's' */,
+0x0000001d /* 't' */, 0x0000001d /* 'u' */, 0x0000001d /* 'v' */, 0x0000001d /* 'w' */,
+0x0000001d /* 'x' */, 0x0000001d /* 'y' */, 0x0000001d /* 'z' */, 0x00000000 /* '{' */,
+0x00000000 /* '|' */, 0x00000000 /* '}' */, 0x00000010 /* '~' */, 0x00000000 /* 0x7f */,
+0x00000000 /* 0x80 */, 0x00000000 /* 0x81 */, 0x00000000 /* 0x82 */, 0x0000001f /* 0x83 */,
+0x0000001f /* 0x84 */, 0x00000000 /* 0x85 */, 0x00000000 /* 0x86 */, 0x0000001f /* 0x87 */,
+0x0000001d /* 0x88 */, 0x00000000 /* 0x89 */, 0x00000000 /* 0x8a */, 0x0000001f /* 0x8b */,
+0x0000001f /* 0x8c */, 0x0000001f /* 0x8d */, 0x0000001d /* 0x8e */, 0x0000001d /* 0x8f */,
+0x0000001d /* 0x90 */, 0x0000001f /* 0x91 */, 0x0000001f /* 0x92 */, 0x0000001f /* 0x93 */,
+0x0000001d /* 0x94 */, 0x0000001f /* 0x95 */, 0x0000001d /* 0x96 */, 0x0000001f /* 0x97 */,
+0x0000001f /* 0x98 */, 0x0000001f /* 0x99 */, 0x0000001d /* 0x9a */, 0x0000001d /* 0x9b */,
+0x0000001d /* 0x9c */, 0x0000001f /* 0x9d */, 0x0000001f /* 0x9e */, 0x0000001f /* 0x9f */,
+0x0000001d /* 0xa0 */, 0x0000001f /* 0xa1 */, 0x0000001d /* 0xa2 */, 0x0000001f /* 0xa3 */,
+0x0000001f /* 0xa4 */, 0x0000001d /* 0xa5 */, 0x0000001d /* 0xa6 */, 0x0000001f /* 0xa7 */,
+0x0000001d /* 0xa8 */, 0x00000000 /* 0xa9 */, 0x00000000 /* 0xaa */, 0x0000001f /* 0xab */,
+0x0000001f /* 0xac */, 0x0000001d /* 0xad */, 0x0000001d /* 0xae */, 0x0000001d /* 0xaf */,
+0x0000001d /* 0xb0 */, 0x0000001f /* 0xb1 */, 0x0000001f /* 0xb2 */, 0x0000001d /* 0xb3 */,
+0x0000001d /* 0xb4 */, 0x0000001f /* 0xb5 */, 0x0000001d /* 0xb6 */, 0x0000001f /* 0xb7 */,
+0x0000001f /* 0xb8 */, 0x0000001f /* 0xb9 */, 0x0000001d /* 0xba */, 0x0000001f /* 0xbb */,
+0x0000001d /* 0xbc */, 0x0000001f /* 0xbd */, 0x0000001f /* 0xbe */, 0x0000001b /* 0xbf */,
+0x0000001d /* 0xc0 */, 0x00000000 /* 0xc1 */, 0x0000001d /* 0xc2 */, 0x0000001f /* 0xc3 */,
+0x0000001f /* 0xc4 */, 0x0000001f /* 0xc5 */, 0x0000001d /* 0xc6 */, 0x0000001f /* 0xc7 */,
+0x0000001d /* 0xc8 */, 0x00000000 /* 0xc9 */, 0x00000000 /* 0xca */, 0x0000001f /* 0xcb */,
+0x0000001f /* 0xcc */, 0x0000001f /* 0xcd */, 0x0000001d /* 0xce */, 0x00000000 /* 0xcf */,
+0x0000001d /* 0xd0 */, 0x0000001f /* 0xd1 */, 0x0000001f /* 0xd2 */, 0x0000001f /* 0xd3 */,
+0x0000001d /* 0xd4 */, 0x0000001f /* 0xd5 */, 0x0000001d /* 0xd6 */, 0x0000001f /* 0xd7 */,
+0x0000001f /* 0xd8 */, 0x00000000 /* 0xd9 */, 0x00000000 /* 0xda */, 0x0000001f /* 0xdb */,
+0x0000001d /* 0xdc */, 0x00000000 /* 0xdd */, 0x00000000 /* 0xde */, 0x0000001f /* 0xdf */,
+0x0000001f /* 0xe0 */, 0x00000000 /* 0xe1 */, 0x00000000 /* 0xe2 */, 0x0000001d /* 0xe3 */,
+0x0000001d /* 0xe4 */, 0x00000000 /* 0xe5 */, 0x00000000 /* 0xe6 */, 0x0000001f /* 0xe7 */,
+0x0000001f /* 0xe8 */, 0x00000000 /* 0xe9 */, 0x00000000 /* 0xea */, 0x0000001f /* 0xeb */,
+0x0000001d /* 0xec */, 0x00000000 /* 0xed */, 0x00000000 /* 0xee */, 0x0000001f /* 0xef */,
+0x0000001f /* 0xf0 */, 0x00000000 /* 0xf1 */, 0x00000000 /* 0xf2 */, 0x0000001f /* 0xf3 */,
+0x0000001d /* 0xf4 */, 0x00000000 /* 0xf5 */, 0x00000000 /* 0xf6 */, 0x0000001f /* 0xf7 */,
+0x0000001f /* 0xf8 */, 0x00000000 /* 0xf9 */, 0x00000000 /* 0xfa */, 0x00000000 /* 0xfb */,
+0x0000001d /* 0xfc */, 0x00000000 /* 0xfd */, 0x00000000 /* 0xfe */, 0x00000000 /* 0xff */,
+};
+
+#else
+extern const unsigned int EKCMap_CharMap[256];
+#endif
+#ifdef EKHTML_USE_TABLES
+const unsigned int EKCMap_EKState[256] = {
+0x00000002 /* 0x00 */, 0x00000002 /* 0x01 */, 0x00000002 /* 0x02 */, 0x00000002 /* 0x03 */,
+0x00000002 /* 0x04 */, 0x00000002 /* 0x05 */, 0x00000002 /* 0x06 */, 0x00000002 /* 0x07 */,
+0x00000002 /* 0x08 */, 0x00000002 /* 0x09 */, 0x00000002 /* 0x0a */, 0x00000002 /* 0x0b */,
+0x00000002 /* 0x0c */, 0x00000002 /* 0x0d */, 0x00000002 /* 0x0e */, 0x00000002 /* 0x0f */,
+0x00000002 /* 0x10 */, 0x00000002 /* 0x11 */, 0x00000002 /* 0x12 */, 0x00000002 /* 0x13 */,
+0x00000002 /* 0x14 */, 0x00000002 /* 0x15 */, 0x00000002 /* 0x16 */, 0x00000002 /* 0x17 */,
+0x00000002 /* 0x18 */, 0x00000002 /* 0x19 */, 0x00000002 /* 0x1a */, 0x00000002 /* 0x1b */,
+0x00000002 /* 0x1c */, 0x00000002 /* 0x1d */, 0x00000002 /* 0x1e */, 0x00000002 /* 0x1f */,
+0x00000002 /* 0x20 */, 0x00000000 /* '!' */, 0x00000002 /* '"' */, 0x00000002 /* '#' */,
+0x00000002 /* '$' */, 0x00000002 /* '%' */, 0x00000002 /* '&' */, 0x00000002 /* ''' */,
+0x00000002 /* '(' */, 0x00000002 /* ')' */, 0x00000002 /* '*' */, 0x00000002 /* '+' */,
+0x00000002 /* ',' */, 0x00000002 /* '-' */, 0x00000002 /* '.' */, 0x00000004 /* '/' */,
+0x00000002 /* '0' */, 0x00000002 /* '1' */, 0x00000002 /* '2' */, 0x00000002 /* '3' */,
+0x00000002 /* '4' */, 0x00000002 /* '5' */, 0x00000002 /* '6' */, 0x00000002 /* '7' */,
+0x00000002 /* '8' */, 0x00000002 /* '9' */, 0x00000002 /* ':' */, 0x00000002 /* ';' */,
+0x00000002 /* '<' */, 0x00000002 /* '=' */, 0x00000002 /* '>' */, 0x00000002 /* '?' */,
+0x00000002 /* '@' */, 0x00000003 /* 'A' */, 0x00000003 /* 'B' */, 0x00000003 /* 'C' */,
+0x00000003 /* 'D' */, 0x00000003 /* 'E' */, 0x00000003 /* 'F' */, 0x00000003 /* 'G' */,
+0x00000003 /* 'H' */, 0x00000003 /* 'I' */, 0x00000003 /* 'J' */, 0x00000003 /* 'K' */,
+0x00000003 /* 'L' */, 0x00000003 /* 'M' */, 0x00000003 /* 'N' */, 0x00000003 /* 'O' */,
+0x00000003 /* 'P' */, 0x00000003 /* 'Q' */, 0x00000003 /* 'R' */, 0x00000003 /* 'S' */,
+0x00000003 /* 'T' */, 0x00000003 /* 'U' */, 0x00000003 /* 'V' */, 0x00000003 /* 'W' */,
+0x00000003 /* 'X' */, 0x00000003 /* 'Y' */, 0x00000003 /* 'Z' */, 0x00000002 /* '[' */,
+0x00000002 /* '\' */, 0x00000002 /* ']' */, 0x00000002 /* '^' */, 0x00000002 /* '_' */,
+0x00000002 /* '`' */, 0x00000003 /* 'a' */, 0x00000003 /* 'b' */, 0x00000003 /* 'c' */,
+0x00000003 /* 'd' */, 0x00000003 /* 'e' */, 0x00000003 /* 'f' */, 0x00000003 /* 'g' */,
+0x00000003 /* 'h' */, 0x00000003 /* 'i' */, 0x00000003 /* 'j' */, 0x00000003 /* 'k' */,
+0x00000003 /* 'l' */, 0x00000003 /* 'm' */, 0x00000003 /* 'n' */, 0x00000003 /* 'o' */,
+0x00000003 /* 'p' */, 0x00000003 /* 'q' */, 0x00000003 /* 'r' */, 0x00000003 /* 's' */,
+0x00000003 /* 't' */, 0x00000003 /* 'u' */, 0x00000003 /* 'v' */, 0x00000003 /* 'w' */,
+0x00000003 /* 'x' */, 0x00000003 /* 'y' */, 0x00000003 /* 'z' */, 0x00000002 /* '{' */,
+0x00000002 /* '|' */, 0x00000002 /* '}' */, 0x00000002 /* '~' */, 0x00000002 /* 0x7f */,
+0x00000002 /* 0x80 */, 0x00000002 /* 0x81 */, 0x00000002 /* 0x82 */, 0x00000003 /* 0x83 */,
+0x00000003 /* 0x84 */, 0x00000002 /* 0x85 */, 0x00000002 /* 0x86 */, 0x00000003 /* 0x87 */,
+0x00000003 /* 0x88 */, 0x00000002 /* 0x89 */, 0x00000002 /* 0x8a */, 0x00000003 /* 0x8b */,
+0x00000003 /* 0x8c */, 0x00000003 /* 0x8d */, 0x00000003 /* 0x8e */, 0x00000003 /* 0x8f */,
+0x00000003 /* 0x90 */, 0x00000003 /* 0x91 */, 0x00000003 /* 0x92 */, 0x00000003 /* 0x93 */,
+0x00000003 /* 0x94 */, 0x00000003 /* 0x95 */, 0x00000003 /* 0x96 */, 0x00000003 /* 0x97 */,
+0x00000003 /* 0x98 */, 0x00000003 /* 0x99 */, 0x00000003 /* 0x9a */, 0x00000003 /* 0x9b */,
+0x00000003 /* 0x9c */, 0x00000003 /* 0x9d */, 0x00000003 /* 0x9e */, 0x00000003 /* 0x9f */,
+0x00000003 /* 0xa0 */, 0x00000003 /* 0xa1 */, 0x00000003 /* 0xa2 */, 0x00000003 /* 0xa3 */,
+0x00000003 /* 0xa4 */, 0x00000003 /* 0xa5 */, 0x00000003 /* 0xa6 */, 0x00000003 /* 0xa7 */,
+0x00000003 /* 0xa8 */, 0x00000002 /* 0xa9 */, 0x00000002 /* 0xaa */, 0x00000003 /* 0xab */,
+0x00000003 /* 0xac */, 0x00000003 /* 0xad */, 0x00000003 /* 0xae */, 0x00000003 /* 0xaf */,
+0x00000003 /* 0xb0 */, 0x00000003 /* 0xb1 */, 0x00000003 /* 0xb2 */, 0x00000003 /* 0xb3 */,
+0x00000003 /* 0xb4 */, 0x00000003 /* 0xb5 */, 0x00000003 /* 0xb6 */, 0x00000003 /* 0xb7 */,
+0x00000003 /* 0xb8 */, 0x00000003 /* 0xb9 */, 0x00000003 /* 0xba */, 0x00000003 /* 0xbb */,
+0x00000003 /* 0xbc */, 0x00000003 /* 0xbd */, 0x00000003 /* 0xbe */, 0x00000002 /* 0xbf */,
+0x00000003 /* 0xc0 */, 0x00000002 /* 0xc1 */, 0x00000003 /* 0xc2 */, 0x00000003 /* 0xc3 */,
+0x00000003 /* 0xc4 */, 0x00000003 /* 0xc5 */, 0x00000003 /* 0xc6 */, 0x00000003 /* 0xc7 */,
+0x00000003 /* 0xc8 */, 0x00000002 /* 0xc9 */, 0x00000002 /* 0xca */, 0x00000003 /* 0xcb */,
+0x00000003 /* 0xcc */, 0x00000003 /* 0xcd */, 0x00000003 /* 0xce */, 0x00000002 /* 0xcf */,
+0x00000003 /* 0xd0 */, 0x00000003 /* 0xd1 */, 0x00000003 /* 0xd2 */, 0x00000003 /* 0xd3 */,
+0x00000003 /* 0xd4 */, 0x00000003 /* 0xd5 */, 0x00000003 /* 0xd6 */, 0x00000003 /* 0xd7 */,
+0x00000003 /* 0xd8 */, 0x00000002 /* 0xd9 */, 0x00000002 /* 0xda */, 0x00000003 /* 0xdb */,
+0x00000003 /* 0xdc */, 0x00000002 /* 0xdd */, 0x00000002 /* 0xde */, 0x00000003 /* 0xdf */,
+0x00000003 /* 0xe0 */, 0x00000002 /* 0xe1 */, 0x00000002 /* 0xe2 */, 0x00000003 /* 0xe3 */,
+0x00000003 /* 0xe4 */, 0x00000002 /* 0xe5 */, 0x00000002 /* 0xe6 */, 0x00000003 /* 0xe7 */,
+0x00000003 /* 0xe8 */, 0x00000002 /* 0xe9 */, 0x00000002 /* 0xea */, 0x00000003 /* 0xeb */,
+0x00000003 /* 0xec */, 0x00000002 /* 0xed */, 0x00000002 /* 0xee */, 0x00000003 /* 0xef */,
+0x00000003 /* 0xf0 */, 0x00000002 /* 0xf1 */, 0x00000002 /* 0xf2 */, 0x00000003 /* 0xf3 */,
+0x00000003 /* 0xf4 */, 0x00000002 /* 0xf5 */, 0x00000002 /* 0xf6 */, 0x00000003 /* 0xf7 */,
+0x00000003 /* 0xf8 */, 0x00000002 /* 0xf9 */, 0x00000002 /* 0xfa */, 0x00000002 /* 0xfb */,
+0x00000003 /* 0xfc */, 0x00000002 /* 0xfd */, 0x00000002 /* 0xfe */, 0x00000002 /* 0xff */,
+};
+
+#else
+extern const unsigned int EKCMap_EKState[256];
+#endif
+
+#endif
diff --git a/plugins/MirOTR/ekhtml/include/hash.h b/plugins/MirOTR/ekhtml/include/hash.h
new file mode 100644
index 0000000000..ddb3869477
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/hash.h
@@ -0,0 +1,240 @@
+/*
+ * Hash Table Data Type
+ * Copyright (C) 1997 Kaz Kylheku <kaz@ashi.footprints.net>
+ *
+ * Free Software License:
+ *
+ * All rights are reserved by the author, with the following exceptions:
+ * Permission is granted to freely reproduce and distribute this software,
+ * possibly in exchange for a fee, provided that this copyright notice appears
+ * intact. Permission is also granted to adapt this software to produce
+ * derivative works, as long as the modified versions carry this copyright
+ * notice and additional notices stating that the work has been modified.
+ * This source code may be translated into executable form and incorporated
+ * into proprietary software; there is no requirement for such software to
+ * contain a copyright notice related to this source.
+ *
+ * $Id: hash.h,v 1.1 2002/09/17 02:49:36 jick Exp $
+ * $Name: EKHTML_RELEASE_0_3_2 $
+ */
+
+#ifndef HASH_H
+#define HASH_H
+
+#include <limits.h>
+#ifdef KAZLIB_SIDEEFFECT_DEBUG
+#include "sfx.h"
+#endif
+
+/*
+ * Blurb for inclusion into C++ translation units
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef unsigned long hashcount_t;
+#define HASHCOUNT_T_MAX ULONG_MAX
+
+typedef unsigned long hash_val_t;
+#define HASH_VAL_T_MAX ULONG_MAX
+
+extern int hash_val_t_bit;
+
+#ifndef HASH_VAL_T_BIT
+#define HASH_VAL_T_BIT ((int) hash_val_t_bit)
+#endif
+
+/*
+ * Hash chain node structure.
+ * Notes:
+ * 1. This preprocessing directive is for debugging purposes. The effect is
+ * that if the preprocessor symbol KAZLIB_OPAQUE_DEBUG is defined prior to the
+ * inclusion of this header, then the structure shall be declared as having
+ * the single member int __OPAQUE__. This way, any attempts by the
+ * client code to violate the principles of information hiding (by accessing
+ * the structure directly) can be diagnosed at translation time. However,
+ * note the resulting compiled unit is not suitable for linking.
+ * 2. This is a pointer to the next node in the chain. In the last node of a
+ * chain, this pointer is null.
+ * 3. The key is a pointer to some user supplied data that contains a unique
+ * identifier for each hash node in a given table. The interpretation of
+ * the data is up to the user. When creating or initializing a hash table,
+ * the user must supply a pointer to a function for comparing two keys,
+ * and a pointer to a function for hashing a key into a numeric value.
+ * 4. The value is a user-supplied pointer to void which may refer to
+ * any data object. It is not interpreted in any way by the hashing
+ * module.
+ * 5. The hashed key is stored in each node so that we don't have to rehash
+ * each key when the table must grow or shrink.
+ */
+
+typedef struct hnode_t {
+ #if defined(HASH_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG) /* 1 */
+ struct hnode_t *hash_next; /* 2 */
+ const void *hash_key; /* 3 */
+ void *hash_data; /* 4 */
+ hash_val_t hash_hkey; /* 5 */
+ #else
+ int hash_dummy;
+ #endif
+} hnode_t;
+
+/*
+ * The comparison function pointer type. A comparison function takes two keys
+ * and produces a value of -1 if the left key is less than the right key, a
+ * value of 0 if the keys are equal, and a value of 1 if the left key is
+ * greater than the right key.
+ */
+
+typedef int (*hash_comp_t)(const void *, const void *);
+
+/*
+ * The hashing function performs some computation on a key and produces an
+ * integral value of type hash_val_t based on that key. For best results, the
+ * function should have a good randomness properties in *all* significant bits
+ * over the set of keys that are being inserted into a given hash table. In
+ * particular, the most significant bits of hash_val_t are most significant to
+ * the hash module. Only as the hash table expands are less significant bits
+ * examined. Thus a function that has good distribution in its upper bits but
+ * not lower is preferrable to one that has poor distribution in the upper bits
+ * but not the lower ones.
+ */
+
+typedef hash_val_t (*hash_fun_t)(const void *);
+
+/*
+ * allocator functions
+ */
+
+typedef hnode_t *(*hnode_alloc_t)(void *);
+typedef void (*hnode_free_t)(hnode_t *, void *);
+
+/*
+ * This is the hash table control structure. It keeps track of information
+ * about a hash table, as well as the hash table itself.
+ * Notes:
+ * 1. Pointer to the hash table proper. The table is an array of pointers to
+ * hash nodes (of type hnode_t). If the table is empty, every element of
+ * this table is a null pointer. A non-null entry points to the first
+ * element of a chain of nodes.
+ * 2. This member keeps track of the size of the hash table---that is, the
+ * number of chain pointers.
+ * 3. The count member maintains the number of elements that are presently
+ * in the hash table.
+ * 4. The maximum count is the greatest number of nodes that can populate this
+ * table. If the table contains this many nodes, no more can be inserted,
+ * and the hash_isfull() function returns true.
+ * 5. The high mark is a population threshold, measured as a number of nodes,
+ * which, if exceeded, will trigger a table expansion. Only dynamic hash
+ * tables are subject to this expansion.
+ * 6. The low mark is a minimum population threshold, measured as a number of
+ * nodes. If the table population drops below this value, a table shrinkage
+ * will occur. Only dynamic tables are subject to this reduction. No table
+ * will shrink beneath a certain absolute minimum number of nodes.
+ * 7. This is the a pointer to the hash table's comparison function. The
+ * function is set once at initialization or creation time.
+ * 8. Pointer to the table's hashing function, set once at creation or
+ * initialization time.
+ * 9. The current hash table mask. If the size of the hash table is 2^N,
+ * this value has its low N bits set to 1, and the others clear. It is used
+ * to select bits from the result of the hashing function to compute an
+ * index into the table.
+ * 10. A flag which indicates whether the table is to be dynamically resized. It
+ * is set to 1 in dynamically allocated tables, 0 in tables that are
+ * statically allocated.
+ */
+
+typedef struct hash_t {
+ #if defined(HASH_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
+ struct hnode_t **hash_table; /* 1 */
+ hashcount_t hash_nchains; /* 2 */
+ hashcount_t hash_nodecount; /* 3 */
+ hashcount_t hash_maxcount; /* 4 */
+ hashcount_t hash_highmark; /* 5 */
+ hashcount_t hash_lowmark; /* 6 */
+ hash_comp_t hash_compare; /* 7 */
+ hash_fun_t hash_function; /* 8 */
+ hnode_alloc_t hash_allocnode;
+ hnode_free_t hash_freenode;
+ void *hash_context;
+ hash_val_t hash_mask; /* 9 */
+ int hash_dynamic; /* 10 */
+ #else
+ int hash_dummy;
+ #endif
+} hash_t;
+
+/*
+ * Hash scanner structure, used for traversals of the data structure.
+ * Notes:
+ * 1. Pointer to the hash table that is being traversed.
+ * 2. Reference to the current chain in the table being traversed (the chain
+ * that contains the next node that shall be retrieved).
+ * 3. Pointer to the node that will be retrieved by the subsequent call to
+ * hash_scan_next().
+ */
+
+typedef struct hscan_t {
+ #if defined(HASH_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
+ hash_t *hash_table; /* 1 */
+ hash_val_t hash_chain; /* 2 */
+ hnode_t *hash_next; /* 3 */
+ #else
+ int hash_dummy;
+ #endif
+} hscan_t;
+
+extern hash_t *hash_create(hashcount_t, hash_comp_t, hash_fun_t);
+extern void hash_set_allocator(hash_t *, hnode_alloc_t, hnode_free_t, void *);
+extern void hash_destroy(hash_t *);
+extern void hash_free_nodes(hash_t *);
+extern void hash_free(hash_t *);
+extern hash_t *hash_init(hash_t *, hashcount_t, hash_comp_t,
+ hash_fun_t, hnode_t **, hashcount_t);
+extern void hash_insert(hash_t *, hnode_t *, const void *);
+extern hnode_t *hash_lookup(hash_t *, const void *);
+extern hnode_t *hash_delete(hash_t *, hnode_t *);
+extern int hash_alloc_insert(hash_t *, const void *, void *);
+extern void hash_delete_free(hash_t *, hnode_t *);
+
+extern void hnode_put(hnode_t *, void *);
+extern void *hnode_get(hnode_t *);
+extern const void *hnode_getkey(hnode_t *);
+extern hashcount_t hash_count(hash_t *);
+extern hashcount_t hash_size(hash_t *);
+
+extern int hash_isfull(hash_t *);
+extern int hash_isempty(hash_t *);
+
+extern void hash_scan_begin(hscan_t *, hash_t *);
+extern hnode_t *hash_scan_next(hscan_t *);
+extern hnode_t *hash_scan_delete(hash_t *, hnode_t *);
+extern void hash_scan_delfree(hash_t *, hnode_t *);
+
+extern int hash_verify(hash_t *);
+
+extern hnode_t *hnode_create(void *);
+extern hnode_t *hnode_init(hnode_t *, void *);
+extern void hnode_destroy(hnode_t *);
+
+#if defined(HASH_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
+#ifdef KAZLIB_SIDEEFFECT_DEBUG
+#define hash_isfull(H) (SFX_CHECK(H)->hash_nodecount == (H)->hash_maxcount)
+#else
+#define hash_isfull(H) ((H)->hash_nodecount == (H)->hash_maxcount)
+#endif
+#define hash_isempty(H) ((H)->hash_nodecount == 0)
+#define hash_count(H) ((H)->hash_nodecount)
+#define hash_size(H) ((H)->hash_nchains)
+#define hnode_get(N) ((N)->hash_data)
+#define hnode_getkey(N) ((N)->hash_key)
+#define hnode_put(N, V) ((N)->hash_data = (V))
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/plugins/MirOTR/ekhtml/include/stamp-h1 b/plugins/MirOTR/ekhtml/include/stamp-h1
new file mode 100644
index 0000000000..30cbac668a
--- /dev/null
+++ b/plugins/MirOTR/ekhtml/include/stamp-h1
@@ -0,0 +1 @@
+timestamp for include/ekhtml_config.h:config.in