forked from osmocom/wireshark
From Matthijs Melchior:
move the initialization of the addresses in the plugin interface structure from run-time to link time; don't attempt to rebuild the X* files automatically, just warn that they're out of date and show the command used to rebuild them (not everybody has GCC installed, but it's required in order to rebuild them). Get rid of the checked-in Xepan_plugins.c, as it's no longer generated or used. Fix Makefile.am now that Xepan_plugins.c has been replaced by Xass-list. Give plugin_gen.py an RCS ID. svn path=/trunk/; revision=8186
This commit is contained in:
parent
8649fcf232
commit
e7c8d1f5a0
|
@ -1,7 +1,7 @@
|
|||
/* plugins.c
|
||||
* plugin routines
|
||||
*
|
||||
* $Id: plugins.c,v 1.74 2003/07/18 03:01:32 guy Exp $
|
||||
* $Id: plugins.c,v 1.75 2003/08/18 20:17:52 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -68,7 +68,10 @@
|
|||
#include "tap.h"
|
||||
#include "asn1.h"
|
||||
#include "plugins/plugin_table.h"
|
||||
static plugin_address_table_t patable;
|
||||
static plugin_address_table_t patable = {
|
||||
/* file generated by plugin_gen.py */
|
||||
#include "plugins/Xass-list"
|
||||
};
|
||||
#endif
|
||||
|
||||
/* linked list of all plugins */
|
||||
|
@ -314,12 +317,6 @@ init_plugins(const char *plugin_dir)
|
|||
|
||||
if (plugin_list == NULL) /* ensure init_plugins is only run once */
|
||||
{
|
||||
#ifdef PLUGINS_NEED_ADDRESS_TABLE
|
||||
/* Intialize address table */
|
||||
/* file generated by plugin_gen.py */
|
||||
#include "../plugins/Xepan_plugins.c"
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
/*
|
||||
* On Windows, the data file directory is the installation
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.am
|
||||
# Automake file for Ethereal
|
||||
#
|
||||
# $Id: Makefile.am,v 1.20 2003/08/05 05:03:29 guy Exp $
|
||||
# $Id: Makefile.am,v 1.21 2003/08/18 20:17:55 guy Exp $
|
||||
#
|
||||
# Ethereal - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -26,7 +26,7 @@ SUBDIRS = artnet docsis giop gryphon lwres megaco mgcp pcli rtnet
|
|||
plugindir = @plugindir@
|
||||
|
||||
ADDRESS_EXPORT_FILES = \
|
||||
Xepan_plugins.c \
|
||||
Xass-list \
|
||||
Xplugin_api.c \
|
||||
Xplugin_api.h \
|
||||
Xplugin_api_decls.h \
|
||||
|
@ -47,7 +47,7 @@ EXTRA_DIST = \
|
|||
plugin_gen.py \
|
||||
plugin_table.h \
|
||||
Makefile.nmake \
|
||||
Xepan_plugins.c \
|
||||
Xass-list \
|
||||
Xplugin_api.c \
|
||||
Xplugin_api.h \
|
||||
Xplugin_api_decls.h \
|
||||
|
@ -55,7 +55,6 @@ EXTRA_DIST = \
|
|||
|
||||
CLEANFILES = \
|
||||
Xass-list \
|
||||
Xepan_plugins.c \
|
||||
Xplugin_api.c \
|
||||
Xplugin_api.h \
|
||||
Xplugin_api_decls.h \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# $Id: Makefile.nmake,v 1.22 2003/08/05 05:03:29 guy Exp $
|
||||
# $Id: Makefile.nmake,v 1.23 2003/08/18 20:17:55 guy Exp $
|
||||
#
|
||||
|
||||
include ..\config.nmake
|
||||
|
@ -13,13 +13,16 @@ OBJECTS=plugin_api.obj
|
|||
|
||||
all: $(OBJECTS) artnet docsis giop gryphon lwres megaco mgcp pcli rtnet
|
||||
|
||||
Xplugin_api.c: xyzzy plugin_gen.py plugin_api.c
|
||||
$(PYTHON) plugin_gen.py xyzzy
|
||||
Xplugin_api.c: plugin_gen.py plugin_api_list.c
|
||||
@echo **** Plugin api may be out of date, please generate new files:
|
||||
@echo **** nmake -f Makefile.nmake xyzzy
|
||||
@echo.
|
||||
|
||||
plugin_api.obj: plugin_api.c Xplugin_api.c
|
||||
|
||||
xyzzy: plugin_api_list.c
|
||||
xyzzy: plugin_gen.py plugin_api_list.c
|
||||
gcc -aux-info xyzzy -DHAVE_CONFIG_H -I$(GLIB_DIR) -I.. -c plugin_api_list.c
|
||||
$(PYTHON) plugin_gen.py xyzzy
|
||||
|
||||
artnet::
|
||||
cd artnet
|
||||
|
|
|
@ -1,216 +0,0 @@
|
|||
patable.p_check_col = check_col;
|
||||
patable.p_col_clear = col_clear;
|
||||
patable.p_col_add_fstr = col_add_fstr;
|
||||
patable.p_col_append_fstr = col_append_fstr;
|
||||
patable.p_col_prepend_fstr = col_prepend_fstr;
|
||||
patable.p_col_add_str = col_add_str;
|
||||
patable.p_col_append_str = col_append_str;
|
||||
patable.p_col_set_str = col_set_str;
|
||||
patable.p_register_init_routine = register_init_routine;
|
||||
patable.p_register_postseq_cleanup_routine = register_postseq_cleanup_routine;
|
||||
patable.p_match_strval = match_strval;
|
||||
patable.p_val_to_str = val_to_str;
|
||||
patable.p_conversation_new = conversation_new;
|
||||
patable.p_find_conversation = find_conversation;
|
||||
patable.p_conversation_set_dissector = conversation_set_dissector;
|
||||
patable.p_proto_register_protocol = proto_register_protocol;
|
||||
patable.p_proto_register_field_array = proto_register_field_array;
|
||||
patable.p_proto_register_subtree_array = proto_register_subtree_array;
|
||||
patable.p_dissector_add = dissector_add;
|
||||
patable.p_dissector_delete = dissector_delete;
|
||||
patable.p_dissector_add_handle = dissector_add_handle;
|
||||
patable.p_heur_dissector_add = heur_dissector_add;
|
||||
patable.p_register_dissector = register_dissector;
|
||||
patable.p_find_dissector = find_dissector;
|
||||
patable.p_create_dissector_handle = create_dissector_handle;
|
||||
patable.p_call_dissector = call_dissector;
|
||||
patable.p_tcp_dissect_pdus = tcp_dissect_pdus;
|
||||
patable.p_proto_is_protocol_enabled = proto_is_protocol_enabled;
|
||||
patable.p_proto_item_get_len = proto_item_get_len;
|
||||
patable.p_proto_item_set_len = proto_item_set_len;
|
||||
patable.p_proto_item_set_text = proto_item_set_text;
|
||||
patable.p_proto_item_append_text = proto_item_append_text;
|
||||
patable.p_proto_item_add_subtree = proto_item_add_subtree;
|
||||
patable.p_proto_tree_add_item = proto_tree_add_item;
|
||||
patable.p_proto_tree_add_item_hidden = proto_tree_add_item_hidden;
|
||||
patable.p_proto_tree_add_protocol_format = proto_tree_add_protocol_format;
|
||||
patable.p_proto_tree_add_bytes = proto_tree_add_bytes;
|
||||
patable.p_proto_tree_add_bytes_hidden = proto_tree_add_bytes_hidden;
|
||||
patable.p_proto_tree_add_bytes_format = proto_tree_add_bytes_format;
|
||||
patable.p_proto_tree_add_time = proto_tree_add_time;
|
||||
patable.p_proto_tree_add_time_hidden = proto_tree_add_time_hidden;
|
||||
patable.p_proto_tree_add_time_format = proto_tree_add_time_format;
|
||||
patable.p_proto_tree_add_ipxnet = proto_tree_add_ipxnet;
|
||||
patable.p_proto_tree_add_ipxnet_hidden = proto_tree_add_ipxnet_hidden;
|
||||
patable.p_proto_tree_add_ipxnet_format = proto_tree_add_ipxnet_format;
|
||||
patable.p_proto_tree_add_ipv4 = proto_tree_add_ipv4;
|
||||
patable.p_proto_tree_add_ipv4_hidden = proto_tree_add_ipv4_hidden;
|
||||
patable.p_proto_tree_add_ipv4_format = proto_tree_add_ipv4_format;
|
||||
patable.p_proto_tree_add_ipv6 = proto_tree_add_ipv6;
|
||||
patable.p_proto_tree_add_ipv6_hidden = proto_tree_add_ipv6_hidden;
|
||||
patable.p_proto_tree_add_ipv6_format = proto_tree_add_ipv6_format;
|
||||
patable.p_proto_tree_add_ether = proto_tree_add_ether;
|
||||
patable.p_proto_tree_add_ether_hidden = proto_tree_add_ether_hidden;
|
||||
patable.p_proto_tree_add_ether_format = proto_tree_add_ether_format;
|
||||
patable.p_proto_tree_add_string = proto_tree_add_string;
|
||||
patable.p_proto_tree_add_string_hidden = proto_tree_add_string_hidden;
|
||||
patable.p_proto_tree_add_string_format = proto_tree_add_string_format;
|
||||
patable.p_proto_tree_add_boolean = proto_tree_add_boolean;
|
||||
patable.p_proto_tree_add_boolean_hidden = proto_tree_add_boolean_hidden;
|
||||
patable.p_proto_tree_add_boolean_format = proto_tree_add_boolean_format;
|
||||
patable.p_proto_tree_add_double = proto_tree_add_double;
|
||||
patable.p_proto_tree_add_double_hidden = proto_tree_add_double_hidden;
|
||||
patable.p_proto_tree_add_double_format = proto_tree_add_double_format;
|
||||
patable.p_proto_tree_add_uint = proto_tree_add_uint;
|
||||
patable.p_proto_tree_add_uint_hidden = proto_tree_add_uint_hidden;
|
||||
patable.p_proto_tree_add_uint_format = proto_tree_add_uint_format;
|
||||
patable.p_proto_tree_add_int = proto_tree_add_int;
|
||||
patable.p_proto_tree_add_int_hidden = proto_tree_add_int_hidden;
|
||||
patable.p_proto_tree_add_int_format = proto_tree_add_int_format;
|
||||
patable.p_proto_tree_add_text = proto_tree_add_text;
|
||||
patable.p_tvb_new_subset = tvb_new_subset;
|
||||
patable.p_tvb_set_free_cb = tvb_set_free_cb;
|
||||
patable.p_tvb_set_child_real_data_tvbuff = tvb_set_child_real_data_tvbuff;
|
||||
patable.p_tvb_new_real_data = tvb_new_real_data;
|
||||
patable.p_tvb_length = tvb_length;
|
||||
patable.p_tvb_length_remaining = tvb_length_remaining;
|
||||
patable.p_tvb_bytes_exist = tvb_bytes_exist;
|
||||
patable.p_tvb_offset_exists = tvb_offset_exists;
|
||||
patable.p_tvb_reported_length = tvb_reported_length;
|
||||
patable.p_tvb_reported_length_remaining = tvb_reported_length_remaining;
|
||||
patable.p_tvb_get_guint8 = tvb_get_guint8;
|
||||
patable.p_tvb_get_ntohs = tvb_get_ntohs;
|
||||
patable.p_tvb_get_ntoh24 = tvb_get_ntoh24;
|
||||
patable.p_tvb_get_ntohl = tvb_get_ntohl;
|
||||
patable.p_tvb_get_letohs = tvb_get_letohs;
|
||||
patable.p_tvb_get_letoh24 = tvb_get_letoh24;
|
||||
patable.p_tvb_get_letohl = tvb_get_letohl;
|
||||
patable.p_tvb_memcpy = tvb_memcpy;
|
||||
patable.p_tvb_memdup = tvb_memdup;
|
||||
patable.p_tvb_get_ptr = tvb_get_ptr;
|
||||
patable.p_tvb_find_guint8 = tvb_find_guint8;
|
||||
patable.p_tvb_pbrk_guint8 = tvb_pbrk_guint8;
|
||||
patable.p_tvb_strnlen = tvb_strnlen;
|
||||
patable.p_tvb_format_text = tvb_format_text;
|
||||
patable.p_tvb_get_nstringz = tvb_get_nstringz;
|
||||
patable.p_tvb_get_nstringz0 = tvb_get_nstringz0;
|
||||
patable.p_tvb_find_line_end = tvb_find_line_end;
|
||||
patable.p_tvb_find_line_end_unquoted = tvb_find_line_end_unquoted;
|
||||
patable.p_tvb_strneql = tvb_strneql;
|
||||
patable.p_tvb_strncaseeql = tvb_strncaseeql;
|
||||
patable.p_tvb_bytes_to_str = tvb_bytes_to_str;
|
||||
patable.p_prefs_register_protocol = prefs_register_protocol;
|
||||
patable.p_prefs_register_uint_preference = prefs_register_uint_preference;
|
||||
patable.p_prefs_register_bool_preference = prefs_register_bool_preference;
|
||||
patable.p_prefs_register_enum_preference = prefs_register_enum_preference;
|
||||
patable.p_prefs_register_string_preference = prefs_register_string_preference;
|
||||
patable.p_register_giop_user = register_giop_user;
|
||||
patable.p_is_big_endian = is_big_endian;
|
||||
patable.p_get_CDR_encap_info = get_CDR_encap_info;
|
||||
patable.p_get_CDR_any = get_CDR_any;
|
||||
patable.p_get_CDR_boolean = get_CDR_boolean;
|
||||
patable.p_get_CDR_char = get_CDR_char;
|
||||
patable.p_get_CDR_double = get_CDR_double;
|
||||
patable.p_get_CDR_enum = get_CDR_enum;
|
||||
patable.p_get_CDR_fixed = get_CDR_fixed;
|
||||
patable.p_get_CDR_float = get_CDR_float;
|
||||
patable.p_get_CDR_interface = get_CDR_interface;
|
||||
patable.p_get_CDR_long = get_CDR_long;
|
||||
patable.p_get_CDR_object = get_CDR_object;
|
||||
patable.p_get_CDR_octet = get_CDR_octet;
|
||||
patable.p_get_CDR_octet_seq = get_CDR_octet_seq;
|
||||
patable.p_get_CDR_short = get_CDR_short;
|
||||
patable.p_get_CDR_string = get_CDR_string;
|
||||
patable.p_get_CDR_typeCode = get_CDR_typeCode;
|
||||
patable.p_get_CDR_ulong = get_CDR_ulong;
|
||||
patable.p_get_CDR_ushort = get_CDR_ushort;
|
||||
patable.p_get_CDR_wchar = get_CDR_wchar;
|
||||
patable.p_get_CDR_wstring = get_CDR_wstring;
|
||||
patable.p_is_tpkt = is_tpkt;
|
||||
patable.p_dissect_tpkt_encap = dissect_tpkt_encap;
|
||||
patable.p_set_actual_length = set_actual_length;
|
||||
patable.p_decode_boolean_bitfield = decode_boolean_bitfield;
|
||||
patable.p_decode_numeric_bitfield = decode_numeric_bitfield;
|
||||
patable.p_decode_enumerated_bitfield = decode_enumerated_bitfield;
|
||||
patable.p_register_dissector_table = register_dissector_table;
|
||||
patable.p_except_throw = except_throw;
|
||||
patable.p_dissector_try_port = dissector_try_port;
|
||||
patable.p_conversation_add_proto_data = conversation_add_proto_data;
|
||||
patable.p_conversation_get_proto_data = conversation_get_proto_data;
|
||||
patable.p_conversation_delete_proto_data = conversation_delete_proto_data;
|
||||
patable.p_p_add_proto_data = p_add_proto_data;
|
||||
patable.p_p_get_proto_data = p_get_proto_data;
|
||||
patable.p_ip_to_str = ip_to_str;
|
||||
patable.p_ip6_to_str = ip6_to_str;
|
||||
patable.p_time_secs_to_str = time_secs_to_str;
|
||||
patable.p_time_msecs_to_str = time_msecs_to_str;
|
||||
patable.p_abs_time_to_str = abs_time_to_str;
|
||||
patable.p_proto_get_id_by_filter_name = proto_get_id_by_filter_name;
|
||||
patable.p_proto_get_protocol_name = proto_get_protocol_name;
|
||||
patable.p_proto_get_protocol_short_name = proto_get_protocol_short_name;
|
||||
patable.p_proto_get_protocol_filter_name = proto_get_protocol_filter_name;
|
||||
patable.p_prefs_register_obsolete_preference = prefs_register_obsolete_preference;
|
||||
patable.p_add_new_data_source = add_new_data_source;
|
||||
patable.p_fragment_table_init = fragment_table_init;
|
||||
patable.p_reassembled_table_init = reassembled_table_init;
|
||||
patable.p_fragment_add = fragment_add;
|
||||
patable.p_fragment_add_seq = fragment_add_seq;
|
||||
patable.p_fragment_add_seq_check = fragment_add_seq_check;
|
||||
patable.p_fragment_add_seq_next = fragment_add_seq_next;
|
||||
patable.p_fragment_get = fragment_get;
|
||||
patable.p_fragment_set_tot_len = fragment_set_tot_len;
|
||||
patable.p_fragment_get_tot_len = fragment_get_tot_len;
|
||||
patable.p_fragment_set_partial_reassembly = fragment_set_partial_reassembly;
|
||||
patable.p_fragment_delete = fragment_delete;
|
||||
patable.p_show_fragment_tree = show_fragment_tree;
|
||||
patable.p_show_fragment_seq_tree = show_fragment_seq_tree;
|
||||
patable.p_register_tap = register_tap;
|
||||
patable.p_tap_queue_packet = tap_queue_packet;
|
||||
patable.p_asn1_open = asn1_open;
|
||||
patable.p_asn1_close = asn1_close;
|
||||
patable.p_asn1_octet_decode = asn1_octet_decode;
|
||||
patable.p_asn1_tag_decode = asn1_tag_decode;
|
||||
patable.p_asn1_id_decode = asn1_id_decode;
|
||||
patable.p_asn1_length_decode = asn1_length_decode;
|
||||
patable.p_asn1_header_decode = asn1_header_decode;
|
||||
patable.p_asn1_eoc = asn1_eoc;
|
||||
patable.p_asn1_eoc_decode = asn1_eoc_decode;
|
||||
patable.p_asn1_null_decode = asn1_null_decode;
|
||||
patable.p_asn1_bool_decode = asn1_bool_decode;
|
||||
patable.p_asn1_int32_value_decode = asn1_int32_value_decode;
|
||||
patable.p_asn1_int32_decode = asn1_int32_decode;
|
||||
patable.p_asn1_uint32_value_decode = asn1_uint32_value_decode;
|
||||
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_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;
|
||||
patable.p_asn1_oid_decode = asn1_oid_decode;
|
||||
patable.p_asn1_sequence_decode = asn1_sequence_decode;
|
||||
patable.p_asn1_err_to_str = asn1_err_to_str;
|
||||
patable.p_proto_item_set_end = proto_item_set_end;
|
||||
patable.p_proto_tree_add_none_format = proto_tree_add_none_format;
|
||||
patable.p_except_init = except_init;
|
||||
patable.p_except_deinit = except_deinit;
|
||||
patable.p_except_rethrow = except_rethrow;
|
||||
patable.p_except_throwd = except_throwd;
|
||||
patable.p_except_throwf = except_throwf;
|
||||
patable.p_except_unhandled_catcher = except_unhandled_catcher;
|
||||
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;
|
||||
patable.p_col_set_fence = col_set_fence;
|
||||
patable.p_tvb_get_string = tvb_get_string;
|
||||
patable.p_tvb_get_stringz = tvb_get_stringz;
|
||||
patable.p_find_dissector_table = find_dissector_table;
|
||||
patable.p_dissector_get_port_handle = dissector_get_port_handle;
|
||||
patable.p_dissector_handle_get_short_name = dissector_handle_get_short_name;
|
||||
patable.p_dissector_handle_get_protocol_index = dissector_handle_get_protocol_index;
|
||||
patable.p_new_register_dissector = new_register_dissector;
|
||||
patable.p_new_create_dissector_handle = new_create_dissector_handle;
|
||||
patable.p_register_giop_user_module = register_giop_user_module;
|
|
@ -1,11 +1,13 @@
|
|||
#! /usr/bin/python
|
||||
# -*- python -*-
|
||||
#
|
||||
# $Id: plugin_gen.py,v 1.2 2003/08/18 20:17:55 guy Exp $
|
||||
#
|
||||
# mmelchior@xs4all.nl
|
||||
#
|
||||
# gererate files for the windows plugin interface from a file with declarations
|
||||
# generate files for the windows plugin interface from a file with declarations
|
||||
#
|
||||
# The input for this script is genereted by gcc using the following command:
|
||||
# The input for this script is generated by gcc using the following command:
|
||||
#
|
||||
# gcc -aux-info xyzzy $(pkg-config --cflags glib-2.0) -I ethereal-0.9.13 -c plugin_api_list.c
|
||||
#
|
||||
|
@ -22,23 +24,29 @@ from string import strip, replace
|
|||
pattFile = re.compile('.*plugin_api_list.* extern (.*)') # match filename and select declaration
|
||||
pattName = re.compile('\w* .*?(\w*) \(.*') # select function name
|
||||
|
||||
names = []
|
||||
count = 0
|
||||
if len(sys.argv) > 1:
|
||||
file = open(sys.argv[1], 'r') # input name on command line
|
||||
else:
|
||||
file = sys.stdin # read from a stream
|
||||
|
||||
f1 = open("Xepan_plugins.c", 'w')
|
||||
f2 = open("Xplugin_api.h", 'w')
|
||||
f3 = open("Xplugin_api.c", 'w')
|
||||
f4 = open("Xplugin_api_decls.h", 'w')
|
||||
f5 = open("Xplugin_table.h", 'w')
|
||||
f2 = open("Xplugin_api.h", 'w') # defines to hide indirection
|
||||
f3 = open("Xplugin_api.c", 'w') # statements to copy addresses from structure
|
||||
f4 = open("Xplugin_api_decls.h", 'w') # pointer definitions
|
||||
f5 = open("Xplugin_table.h", 'w') # type definitions
|
||||
f6 = open("Xass-list", 'w'); # exported structure initialization
|
||||
|
||||
comment = "/* This file is generated by %s, do not edit. */\n\n" % sys.argv[0]
|
||||
f2.write(comment)
|
||||
f3.write(comment)
|
||||
f4.write(comment)
|
||||
f5.write(comment)
|
||||
f6.write(comment)
|
||||
|
||||
pos = 0
|
||||
count = 0
|
||||
while 1:
|
||||
line = file.readline()
|
||||
if not line: break
|
||||
count += 1
|
||||
matchobj = pattFile.match(line)
|
||||
if matchobj:
|
||||
# print "+", count, " ", strip(line)
|
||||
|
@ -46,34 +54,30 @@ while 1:
|
|||
# print "= ", decl
|
||||
matchobj = pattName.match(decl)
|
||||
if matchobj:
|
||||
count += 1
|
||||
name = matchobj.group(1)
|
||||
# print " ", name
|
||||
f1.write("patable.p_%s = %s;\n" % (name, name))
|
||||
f2.write("#define %s (*p_%s)\n" % (name, name))
|
||||
f3.write("p_%s = pat->p_%s;\n" % (name, name))
|
||||
f4.write("addr_%s p_%s;\n" % (name, name))
|
||||
f5.write(replace("typedef %s\n" % decl, name, "(*addr_%s)" % name))
|
||||
names.append(name)
|
||||
f6.write(name)
|
||||
pos += len(name) + 2
|
||||
if pos > 60:
|
||||
pos = 0
|
||||
f6.write(",\n")
|
||||
else:
|
||||
f6.write(", ")
|
||||
else:
|
||||
print '**** function name not fount in "%s"' % decl
|
||||
|
||||
|
||||
f6 = open("Xass-list", 'w');
|
||||
pos = 0
|
||||
for i in names:
|
||||
f6.write(i)
|
||||
pos += len(i)
|
||||
if pos > 60:
|
||||
pos = 0
|
||||
f6.write(",\n")
|
||||
else:
|
||||
f6.write(", ")
|
||||
f6.write('\n')
|
||||
f6.close()
|
||||
|
||||
print "%d symbols exported" % count
|
||||
|
||||
file.close()
|
||||
f1.close()
|
||||
f2.close()
|
||||
f3.close()
|
||||
f4.close()
|
||||
f5.close()
|
||||
f6.close()
|
||||
|
|
Loading…
Reference in New Issue