Ethereal-dev: Re: [Ethereal-dev] win32 compilation?

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Matthijs Melchior <mmelchior@xxxxxxxxx>
Date: Thu, 01 May 2003 20:06:29 +0200
Jason House wrote:

That seems to work much better, thanks for the quick fix. I still get the following set of warnings several times in a row:

../..\epan/except.h(98) : warning C4005: 'except_code' : macro
redefinition
       ../..\plugins/plugin_api.h(281) : see previous definition of
'except_code'

.....

I recognize this as a problem I have solved this morning, after it was
introduced by my patch from last evening....

The attached patch corrects this and some other surprizes with my
previous patch.

I have not used CVS, plain 0.9.11 with only my patches, and I hope
Guy is able to apply this anyway...., my plugin compiles without
error now on both Linux and Win32.

Thanks.

--
Regards,
----------------------------------------------------------------  -o)
Matthijs Melchior                                       Maarssen  /\\
mmelchior@xxxxxxxxx          +31 346 570616          Netherlands _\_v
---------------------------------------------------------------- ----

--- ethereal-0.9.11/epan/plugins.c-ORG	2003-05-01 09:54:46.000000000 +0200
+++ ethereal-0.9.11/epan/plugins.c	2003-05-01 13:08:48.000000000 +0200
@@ -510,7 +510,7 @@
 	patable.p_asn1_uint32_decode		= asn1_uint32_decode;
 	patable.p_asn1_bits_decode		= asn1_bits_decode;
 	patable.p_asn1_string_value_decode	= asn1_string_value_decode;
-	patable.p_asn1_string_decode		= asn1_octet_string_decode;
+	patable.p_asn1_string_decode		= asn1_string_decode;
 	patable.p_asn1_octet_string_decode	= asn1_octet_string_decode;
 	patable.p_asn1_subid_decode		= asn1_subid_decode;
 	patable.p_asn1_oid_value_decode		= asn1_oid_value_decode;
@@ -521,18 +521,15 @@
 	patable.p_except_init			= except_init;
 	patable.p_except_deinit			= except_deinit;
 	patable.p_except_rethrow		= except_rethrow;
-	patable.p_except_throw			= except_throw;
 	patable.p_except_throwd			= except_throwd;
 	patable.p_except_throwf			= except_throwf;
 	patable.p_except_unhandled_catcher	= except_unhandled_catcher;
-	patable.p_except_code			= except_code;
-	patable.p_except_group			= except_group;
-	patable.p_except_message	       	= except_message;
-	patable.p_except_data			= except_data;
 	patable.p_except_take_data	       	= except_take_data;
 	patable.p_except_set_allocator		= except_set_allocator;
 	patable.p_except_alloc			= except_alloc;
 	patable.p_except_free			= except_free;
+	patable.p_except_pop			= except_pop;
+	patable.p_except_setup_try		= except_setup_try;
 	
 #endif
 
--- ethereal-0.9.11/plugins/plugin_api.c-ORG	2003-05-01 09:54:46.000000000 +0200
+++ ethereal-0.9.11/plugins/plugin_api.c	2003-05-01 13:09:24.000000000 +0200
@@ -242,17 +242,14 @@
 	p_except_init				= pat->p_except_init;
 	p_except_deinit				= pat->p_except_deinit;
 	p_except_rethrow			= pat->p_except_rethrow;
-	p_except_throw				= pat->p_except_throw;
 	p_except_throwd				= pat->p_except_throwd;
 	p_except_throwf				= pat->p_except_throwf;
 	p_except_unhandled_catcher     		= pat->p_except_unhandled_catcher;
-	p_except_code				= pat->p_except_code;
-	p_except_group				= pat->p_except_group;
-	p_except_message			= pat->p_except_message;
-	p_except_data				= pat->p_except_data;
 	p_except_take_data			= pat->p_except_take_data;
 	p_except_set_allocator			= pat->p_except_set_allocator;
 	p_except_alloc				= pat->p_except_alloc;
 	p_except_free				= pat->p_except_free;
+	p_except_pop				= pat->p_except_pop;
+	p_except_setup_try			= pat->p_except_setup_try;
 
 }
--- ethereal-0.9.11/plugins/plugin_api.h-ORG	2003-05-01 09:54:46.000000000 +0200
+++ ethereal-0.9.11/plugins/plugin_api.h	2003-05-01 13:10:01.000000000 +0200
@@ -272,18 +272,15 @@
 #define except_init			(*p_except_init)
 #define except_deinit			(*p_except_deinit)
 #define except_rethrow			(*p_except_rethrow)
-#define except_throw			(*p_except_throw)
 #define except_throwd			(*p_except_throwd)
 #define except_throwf			(*p_except_throwf)
 #define except_unhandled_catcher       	(*p_except_unhandled_catcher)
-#define except_code			(*p_except_code)
-#define except_group			(*p_except_group)
-#define except_message			(*p_except_message)
-#define except_data			(*p_except_data)
 #define except_take_data	       	(*p_except_take_data)
 #define except_set_allocator	       	(*p_except_set_allocator)
 #define except_alloc			(*p_except_alloc)
 #define except_free			(*p_except_free)
+#define except_pop			(*p_except_pop)
+#define except_setup_try		(*p_except_setup_try)
 
 #endif
 
--- ethereal-0.9.11/plugins/plugin_api_decls.h-ORG	2003-05-01 09:54:46.000000000 +0200
+++ ethereal-0.9.11/plugins/plugin_api_decls.h	2003-05-01 13:10:27.000000000 +0200
@@ -281,15 +281,12 @@
 addr_except_init			p_except_init;
 addr_except_deinit			p_except_deinit;
 addr_except_rethrow			p_except_rethrow;
-addr_except_throw			p_except_throw;
 addr_except_throwd			p_except_throwd;
 addr_except_throwf			p_except_throwf;
 addr_except_unhandled_catcher		p_except_unhandled_catcher;
-addr_except_code			p_except_code;
-addr_except_group			p_except_group;
-addr_except_message			p_except_message;
-addr_except_data			p_except_data;
 addr_except_take_data			p_except_take_data;
 addr_except_set_allocator		p_except_set_allocator;
 addr_except_alloc			p_except_alloc;
 addr_except_free			p_except_free;
+addr_except_pop				p_except_pop;
+addr_except_setup_try			p_except_setup_try;
--- ethereal-0.9.11/plugins/plugin_table.h-ORG	2003-05-01 09:55:43.000000000 +0200
+++ ethereal-0.9.11/plugins/plugin_table.h	2003-05-01 13:10:50.000000000 +0200
@@ -314,21 +314,18 @@
 
 typedef char *(*addr_asn1_err_to_str)(int );
 
-typedef int (*except_init)(void);
-typedef void (*except_deinit)(void);
-typedef void (*except_rethrow)(except_t *);
-typedef void (*except_throw)(long, long, const char *);
-typedef void (*except_throwd)(long, long, const char *, void *);
-typedef void (*except_throwf)(long, long, const char *, ...);
-typedef void (*(*except_unhandled_catcher)(void (*)(except_t *)))(except_t *);
-typedef unsigned long (*except_code)(except_t *);
-typedef unsigned long (*except_group)(except_t *);
-typedef const char *(*except_message)(except_t *);
-typedef void *(*except_data)(except_t *);
-typedef void *(*except_take_data)(except_t *);
-typedef void (*except_set_allocator)(void *(*)(size_t), void (*)(void *));
-typedef void *(*except_alloc)(size_t);
-typedef void (*except_free)(void *);
+typedef int (*addr_except_init)(void);
+typedef void (*addr_except_deinit)(void);
+typedef void (*addr_except_rethrow)(except_t *);
+typedef void (*addr_except_throwd)(long, long, const char *, void *);
+typedef void (*addr_except_throwf)(long, long, const char *, ...);
+typedef void (*(*addr_except_unhandled_catcher)(void (*)(except_t *)))(except_t *);
+typedef void *(*addr_except_take_data)(except_t *);
+typedef void (*addr_except_set_allocator)(void *(*)(size_t), void (*)(void *));
+typedef void *(*addr_except_alloc)(size_t);
+typedef void (*addr_except_free)(void *);
+typedef struct except_stacknode *(*addr_except_pop)(void);
+typedef void (*addr_except_setup_try)(struct except_stacknode *, struct except_catch *, const except_id_t [], size_t);
 
 typedef struct  {