summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Schümann <white06tiger@gmail.com>2015-03-20 12:30:48 +0000
committerRené Schümann <white06tiger@gmail.com>2015-03-20 12:30:48 +0000
commit90171f125f36488dc08f5cfe0b0d4b78d995f08d (patch)
treee65a38bd8ba391fc800cecc896379a7fb76a0608
parent190307ca7aee92d6b862db0bf78cde10acfc95d0 (diff)
MirOTR: updated ekhtml from 0.3.2 to 0.3.3-pre (Git 0092d9d), this fixes a memory leak and improves attribute parsing
git-svn-id: http://svn.miranda-ng.org/main/trunk@12448 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--plugins/MirOTR/ekhtml/include/ekhtml.h9
-rw-r--r--plugins/MirOTR/ekhtml/include/ekhtml_config.h80
-rw-r--r--plugins/MirOTR/ekhtml/include/ekhtml_private.h2
-rw-r--r--plugins/MirOTR/ekhtml/include/ekhtml_tables.h134
-rw-r--r--plugins/MirOTR/ekhtml/include/hash.h31
-rw-r--r--plugins/MirOTR/ekhtml/src/ekhtml.c6
-rw-r--r--plugins/MirOTR/ekhtml/src/ekhtml_comment.c2
-rw-r--r--plugins/MirOTR/ekhtml/src/ekhtml_data.c2
-rw-r--r--plugins/MirOTR/ekhtml/src/ekhtml_endtag.c2
-rw-r--r--plugins/MirOTR/ekhtml/src/ekhtml_mktables.c7
-rw-r--r--plugins/MirOTR/ekhtml/src/ekhtml_special.c2
-rw-r--r--plugins/MirOTR/ekhtml/src/ekhtml_starttag.c4
-rw-r--r--plugins/MirOTR/ekhtml/src/ekhtml_util.c2
-rw-r--r--plugins/MirOTR/ekhtml/src/hash.c35
14 files changed, 192 insertions, 126 deletions
diff --git a/plugins/MirOTR/ekhtml/include/ekhtml.h b/plugins/MirOTR/ekhtml/include/ekhtml.h
index 1bed8eaa70..ba4b196649 100644
--- a/plugins/MirOTR/ekhtml/include/ekhtml.h
+++ b/plugins/MirOTR/ekhtml/include/ekhtml.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -57,14 +57,15 @@ typedef struct ekhtml_string_t {
* 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).
+ * terminated with '\0', the length is in name->len, and val->len
*/
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 */
+ unsigned int isBoolean; /**< True if the attribute is boolean */
+ char quoteChar; /**< The character used to quote 'val'.
+ If no quoting was used, '\0' */
struct ekhtml_attr_t *next; /**< Pointer to next attribute in the list */
} ekhtml_attr_t;
diff --git a/plugins/MirOTR/ekhtml/include/ekhtml_config.h b/plugins/MirOTR/ekhtml/include/ekhtml_config.h
index 5ee8a65feb..775b8cb2f2 100644
--- a/plugins/MirOTR/ekhtml/include/ekhtml_config.h
+++ b/plugins/MirOTR/ekhtml/include/ekhtml_config.h
@@ -1,5 +1,5 @@
-/* include/ekhtml_config.h. Generated automatically by configure. */
-/* config.in. Generated automatically from configure.in by autoheader. */
+/* include/ekhtml_config.h. Generated from config.in by configure. */
+/* config.in. Generated from configure.in by autoheader. */
/* local_template.h
This file is in the public domain.
@@ -16,7 +16,8 @@
Leave the following blank line there!! Autoheader needs it. */
-#define EKHTML_VER_BUGFIX 2
+#define EKHTML_HASH_BITS 32
+#define EKHTML_VER_BUGFIX 3
#define EKHTML_VER_MAJOR 0
#define EKHTML_VER_MINOR 3
@@ -26,17 +27,80 @@
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). */
-/* Define if you have the <dlfcn.h> header file. */
+/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
+/* Define to 1 if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
/* Name of package */
#define PACKAGE "ekhtml"
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME ""
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING ""
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME ""
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION ""
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
/* Version number of package */
-#define VERSION "0.3.2"
+#define VERSION "0.3.3"
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
#define inline __inline
+#endif
-/* Define as `__inline' if that's what the C compiler calls it, or to nothing
- if it is not supported. */
-/* #undef inline */
+/* Miranda NG modifications */
+#define GPGRT_ENABLE_ES_MACROS 1
+#include <string.h>
+#define strdup _strdup
+#define stricmp _stricmp
+#define snprintf _snprintf
+#ifdef _WIN64
+# define __x86_64__ 1
+#else
+# define __i386__ 1
+#endif
diff --git a/plugins/MirOTR/ekhtml/include/ekhtml_private.h b/plugins/MirOTR/ekhtml/include/ekhtml_private.h
index 47d31282fa..ea0a99dc34 100644
--- a/plugins/MirOTR/ekhtml/include/ekhtml_private.h
+++ b/plugins/MirOTR/ekhtml/include/ekhtml_private.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/plugins/MirOTR/ekhtml/include/ekhtml_tables.h b/plugins/MirOTR/ekhtml/include/ekhtml_tables.h
index 58f89a2219..4c185703e1 100644
--- a/plugins/MirOTR/ekhtml/include/ekhtml_tables.h
+++ b/plugins/MirOTR/ekhtml/include/ekhtml_tables.h
@@ -13,10 +13,10 @@ const unsigned int EKCMap_CharMap[256] = {
0x00000002 /* 0x20 */, 0x00000010 /* '!' */, 0x00000000 /* '"' */, 0x00000010 /* '#' */,
0x00000010 /* '$' */, 0x00000010 /* '%' */, 0x00000010 /* '&' */, 0x00000000 /* ''' */,
0x00000010 /* '(' */, 0x00000010 /* ')' */, 0x00000010 /* '*' */, 0x00000010 /* '+' */,
-0x00000000 /* ',' */, 0x00000019 /* '-' */, 0x00000019 /* '.' */, 0x00000010 /* '/' */,
+0x00000010 /* ',' */, 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 /* ';' */,
+0x00000019 /* '8' */, 0x00000019 /* '9' */, 0x00000010 /* ':' */, 0x00000010 /* ';' */,
0x00000000 /* '<' */, 0x00000010 /* '=' */, 0x00000000 /* '>' */, 0x00000010 /* '?' */,
0x00000010 /* '@' */, 0x0000001d /* 'A' */, 0x0000001d /* 'B' */, 0x0000001d /* 'C' */,
0x0000001d /* 'D' */, 0x0000001d /* 'E' */, 0x0000001d /* 'F' */, 0x0000001d /* 'G' */,
@@ -33,39 +33,39 @@ const unsigned int EKCMap_CharMap[256] = {
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 */,
+0x00000010 /* '|' */, 0x00000000 /* '}' */, 0x00000010 /* '~' */, 0x00000000 /* 0x7f */,
+0x00000000 /* 0x80 */, 0x00000000 /* 0x81 */, 0x00000000 /* 0x82 */, 0x00000000 /* 0x83 */,
+0x00000000 /* 0x84 */, 0x00000000 /* 0x85 */, 0x00000000 /* 0x86 */, 0x00000000 /* 0x87 */,
+0x00000000 /* 0x88 */, 0x00000000 /* 0x89 */, 0x00000000 /* 0x8a */, 0x00000000 /* 0x8b */,
+0x00000000 /* 0x8c */, 0x00000000 /* 0x8d */, 0x00000000 /* 0x8e */, 0x00000000 /* 0x8f */,
+0x00000000 /* 0x90 */, 0x00000000 /* 0x91 */, 0x00000000 /* 0x92 */, 0x00000000 /* 0x93 */,
+0x00000000 /* 0x94 */, 0x00000000 /* 0x95 */, 0x00000000 /* 0x96 */, 0x00000000 /* 0x97 */,
+0x00000000 /* 0x98 */, 0x00000000 /* 0x99 */, 0x00000000 /* 0x9a */, 0x00000000 /* 0x9b */,
+0x00000000 /* 0x9c */, 0x00000000 /* 0x9d */, 0x00000000 /* 0x9e */, 0x00000000 /* 0x9f */,
+0x00000000 /* 0xa0 */, 0x00000000 /* 0xa1 */, 0x00000000 /* 0xa2 */, 0x00000000 /* 0xa3 */,
+0x00000000 /* 0xa4 */, 0x00000000 /* 0xa5 */, 0x00000000 /* 0xa6 */, 0x00000000 /* 0xa7 */,
+0x00000000 /* 0xa8 */, 0x00000000 /* 0xa9 */, 0x00000000 /* 0xaa */, 0x00000000 /* 0xab */,
+0x00000000 /* 0xac */, 0x00000000 /* 0xad */, 0x00000000 /* 0xae */, 0x00000000 /* 0xaf */,
+0x00000000 /* 0xb0 */, 0x00000000 /* 0xb1 */, 0x00000000 /* 0xb2 */, 0x00000000 /* 0xb3 */,
+0x00000000 /* 0xb4 */, 0x00000000 /* 0xb5 */, 0x00000000 /* 0xb6 */, 0x00000000 /* 0xb7 */,
+0x00000000 /* 0xb8 */, 0x00000000 /* 0xb9 */, 0x00000000 /* 0xba */, 0x00000000 /* 0xbb */,
+0x00000000 /* 0xbc */, 0x00000000 /* 0xbd */, 0x00000000 /* 0xbe */, 0x00000000 /* 0xbf */,
+0x00000000 /* 0xc0 */, 0x00000000 /* 0xc1 */, 0x00000000 /* 0xc2 */, 0x00000000 /* 0xc3 */,
+0x00000000 /* 0xc4 */, 0x00000000 /* 0xc5 */, 0x00000000 /* 0xc6 */, 0x00000000 /* 0xc7 */,
+0x00000000 /* 0xc8 */, 0x00000000 /* 0xc9 */, 0x00000000 /* 0xca */, 0x00000000 /* 0xcb */,
+0x00000000 /* 0xcc */, 0x00000000 /* 0xcd */, 0x00000000 /* 0xce */, 0x00000000 /* 0xcf */,
+0x00000000 /* 0xd0 */, 0x00000000 /* 0xd1 */, 0x00000000 /* 0xd2 */, 0x00000000 /* 0xd3 */,
+0x00000000 /* 0xd4 */, 0x00000000 /* 0xd5 */, 0x00000000 /* 0xd6 */, 0x00000000 /* 0xd7 */,
+0x00000000 /* 0xd8 */, 0x00000000 /* 0xd9 */, 0x00000000 /* 0xda */, 0x00000000 /* 0xdb */,
+0x00000000 /* 0xdc */, 0x00000000 /* 0xdd */, 0x00000000 /* 0xde */, 0x00000000 /* 0xdf */,
+0x00000000 /* 0xe0 */, 0x00000000 /* 0xe1 */, 0x00000000 /* 0xe2 */, 0x00000000 /* 0xe3 */,
+0x00000000 /* 0xe4 */, 0x00000000 /* 0xe5 */, 0x00000000 /* 0xe6 */, 0x00000000 /* 0xe7 */,
+0x00000000 /* 0xe8 */, 0x00000000 /* 0xe9 */, 0x00000000 /* 0xea */, 0x00000000 /* 0xeb */,
+0x00000000 /* 0xec */, 0x00000000 /* 0xed */, 0x00000000 /* 0xee */, 0x00000000 /* 0xef */,
+0x00000000 /* 0xf0 */, 0x00000000 /* 0xf1 */, 0x00000000 /* 0xf2 */, 0x00000000 /* 0xf3 */,
+0x00000000 /* 0xf4 */, 0x00000000 /* 0xf5 */, 0x00000000 /* 0xf6 */, 0x00000000 /* 0xf7 */,
+0x00000000 /* 0xf8 */, 0x00000000 /* 0xf9 */, 0x00000000 /* 0xfa */, 0x00000000 /* 0xfb */,
+0x00000000 /* 0xfc */, 0x00000000 /* 0xfd */, 0x00000000 /* 0xfe */, 0x00000000 /* 0xff */,
};
#else
@@ -105,38 +105,38 @@ const unsigned int EKCMap_EKState[256] = {
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 */,
+0x00000002 /* 0x80 */, 0x00000002 /* 0x81 */, 0x00000002 /* 0x82 */, 0x00000002 /* 0x83 */,
+0x00000002 /* 0x84 */, 0x00000002 /* 0x85 */, 0x00000002 /* 0x86 */, 0x00000002 /* 0x87 */,
+0x00000002 /* 0x88 */, 0x00000002 /* 0x89 */, 0x00000002 /* 0x8a */, 0x00000002 /* 0x8b */,
+0x00000002 /* 0x8c */, 0x00000002 /* 0x8d */, 0x00000002 /* 0x8e */, 0x00000002 /* 0x8f */,
+0x00000002 /* 0x90 */, 0x00000002 /* 0x91 */, 0x00000002 /* 0x92 */, 0x00000002 /* 0x93 */,
+0x00000002 /* 0x94 */, 0x00000002 /* 0x95 */, 0x00000002 /* 0x96 */, 0x00000002 /* 0x97 */,
+0x00000002 /* 0x98 */, 0x00000002 /* 0x99 */, 0x00000002 /* 0x9a */, 0x00000002 /* 0x9b */,
+0x00000002 /* 0x9c */, 0x00000002 /* 0x9d */, 0x00000002 /* 0x9e */, 0x00000002 /* 0x9f */,
+0x00000002 /* 0xa0 */, 0x00000002 /* 0xa1 */, 0x00000002 /* 0xa2 */, 0x00000002 /* 0xa3 */,
+0x00000002 /* 0xa4 */, 0x00000002 /* 0xa5 */, 0x00000002 /* 0xa6 */, 0x00000002 /* 0xa7 */,
+0x00000002 /* 0xa8 */, 0x00000002 /* 0xa9 */, 0x00000002 /* 0xaa */, 0x00000002 /* 0xab */,
+0x00000002 /* 0xac */, 0x00000002 /* 0xad */, 0x00000002 /* 0xae */, 0x00000002 /* 0xaf */,
+0x00000002 /* 0xb0 */, 0x00000002 /* 0xb1 */, 0x00000002 /* 0xb2 */, 0x00000002 /* 0xb3 */,
+0x00000002 /* 0xb4 */, 0x00000002 /* 0xb5 */, 0x00000002 /* 0xb6 */, 0x00000002 /* 0xb7 */,
+0x00000002 /* 0xb8 */, 0x00000002 /* 0xb9 */, 0x00000002 /* 0xba */, 0x00000002 /* 0xbb */,
+0x00000002 /* 0xbc */, 0x00000002 /* 0xbd */, 0x00000002 /* 0xbe */, 0x00000002 /* 0xbf */,
+0x00000002 /* 0xc0 */, 0x00000002 /* 0xc1 */, 0x00000002 /* 0xc2 */, 0x00000002 /* 0xc3 */,
+0x00000002 /* 0xc4 */, 0x00000002 /* 0xc5 */, 0x00000002 /* 0xc6 */, 0x00000002 /* 0xc7 */,
+0x00000002 /* 0xc8 */, 0x00000002 /* 0xc9 */, 0x00000002 /* 0xca */, 0x00000002 /* 0xcb */,
+0x00000002 /* 0xcc */, 0x00000002 /* 0xcd */, 0x00000002 /* 0xce */, 0x00000002 /* 0xcf */,
+0x00000002 /* 0xd0 */, 0x00000002 /* 0xd1 */, 0x00000002 /* 0xd2 */, 0x00000002 /* 0xd3 */,
+0x00000002 /* 0xd4 */, 0x00000002 /* 0xd5 */, 0x00000002 /* 0xd6 */, 0x00000002 /* 0xd7 */,
+0x00000002 /* 0xd8 */, 0x00000002 /* 0xd9 */, 0x00000002 /* 0xda */, 0x00000002 /* 0xdb */,
+0x00000002 /* 0xdc */, 0x00000002 /* 0xdd */, 0x00000002 /* 0xde */, 0x00000002 /* 0xdf */,
+0x00000002 /* 0xe0 */, 0x00000002 /* 0xe1 */, 0x00000002 /* 0xe2 */, 0x00000002 /* 0xe3 */,
+0x00000002 /* 0xe4 */, 0x00000002 /* 0xe5 */, 0x00000002 /* 0xe6 */, 0x00000002 /* 0xe7 */,
+0x00000002 /* 0xe8 */, 0x00000002 /* 0xe9 */, 0x00000002 /* 0xea */, 0x00000002 /* 0xeb */,
+0x00000002 /* 0xec */, 0x00000002 /* 0xed */, 0x00000002 /* 0xee */, 0x00000002 /* 0xef */,
+0x00000002 /* 0xf0 */, 0x00000002 /* 0xf1 */, 0x00000002 /* 0xf2 */, 0x00000002 /* 0xf3 */,
+0x00000002 /* 0xf4 */, 0x00000002 /* 0xf5 */, 0x00000002 /* 0xf6 */, 0x00000002 /* 0xf7 */,
+0x00000002 /* 0xf8 */, 0x00000002 /* 0xf9 */, 0x00000002 /* 0xfa */, 0x00000002 /* 0xfb */,
+0x00000002 /* 0xfc */, 0x00000002 /* 0xfd */, 0x00000002 /* 0xfe */, 0x00000002 /* 0xff */,
};
#else
diff --git a/plugins/MirOTR/ekhtml/include/hash.h b/plugins/MirOTR/ekhtml/include/hash.h
index ddb3869477..5b6333e264 100644
--- a/plugins/MirOTR/ekhtml/include/hash.h
+++ b/plugins/MirOTR/ekhtml/include/hash.h
@@ -14,8 +14,6 @@
* 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
@@ -40,8 +38,6 @@ typedef unsigned long hashcount_t;
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
@@ -233,6 +229,33 @@ extern void hnode_destroy(hnode_t *);
#define hnode_put(N, V) ((N)->hash_data = (V))
#endif
+/*
+ * Compute the number of bits in the hash_val_t type. We know that hash_val_t
+ * is an unsigned integral type. Thus the highest value it can hold is a
+ * Mersenne number (power of two, less one). We initialize a hash_val_t
+ * object with this value and then shift bits out one by one while counting.
+ * Notes:
+ * 1. HASH_VAL_T_MAX is a Mersenne number---one that is one less than a power
+ * of two. This means that its binary representation consists of all one
+ * bits, and hence ``val'' is initialized to all one bits.
+ * 2. While bits remain in val, we increment the bit count and shift it to the
+ * right, replacing the topmost bit by zero.
+ */
+
+static int compute_bits(void)
+{
+ hash_val_t val = HASH_VAL_T_MAX; /* 1 */
+ int bits = 0;
+
+ while (val) { /* 2 */
+ bits++;
+ val >>= 1;
+ }
+
+ return bits;
+}
+
+
#ifdef __cplusplus
}
#endif
diff --git a/plugins/MirOTR/ekhtml/src/ekhtml.c b/plugins/MirOTR/ekhtml/src/ekhtml.c
index f3697469f6..012a543b91 100644
--- a/plugins/MirOTR/ekhtml/src/ekhtml.c
+++ b/plugins/MirOTR/ekhtml/src/ekhtml.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -279,7 +279,7 @@ ekhtml_parser_startendcb_add(ekhtml_parser_t *parser, const char *tag,
}
- newtag = _strdup(tag);
+ newtag = strdup(tag);
for(cp=newtag; *cp; cp++)
*cp = toupper(*cp);
@@ -357,7 +357,7 @@ void ekhtml_parser_destroy(ekhtml_parser_t *ekparser){
ekhtml_string_t *key = (ekhtml_string_t *)hnode_getkey(hn);
ekhtml_tag_container *cont = hnode_get(hn);
- hash_scan_delete(ekparser->startendcb, hn);
+ hash_scan_delfree(ekparser->startendcb, hn);
free((char *)key->str);
free(key);
free(cont);
diff --git a/plugins/MirOTR/ekhtml/src/ekhtml_comment.c b/plugins/MirOTR/ekhtml/src/ekhtml_comment.c
index e37cc487b5..50ae59c1a9 100644
--- a/plugins/MirOTR/ekhtml/src/ekhtml_comment.c
+++ b/plugins/MirOTR/ekhtml/src/ekhtml_comment.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/plugins/MirOTR/ekhtml/src/ekhtml_data.c b/plugins/MirOTR/ekhtml/src/ekhtml_data.c
index 2b1d6c8a19..b5c85984c9 100644
--- a/plugins/MirOTR/ekhtml/src/ekhtml_data.c
+++ b/plugins/MirOTR/ekhtml/src/ekhtml_data.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/plugins/MirOTR/ekhtml/src/ekhtml_endtag.c b/plugins/MirOTR/ekhtml/src/ekhtml_endtag.c
index f7095dcdfe..55ac3ce8f3 100644
--- a/plugins/MirOTR/ekhtml/src/ekhtml_endtag.c
+++ b/plugins/MirOTR/ekhtml/src/ekhtml_endtag.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/plugins/MirOTR/ekhtml/src/ekhtml_mktables.c b/plugins/MirOTR/ekhtml/src/ekhtml_mktables.c
index 9a8dea2a03..412b313467 100644
--- a/plugins/MirOTR/ekhtml/src/ekhtml_mktables.c
+++ b/plugins/MirOTR/ekhtml/src/ekhtml_mktables.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,7 +69,8 @@ static EKHTML_CHARMAP_TYPE valid_attrvalue(char in){
in == '%' || in == '?' || in == '!' || in == '&' ||
in == '(' || in == ')' || in == '#' || in == '=' ||
in == '~' || in == ']' || in == '*' || in == '@' ||
- in == '$' || in == '_')
+ in == '$' || in == '_' || in == ',' || in == ';' ||
+ in == '|')
return 1;
return 0;
}
@@ -110,7 +111,7 @@ static void print_charmap(char *name, EKHTML_CHARMAP_TYPE (*cmap_func)(char)){
int ch;
char sbuf[256];
- sprintf_s(sbuf, 256, "0x%%0%dx ", EKHTML_CHARMAP_LEN * 2);
+ sprintf(sbuf, "0x%%0%dx ", EKHTML_CHARMAP_LEN * 2);
printf("#ifdef EKHTML_USE_TABLES\n");
printf("const %s %s[256] = {\n", EKHTML_CHARMAP_TYPE_S, name);
for(ch=0; ch < 256; ch++){
diff --git a/plugins/MirOTR/ekhtml/src/ekhtml_special.c b/plugins/MirOTR/ekhtml/src/ekhtml_special.c
index f43a62dac4..910919c3d8 100644
--- a/plugins/MirOTR/ekhtml/src/ekhtml_special.c
+++ b/plugins/MirOTR/ekhtml/src/ekhtml_special.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/plugins/MirOTR/ekhtml/src/ekhtml_starttag.c b/plugins/MirOTR/ekhtml/src/ekhtml_starttag.c
index cfd3ea4fd4..d0770851cf 100644
--- a/plugins/MirOTR/ekhtml/src/ekhtml_starttag.c
+++ b/plugins/MirOTR/ekhtml/src/ekhtml_starttag.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -237,6 +237,7 @@ char *ekhtml_parse_starttag(ekhtml_parser_t *parser, void **state_data,
attr->val.str = NULL;
attr->val.len = 0;
attr->isBoolean = 1;
+ attr->quoteChar = '\0';
attr->next = NULL;
startstate->mode = EKHTML_STMODE_GETNAME;
startstate->curattr = attr;
@@ -310,6 +311,7 @@ char *ekhtml_parse_starttag(ekhtml_parser_t *parser, void **state_data,
startstate->curattr->val.str++; /* Skip the quote */
startstate->mode = EKHTML_STMODE_GETVALUE;
startstate->quote = *workp;
+ startstate->curattr->quoteChar = *workp;
workp++;
} else if(!(EKCMap_CharMap[(unsigned char)*workp] &
EKHTML_CHAR_ATTRVALUE))
diff --git a/plugins/MirOTR/ekhtml/src/ekhtml_util.c b/plugins/MirOTR/ekhtml/src/ekhtml_util.c
index 0bc5c1dfac..d4b3883d50 100644
--- a/plugins/MirOTR/ekhtml/src/ekhtml_util.c
+++ b/plugins/MirOTR/ekhtml/src/ekhtml_util.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Jon Travis
+ * Copyright (c) 2002-2004, Jon Travis
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/plugins/MirOTR/ekhtml/src/hash.c b/plugins/MirOTR/ekhtml/src/hash.c
index 95651d4e76..dd469b273b 100644
--- a/plugins/MirOTR/ekhtml/src/hash.c
+++ b/plugins/MirOTR/ekhtml/src/hash.c
@@ -14,19 +14,20 @@
* into proprietary software; there is no requirement for such software to
* contain a copyright notice related to this source.
*
- * $Id: hash.c,v 1.1 2002/09/17 02:49:36 jick Exp $
- * $Name: EKHTML_RELEASE_0_3_2 $
+ * $Id$
+ * $Name$
*/
#include <stdlib.h>
#include <stddef.h>
#include <assert.h>
#include <string.h>
+#include "ekhtml_config.h"
#define HASH_IMPLEMENTATION
#include "hash.h"
#ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: hash.c,v 1.1 2002/09/17 02:49:36 jick Exp $";
+static const char rcsid[] = "$Id$";
#endif
#define INIT_BITS 6
@@ -60,33 +61,7 @@ static void hnode_free(hnode_t *node, void *context);
static hash_val_t hash_fun_default(const void *key);
static int hash_comp_default(const void *key1, const void *key2);
-int hash_val_t_bit;
-
-/*
- * Compute the number of bits in the hash_val_t type. We know that hash_val_t
- * is an unsigned integral type. Thus the highest value it can hold is a
- * Mersenne number (power of two, less one). We initialize a hash_val_t
- * object with this value and then shift bits out one by one while counting.
- * Notes:
- * 1. HASH_VAL_T_MAX is a Mersenne number---one that is one less than a power
- * of two. This means that its binary representation consists of all one
- * bits, and hence ``val'' is initialized to all one bits.
- * 2. While bits remain in val, we increment the bit count and shift it to the
- * right, replacing the topmost bit by zero.
- */
-
-static void compute_bits(void)
-{
- hash_val_t val = HASH_VAL_T_MAX; /* 1 */
- int bits = 0;
-
- while (val) { /* 2 */
- bits++;
- val >>= 1;
- }
-
- hash_val_t_bit = bits;
-}
+static const int hash_val_t_bit = EKHTML_HASH_BITS;
/*
* Verify whether the given argument is a power of two.