[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kexi/3.1] src/migration/mdb/3rdparty/mdbtools: Compiles with VC++ as a .dll. Set up to use static g
From:       Jaroslaw Staniek <null () kde ! org>
Date:       2018-08-30 21:19:24
Message-ID: E1fvULc-0003tX-Qj () code ! kde ! org
[Download RAW message or body]

Git commit f800776b2dbb3d81b0203cc8c92c7bd9126d0e22 by Jaroslaw Staniek, on behalf of \
Jimmy Taker. Committed on 30/08/2018 at 20:52.
Pushed by staniek into branch '3.1'.

Compiles with VC++ as a .dll. Set up to use static glib, libiconv, libintl for ease \
of use.

FIXED-IN:3.1.1
mdbtools cb65d4f3ddd5d95261

M  +135  -117  src/migration/mdb/3rdparty/mdbtools/include/mdbtools.h
M  +4    -4    src/migration/mdb/3rdparty/mdbtools/libmdb/data.c
M  +8    -9    src/migration/mdb/3rdparty/mdbtools/libmdb/file.c
M  +5    -0    src/migration/mdb/3rdparty/mdbtools/libmdb/mem.c
M  +2    -2    src/migration/mdb/3rdparty/mdbtools/libmdb/money.c
M  +1    -1    src/migration/mdb/3rdparty/mdbtools/libmdb/props.c
M  +2    -2    src/migration/mdb/3rdparty/mdbtools/libmdb/table.c
M  +8    -9    src/migration/mdb/3rdparty/mdbtools/libmdb/write.c

https://commits.kde.org/kexi/f800776b2dbb3d81b0203cc8c92c7bd9126d0e22

diff --git a/src/migration/mdb/3rdparty/mdbtools/include/mdbtools.h \
b/src/migration/mdb/3rdparty/mdbtools/include/mdbtools.h index 2541406d6..1adbc8bc3 \
                100644
--- a/src/migration/mdb/3rdparty/mdbtools/include/mdbtools.h
+++ b/src/migration/mdb/3rdparty/mdbtools/include/mdbtools.h
@@ -27,7 +27,9 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#ifndef _WIN32
 #include <unistd.h>
+#endif
 #include <ctype.h>
 #include <string.h>
 #include <glib.h>
@@ -54,14 +56,21 @@
 #define MDB_NO_BACKENDS 1
 #define MDB_NO_STATS 1
 
-#ifdef _MSC_VER
-#define MDB_DEPRECATED(type, funcname) type funcname
+#ifdef _WIN32
+#if BUILDING_LIBMDB
+#define LIBMDB_DLL __declspec(dllexport)
+#else
+#define LIBMDB_DLL __declspec(dllimport)
+#endif
+#else
+#define LIBMDB_DLL
+#endif
+
+#ifndef _WIN32
+#define MDB_DEPRECATED(type, func) type __attribute__((deprecated)) func
 #else
-// Theses 2 atrbutes are not supported by all compilers:
-// M$VC see http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc
                
-#define MDB_DEPRECATED(type, funcname) type __attribute__((deprecated)) funcname
+#define MDB_DEPRECATED(type, func) __declspec(deprecated) type func
 #endif
-#define MDB_CONSTRUCTOR(funcname) void __attribute__((constructor)) funcname()
 
 enum {
 	MDB_PAGE_DB = 0,
@@ -268,6 +277,11 @@ typedef struct {
 } MdbFile;
 
 /* offset to row count on data pages...version dependant */
+#ifdef  _WIN64
+typedef __int64    ssize_t;
+#elif defined _WIN32
+typedef _W64 int   ssize_t;
+#endif
 typedef struct {
 	ssize_t		pg_size;
 	guint16		row_count_offset;
@@ -469,76 +483,80 @@ typedef struct {
 } MdbSarg;
 
 /* mem.c */
-extern MDB_DEPRECATED(void, mdb_init());
-extern MDB_DEPRECATED(void, mdb_exit());
+extern LIBMDB_DLL MDB_DEPRECATED(void, mdb_init());
+extern LIBMDB_DLL MDB_DEPRECATED(void, mdb_exit());
+/* glib - to allow static linking of glib in mdbtools */
+extern LIBMDB_DLL void	 mdb_g_free	          (gpointer	 mem);
+extern LIBMDB_DLL gpointer mdb_g_malloc         (gsize	 n_bytes);
+extern LIBMDB_DLL gpointer mdb_g_malloc0        (gsize	 n_bytes);
 
 /* file.c */
-extern ssize_t mdb_read_pg(MdbHandle *mdb, unsigned long pg);
-extern ssize_t mdb_read_alt_pg(MdbHandle *mdb, unsigned long pg);
-extern unsigned char mdb_get_byte(void *buf, int offset);
-extern int    mdb_get_int16(void *buf, int offset);
-extern long   mdb_get_int32(void *buf, int offset);
-extern long   mdb_get_int32_msb(void *buf, int offset);
-extern float  mdb_get_single(void *buf, int offset);
-extern double mdb_get_double(void *buf, int offset);
-extern unsigned char mdb_pg_get_byte(MdbHandle *mdb, int offset);
-extern int    mdb_pg_get_int16(MdbHandle *mdb, int offset);
-extern long   mdb_pg_get_int32(MdbHandle *mdb, int offset);
-extern float  mdb_pg_get_single(MdbHandle *mdb, int offset);
-extern double mdb_pg_get_double(MdbHandle *mdb, int offset);
-extern void mdb_set_encoding(MdbHandle *mdb, const char *encoding_name);
-extern MdbHandle *mdb_open(const char *filename, MdbFileFlags flags);
-extern void mdb_close(MdbHandle *mdb);
-extern MdbHandle *mdb_clone_handle(MdbHandle *mdb);
-extern void mdb_swap_pgbuf(MdbHandle *mdb);
+extern LIBMDB_DLL ssize_t mdb_read_pg(MdbHandle *mdb, unsigned long pg);
+extern LIBMDB_DLL ssize_t mdb_read_alt_pg(MdbHandle *mdb, unsigned long pg);
+extern LIBMDB_DLL unsigned char mdb_get_byte(void *buf, int offset);
+extern LIBMDB_DLL int    mdb_get_int16(unsigned char *buf, int offset);
+extern LIBMDB_DLL long   mdb_get_int32(unsigned char *buf, int offset);
+extern LIBMDB_DLL long   mdb_get_int32_msb(unsigned char *buf, int offset);
+extern LIBMDB_DLL float  mdb_get_single(unsigned char *buf, int offset);
+extern LIBMDB_DLL double mdb_get_double(unsigned char *buf, int offset);
+extern LIBMDB_DLL unsigned char mdb_pg_get_byte(MdbHandle *mdb, int offset);
+extern LIBMDB_DLL int    mdb_pg_get_int16(MdbHandle *mdb, int offset);
+extern LIBMDB_DLL long   mdb_pg_get_int32(MdbHandle *mdb, int offset);
+extern LIBMDB_DLL float  mdb_pg_get_single(MdbHandle *mdb, int offset);
+extern LIBMDB_DLL double mdb_pg_get_double(MdbHandle *mdb, int offset);
+extern LIBMDB_DLL void mdb_set_encoding(MdbHandle *mdb, const char *encoding_name);
+extern LIBMDB_DLL MdbHandle *mdb_open(const char *filename, MdbFileFlags flags);
+extern LIBMDB_DLL void mdb_close(MdbHandle *mdb);
+extern LIBMDB_DLL MdbHandle *mdb_clone_handle(MdbHandle *mdb);
+extern LIBMDB_DLL void mdb_swap_pgbuf(MdbHandle *mdb);
 
 /* catalog.c */
-extern void mdb_free_catalog(MdbHandle *mdb);
-extern GPtrArray *mdb_read_catalog(MdbHandle *mdb, int obj_type);
+extern LIBMDB_DLL void mdb_free_catalog(MdbHandle *mdb);
+extern LIBMDB_DLL GPtrArray *mdb_read_catalog(MdbHandle *mdb, int obj_type);
 MdbCatalogEntry *mdb_get_catalogentry_by_name(MdbHandle *mdb, const gchar* name);
-extern void mdb_dump_catalog(MdbHandle *mdb, int obj_type);
-extern const char *mdb_get_objtype_string(int obj_type);
+extern LIBMDB_DLL void mdb_dump_catalog(MdbHandle *mdb, int obj_type);
+extern LIBMDB_DLL const char *mdb_get_objtype_string(int obj_type);
 
 /* table.c */
-extern MdbTableDef *mdb_alloc_tabledef(MdbCatalogEntry *entry);
-extern void mdb_free_tabledef(MdbTableDef *table);
-extern MdbTableDef *mdb_read_table(MdbCatalogEntry *entry);
-extern MdbTableDef *mdb_read_table_by_name(MdbHandle *mdb, gchar *table_name, int \
                obj_type);
-extern void mdb_append_column(GPtrArray *columns, MdbColumn *in_col);
-extern void mdb_free_columns(GPtrArray *columns);
-extern GPtrArray *mdb_read_columns(MdbTableDef *table);
-extern void mdb_table_dump(MdbCatalogEntry *entry);
-extern guint8 read_pg_if_8(MdbHandle *mdb, int *cur_pos);
-extern guint16 read_pg_if_16(MdbHandle *mdb, int *cur_pos);
-extern guint32 read_pg_if_32(MdbHandle *mdb, int *cur_pos);
-extern void *read_pg_if_n(MdbHandle *mdb, void *buf, int *cur_pos, size_t len);
-extern int mdb_is_user_table(MdbCatalogEntry *entry);
-extern int mdb_is_system_table(MdbCatalogEntry *entry);
-extern const char *mdb_table_get_prop(const MdbTableDef *table, const gchar *key);
-extern const char *mdb_col_get_prop(const MdbColumn *col, const gchar *key);
+extern LIBMDB_DLL MdbTableDef *mdb_alloc_tabledef(MdbCatalogEntry *entry);
+extern LIBMDB_DLL void mdb_free_tabledef(MdbTableDef *table);
+extern LIBMDB_DLL MdbTableDef *mdb_read_table(MdbCatalogEntry *entry);
+extern LIBMDB_DLL MdbTableDef *mdb_read_table_by_name(MdbHandle *mdb, gchar \
*table_name, int obj_type); +extern LIBMDB_DLL void mdb_append_column(GPtrArray \
*columns, MdbColumn *in_col); +extern LIBMDB_DLL void mdb_free_columns(GPtrArray \
*columns); +extern LIBMDB_DLL GPtrArray *mdb_read_columns(MdbTableDef *table);
+extern LIBMDB_DLL void mdb_table_dump(MdbCatalogEntry *entry);
+extern LIBMDB_DLL guint8 read_pg_if_8(MdbHandle *mdb, int *cur_pos);
+extern LIBMDB_DLL guint16 read_pg_if_16(MdbHandle *mdb, int *cur_pos);
+extern LIBMDB_DLL guint32 read_pg_if_32(MdbHandle *mdb, int *cur_pos);
+extern LIBMDB_DLL void *read_pg_if_n(MdbHandle *mdb, unsigned char *buf, int \
*cur_pos, size_t len); +extern LIBMDB_DLL int mdb_is_user_table(MdbCatalogEntry \
*entry); +extern LIBMDB_DLL int mdb_is_system_table(MdbCatalogEntry *entry);
+extern LIBMDB_DLL const char *mdb_table_get_prop(const MdbTableDef *table, const \
gchar *key); +extern LIBMDB_DLL const char *mdb_col_get_prop(const MdbColumn *col, \
const gchar *key);  
 /* data.c */
-extern int mdb_bind_column_by_name(MdbTableDef *table, const gchar *col_name, void \
                *bind_ptr, int *len_ptr);
-extern void mdb_data_dump(MdbTableDef *table);
-extern void mdb_date_to_tm(double td, struct tm *t);
-extern void mdb_bind_column(MdbTableDef *table, int col_num, void *bind_ptr, int \
                *len_ptr);
-extern int mdb_rewind_table(MdbTableDef *table);
-extern int mdb_fetch_row(MdbTableDef *table);
-extern int mdb_is_fixed_col(MdbColumn *col);
-extern char *mdb_col_to_string(MdbHandle *mdb, void *buf, int start, int datatype, \
                int size);
-extern int mdb_find_pg_row(MdbHandle *mdb, int pg_row, void **buf, int *off, size_t \
                *len);
-extern int mdb_find_row(MdbHandle *mdb, int row, int *start, size_t *len);
-extern int mdb_find_end_of_row(MdbHandle *mdb, int row);
-extern int mdb_col_fixed_size(MdbColumn *col);
-extern int mdb_col_disp_size(MdbColumn *col);
-extern size_t mdb_ole_read_next(MdbHandle *mdb, MdbColumn *col, void *ole_ptr);
-extern size_t mdb_ole_read(MdbHandle *mdb, MdbColumn *col, void *ole_ptr, int \
                chunk_size);
-extern void* mdb_ole_read_full(MdbHandle *mdb, MdbColumn *col, size_t *size);
-extern void mdb_set_date_fmt(const char *);
-extern int mdb_read_row(MdbTableDef *table, unsigned int row);
+extern LIBMDB_DLL int mdb_bind_column_by_name(MdbTableDef *table, const gchar \
*col_name, void *bind_ptr, int *len_ptr); +extern LIBMDB_DLL void \
mdb_data_dump(MdbTableDef *table); +extern LIBMDB_DLL void mdb_date_to_tm(double td, \
struct tm *t); +extern LIBMDB_DLL void mdb_bind_column(MdbTableDef *table, int \
col_num, void *bind_ptr, int *len_ptr); +extern LIBMDB_DLL int \
mdb_rewind_table(MdbTableDef *table); +extern LIBMDB_DLL int \
mdb_fetch_row(MdbTableDef *table); +extern LIBMDB_DLL int mdb_is_fixed_col(MdbColumn \
*col); +extern LIBMDB_DLL char *mdb_col_to_string(MdbHandle *mdb, char *buf, int \
start, int datatype, int size); +extern LIBMDB_DLL int mdb_find_pg_row(MdbHandle \
*mdb, int pg_row, void **buf, int *off, size_t *len); +extern LIBMDB_DLL int \
mdb_find_row(MdbHandle *mdb, int row, int *start, size_t *len); +extern LIBMDB_DLL \
int mdb_find_end_of_row(MdbHandle *mdb, int row); +extern LIBMDB_DLL int \
mdb_col_fixed_size(MdbColumn *col); +extern LIBMDB_DLL int \
mdb_col_disp_size(MdbColumn *col); +extern LIBMDB_DLL size_t \
mdb_ole_read_next(MdbHandle *mdb, MdbColumn *col, void *ole_ptr); +extern LIBMDB_DLL \
size_t mdb_ole_read(MdbHandle *mdb, MdbColumn *col, void *ole_ptr, int chunk_size); \
+extern LIBMDB_DLL void* mdb_ole_read_full(MdbHandle *mdb, MdbColumn *col, size_t \
*size); +extern LIBMDB_DLL void mdb_set_date_fmt(const char *);
+extern LIBMDB_DLL int mdb_read_row(MdbTableDef *table, unsigned int row);
 
 /* dump.c */
-extern void mdb_buffer_dump(const void *buf, int start, size_t len);
+extern LIBMDB_DLL void mdb_buffer_dump(const void *buf, int start, size_t len);
 
 #if !MDB_NO_BACKENDS
 /* backend.c */
@@ -555,82 +573,82 @@ extern void mdb_print_schema(MdbHandle *mdb, FILE *outfile, \
char *tabname, char  #endif
 
 /* sargs.c */
-extern int mdb_test_sargs(MdbTableDef *table, MdbField *fields, int num_fields);
-extern int mdb_test_sarg(MdbHandle *mdb, MdbColumn *col, MdbSargNode *node, MdbField \
                *field);
-extern void mdb_sql_walk_tree(MdbSargNode *node, MdbSargTreeFunc func, gpointer \
                data);
-extern int mdb_find_indexable_sargs(MdbSargNode *node, gpointer data);
-extern int mdb_add_sarg_by_name(MdbTableDef *table, char *colname, MdbSarg \
                *in_sarg);
-extern int mdb_test_string(MdbSargNode *node, char *s);
-extern int mdb_test_int(MdbSargNode *node, gint32 i);
-extern int mdb_add_sarg(MdbColumn *col, MdbSarg *in_sarg);
+extern LIBMDB_DLL int mdb_test_sargs(MdbTableDef *table, MdbField *fields, int \
num_fields); +extern LIBMDB_DLL int mdb_test_sarg(MdbHandle *mdb, MdbColumn *col, \
MdbSargNode *node, MdbField *field); +extern LIBMDB_DLL void \
mdb_sql_walk_tree(MdbSargNode *node, MdbSargTreeFunc func, gpointer data); +extern \
LIBMDB_DLL int mdb_find_indexable_sargs(MdbSargNode *node, gpointer data); +extern \
LIBMDB_DLL int mdb_add_sarg_by_name(MdbTableDef *table, char *colname, MdbSarg \
*in_sarg); +extern LIBMDB_DLL int mdb_test_string(MdbSargNode *node, char *s);
+extern LIBMDB_DLL int mdb_test_int(MdbSargNode *node, gint32 i);
+extern LIBMDB_DLL int mdb_add_sarg(MdbColumn *col, MdbSarg *in_sarg);
 
 
 
 /* index.c */
-extern GPtrArray *mdb_read_indices(MdbTableDef *table);
-extern void mdb_index_dump(MdbTableDef *table, MdbIndex *idx);
-extern void mdb_index_scan_free(MdbTableDef *table);
-extern int mdb_index_find_next_on_page(MdbHandle *mdb, MdbIndexPage *ipg);
-extern int mdb_index_find_next(MdbHandle *mdb, MdbIndex *idx, MdbIndexChain *chain, \
                guint32 *pg, guint16 *row);
-extern void mdb_index_hash_text(char *text, char *hash);
-extern void mdb_index_scan_init(MdbHandle *mdb, MdbTableDef *table);
-extern int mdb_index_find_row(MdbHandle *mdb, MdbIndex *idx, MdbIndexChain *chain, \
                guint32 pg, guint16 row);
-extern void mdb_index_swap_n(unsigned char *src, int sz, unsigned char *dest);
-extern void mdb_free_indices(GPtrArray *indices);
+extern LIBMDB_DLL GPtrArray *mdb_read_indices(MdbTableDef *table);
+extern LIBMDB_DLL void mdb_index_dump(MdbTableDef *table, MdbIndex *idx);
+extern LIBMDB_DLL void mdb_index_scan_free(MdbTableDef *table);
+extern LIBMDB_DLL int mdb_index_find_next_on_page(MdbHandle *mdb, MdbIndexPage \
*ipg); +extern LIBMDB_DLL int mdb_index_find_next(MdbHandle *mdb, MdbIndex *idx, \
MdbIndexChain *chain, guint32 *pg, guint16 *row); +extern LIBMDB_DLL void \
mdb_index_hash_text(char *text, char *hash); +extern LIBMDB_DLL void \
mdb_index_scan_init(MdbHandle *mdb, MdbTableDef *table); +extern LIBMDB_DLL int \
mdb_index_find_row(MdbHandle *mdb, MdbIndex *idx, MdbIndexChain *chain, guint32 pg, \
guint16 row); +extern LIBMDB_DLL void mdb_index_swap_n(unsigned char *src, int sz, \
unsigned char *dest); +extern LIBMDB_DLL void mdb_free_indices(GPtrArray *indices);
 void mdb_index_page_reset(MdbIndexPage *ipg);
-extern int mdb_index_pack_bitmap(MdbHandle *mdb, MdbIndexPage *ipg);
+extern LIBMDB_DLL int mdb_index_pack_bitmap(MdbHandle *mdb, MdbIndexPage *ipg);
 
 #if !MDB_NO_STATS
 /* stats.c */
-extern void mdb_stats_on(MdbHandle *mdb);
-extern void mdb_stats_off(MdbHandle *mdb);
-extern void mdb_dump_stats(MdbHandle *mdb);
+extern LIBMDB_DLL void mdb_stats_on(MdbHandle *mdb);
+extern LIBMDB_DLL void mdb_stats_off(MdbHandle *mdb);
+extern LIBMDB_DLL void mdb_dump_stats(MdbHandle *mdb);
 #endif
 
 /* like.c */
-extern int mdb_like_cmp(char *s, char *r);
+extern LIBMDB_DLL int mdb_like_cmp(char *s, char *r);
 
 /* write.c */
-extern void mdb_put_int16(void *buf, guint32 offset, guint32 value);
-extern void mdb_put_int32(void *buf, guint32 offset, guint32 value);
-extern void mdb_put_int32_msb(void *buf, guint32 offset, guint32 value);
-extern int mdb_crack_row(MdbTableDef *table, int row_start, int row_end, MdbField \
                *fields);
-extern guint16 mdb_add_row_to_pg(MdbTableDef *table, unsigned char *row_buffer, int \
                new_row_size);
-extern int mdb_update_index(MdbTableDef *table, MdbIndex *idx, unsigned int \
                num_fields, MdbField *fields, guint32 pgnum, guint16 rownum);
-extern int mdb_insert_row(MdbTableDef *table, int num_fields, MdbField *fields);
-extern int mdb_pack_row(MdbTableDef *table, unsigned char *row_buffer, unsigned int \
                num_fields, MdbField *fields);
-extern int mdb_replace_row(MdbTableDef *table, int row, void *new_row, int \
                new_row_size);
-extern int mdb_pg_get_freespace(MdbHandle *mdb);
-extern int mdb_update_row(MdbTableDef *table);
-extern void *mdb_new_data_pg(MdbCatalogEntry *entry);
+extern LIBMDB_DLL void mdb_put_int16(unsigned char *buf, guint32 offset, guint32 \
value); +extern LIBMDB_DLL void mdb_put_int32(unsigned char *buf, guint32 offset, \
guint32 value); +extern LIBMDB_DLL void mdb_put_int32_msb(unsigned char *buf, guint32 \
offset, guint32 value); +extern LIBMDB_DLL int mdb_crack_row(MdbTableDef *table, int \
row_start, int row_end, MdbField *fields); +extern LIBMDB_DLL guint16 \
mdb_add_row_to_pg(MdbTableDef *table, unsigned char *row_buffer, int new_row_size); \
+extern LIBMDB_DLL int mdb_update_index(MdbTableDef *table, MdbIndex *idx, unsigned \
int num_fields, MdbField *fields, guint32 pgnum, guint16 rownum); +extern LIBMDB_DLL \
int mdb_insert_row(MdbTableDef *table, int num_fields, MdbField *fields); +extern \
LIBMDB_DLL int mdb_pack_row(MdbTableDef *table, unsigned char *row_buffer, unsigned \
int num_fields, MdbField *fields); +extern LIBMDB_DLL int mdb_replace_row(MdbTableDef \
*table, int row, void *new_row, int new_row_size); +extern LIBMDB_DLL int \
mdb_pg_get_freespace(MdbHandle *mdb); +extern LIBMDB_DLL int \
mdb_update_row(MdbTableDef *table); +extern LIBMDB_DLL void \
*mdb_new_data_pg(MdbCatalogEntry *entry);  
 /* map.c */
-extern guint32 mdb_map_find_next_freepage(MdbTableDef *table, int row_size);
-extern gint32 mdb_map_find_next(MdbHandle *mdb, unsigned char *map, unsigned int \
map_sz, guint32 start_pg); +extern LIBMDB_DLL guint32 \
mdb_map_find_next_freepage(MdbTableDef *table, int row_size); +extern LIBMDB_DLL \
gint32 mdb_map_find_next(MdbHandle *mdb, unsigned char *map, unsigned int map_sz, \
guint32 start_pg);  
 /* props.c */
-extern void mdb_free_props(MdbProperties *props);
-extern void mdb_dump_props(MdbProperties *props, FILE *outfile, int show_name);
-extern GArray* mdb_kkd_to_props(MdbHandle *mdb, void *kkd, size_t len);
+extern LIBMDB_DLL void mdb_free_props(MdbProperties *props);
+extern LIBMDB_DLL void mdb_dump_props(MdbProperties *props, FILE *outfile, int \
show_name); +extern LIBMDB_DLL GArray* mdb_kkd_to_props(MdbHandle *mdb, char *kkd, \
size_t len);  
 
 /* worktable.c */
-extern MdbTableDef *mdb_create_temp_table(MdbHandle *mdb, char *name);
-extern void mdb_temp_table_add_col(MdbTableDef *table, MdbColumn *col);
-extern void mdb_fill_temp_col(MdbColumn *tcol, char *col_name, int col_size, int \
                col_type, int is_fixed);
-extern void mdb_fill_temp_field(MdbField *field, void *value, int siz, int is_fixed, \
                int is_null, int start, int column);
-extern void mdb_temp_columns_end(MdbTableDef *table);
+extern LIBMDB_DLL MdbTableDef *mdb_create_temp_table(MdbHandle *mdb, char *name);
+extern LIBMDB_DLL void mdb_temp_table_add_col(MdbTableDef *table, MdbColumn *col);
+extern LIBMDB_DLL void mdb_fill_temp_col(MdbColumn *tcol, char *col_name, int \
col_size, int col_type, int is_fixed); +extern LIBMDB_DLL void \
mdb_fill_temp_field(MdbField *field, void *value, int siz, int is_fixed, int is_null, \
int start, int column); +extern LIBMDB_DLL void mdb_temp_columns_end(MdbTableDef \
*table);  
 /* options.c */
-extern int mdb_get_option(unsigned long optnum);
-extern void mdb_debug(int klass, const char *fmt, ...);
+extern LIBMDB_DLL int mdb_get_option(unsigned long optnum);
+extern LIBMDB_DLL void mdb_debug(int klass, const char *fmt, ...);
 
 /* iconv.c */
-extern int mdb_unicode2ascii(MdbHandle *mdb, char *src, size_t slen, char *dest, \
                size_t dlen);
-extern int mdb_ascii2unicode(MdbHandle *mdb, char *src, size_t slen, char *dest, \
                size_t dlen);
-extern void mdb_iconv_init(MdbHandle *mdb);
-extern void mdb_iconv_close(MdbHandle *mdb);
-extern const char* mdb_target_charset(MdbHandle *mdb);
+extern LIBMDB_DLL int mdb_unicode2ascii(MdbHandle *mdb, char *src, size_t slen, char \
*dest, size_t dlen); +extern LIBMDB_DLL int mdb_ascii2unicode(MdbHandle *mdb, char \
*src, size_t slen, char *dest, size_t dlen); +extern LIBMDB_DLL void \
mdb_iconv_init(MdbHandle *mdb); +extern LIBMDB_DLL void mdb_iconv_close(MdbHandle \
*mdb); +extern LIBMDB_DLL const char* mdb_target_charset(MdbHandle *mdb);
 
 #ifdef __cplusplus
   }
diff --git a/src/migration/mdb/3rdparty/mdbtools/libmdb/data.c \
b/src/migration/mdb/3rdparty/mdbtools/libmdb/data.c index 83066d7ae..4879dcd08 100644
--- a/src/migration/mdb/3rdparty/mdbtools/libmdb/data.c
+++ b/src/migration/mdb/3rdparty/mdbtools/libmdb/data.c
@@ -473,7 +473,7 @@ size_t
 mdb_ole_read_next(MdbHandle *mdb, MdbColumn *col, void *ole_ptr)
 {
 	guint32 ole_len;
-	void *buf;
+	unsigned char *buf;
 	int row_start;
 	size_t len;
 
@@ -506,7 +506,7 @@ size_t
 mdb_ole_read(MdbHandle *mdb, MdbColumn *col, void *ole_ptr, int chunk_size)
 {
 	guint32 ole_len;
-	void *buf;
+	unsigned char *buf;
 	int row_start;
 	size_t len;
 
@@ -672,7 +672,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int \
size)  guint32 memo_len;
 	gint32 row_start, pg_row;
 	size_t len;
-	void *buf, *pg_buf = mdb->pg_buf;
+	char *buf, *pg_buf = (char*) mdb->pg_buf;
 	char *text = (char *) g_malloc(MDB_BIND_SIZE);
 
 	if (size<MDB_MEMO_OVERHEAD) {
@@ -896,7 +896,7 @@ int floor_log10(double f, int is_single)
 }
 #endif
 
-char *mdb_col_to_string(MdbHandle *mdb, void *buf, int start, int datatype, int \
size) +char *mdb_col_to_string(MdbHandle *mdb, char *buf, int start, int datatype, \
int size)  {
 	char *text = NULL;
 	float tf;
diff --git a/src/migration/mdb/3rdparty/mdbtools/libmdb/file.c \
b/src/migration/mdb/3rdparty/mdbtools/libmdb/file.c index 4a4d13444..08210626d 100644
--- a/src/migration/mdb/3rdparty/mdbtools/libmdb/file.c
+++ b/src/migration/mdb/3rdparty/mdbtools/libmdb/file.c
@@ -16,7 +16,6 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include <inttypes.h>
 #include "mdbtools.h"
 
 #ifdef DMALLOC
@@ -414,7 +413,7 @@ static ssize_t _mdb_read_pg(MdbHandle *mdb, void *pg_buf, \
unsigned long pg)  return 0;
 	}
         if (status.st_size < offset) {
-                fprintf(stderr,"offset %jd is beyond EOF\n",(intmax_t)offset);
+                fprintf(stderr,"offset %jd is beyond EOF\n",offset);
                 return 0;
         }
 #if !MDB_NO_STATS
@@ -469,7 +468,7 @@ unsigned char mdb_pg_get_byte(MdbHandle *mdb, int offset)
 	return mdb->pg_buf[offset];
 }
 
-int mdb_get_int16(void *buf, int offset)
+int mdb_get_int16(unsigned char *buf, int offset)
 {
 	guint16 l;
 	memcpy(&l, (char*)buf + offset, 2);
@@ -482,16 +481,16 @@ int mdb_pg_get_int16(MdbHandle *mdb, int offset)
 	return mdb_get_int16(mdb->pg_buf, offset);
 }
 
-long mdb_get_int32_msb(void *buf, int offset)
+long mdb_get_int32_msb(unsigned char *buf, int offset)
 {
 	gint32 l;
-	memcpy(&l, (char*)buf + offset, 4);
+	memcpy(&l, buf + offset, 4);
 	return (long)GINT32_FROM_BE(l);
 }
-long mdb_get_int32(void *buf, int offset)
+long mdb_get_int32(unsigned char *buf, int offset)
 {
 	gint32 l;
-	memcpy(&l, (char*)buf + offset, 4);
+	memcpy(&l, buf + offset, 4);
 	return (long)GINT32_FROM_LE(l);
 }
 long mdb_pg_get_int32(MdbHandle *mdb, int offset)
@@ -501,7 +500,7 @@ long mdb_pg_get_int32(MdbHandle *mdb, int offset)
 	return mdb_get_int32(mdb->pg_buf, offset);
 }
 
-float mdb_get_single(void *buf, int offset)
+float mdb_get_single(unsigned char *buf, int offset)
 {
 	union {guint32 g; float f;} f;
 	memcpy(&f, (char*)buf + offset, 4);
@@ -515,7 +514,7 @@ float mdb_pg_get_single(MdbHandle *mdb, int offset)
        return mdb_get_single(mdb->pg_buf, offset);
 }
 
-double mdb_get_double(void *buf, int offset)
+double mdb_get_double(unsigned char *buf, int offset)
 {
 	union {guint64 g; double d;} d;
 	memcpy(&d, (char*)buf + offset, 8);
diff --git a/src/migration/mdb/3rdparty/mdbtools/libmdb/mem.c \
b/src/migration/mdb/3rdparty/mdbtools/libmdb/mem.c index 6f871cd14..67e29e427 100644
--- a/src/migration/mdb/3rdparty/mdbtools/libmdb/mem.c
+++ b/src/migration/mdb/3rdparty/mdbtools/libmdb/mem.c
@@ -29,3 +29,8 @@ mdb_exit())
 {
 	fprintf(stderr, "mdb_exit() is DEPRECATED and does nothing. Stop calling it.\n");
 }
+
+/* glib - to allow static linking of glib in mdbtools */
+void	 mdb_g_free	          (gpointer	 mem) { g_free(mem); }
+gpointer mdb_g_malloc         (gsize	 n_bytes) { return g_malloc(n_bytes); }
+gpointer mdb_g_malloc0        (gsize	 n_bytes) { return g_malloc0(n_bytes); }
diff --git a/src/migration/mdb/3rdparty/mdbtools/libmdb/money.c \
b/src/migration/mdb/3rdparty/mdbtools/libmdb/money.c index 5a75d97c7..11584d042 \
                100644
--- a/src/migration/mdb/3rdparty/mdbtools/libmdb/money.c
+++ b/src/migration/mdb/3rdparty/mdbtools/libmdb/money.c
@@ -47,7 +47,7 @@ char *mdb_money_to_string(MdbHandle *mdb, int start)
 	int neg=0;
        unsigned char multiplier[MAX_NUMERIC_PRECISION], temp[MAX_NUMERIC_PRECISION];
        unsigned char product[MAX_NUMERIC_PRECISION];
-       unsigned char bytes[num_bytes];
+       unsigned char bytes[8];
 
        memset(multiplier,0,MAX_NUMERIC_PRECISION);
        memset(product,0,MAX_NUMERIC_PRECISION);
@@ -86,7 +86,7 @@ char *mdb_numeric_to_string(MdbHandle *mdb, int start, int prec, \
int scale) {  int neg=0;
        unsigned char multiplier[MAX_NUMERIC_PRECISION], temp[MAX_NUMERIC_PRECISION];
        unsigned char product[MAX_NUMERIC_PRECISION];
-       unsigned char bytes[num_bytes];
+       unsigned char bytes[16];
 
        memset(multiplier,0,MAX_NUMERIC_PRECISION);
        memset(product,0,MAX_NUMERIC_PRECISION);
diff --git a/src/migration/mdb/3rdparty/mdbtools/libmdb/props.c \
b/src/migration/mdb/3rdparty/mdbtools/libmdb/props.c index 56b57c4ce..7889a7029 \
                100644
--- a/src/migration/mdb/3rdparty/mdbtools/libmdb/props.c
+++ b/src/migration/mdb/3rdparty/mdbtools/libmdb/props.c
@@ -162,7 +162,7 @@ mdb_dump_props(MdbProperties *props, FILE *outfile, int \
                show_name) {
  * and returns a GArray of MdbProps*
  */
 GArray*
-mdb_kkd_to_props(MdbHandle *mdb, void *buffer, size_t len) {
+mdb_kkd_to_props(MdbHandle *mdb, char *buffer, size_t len) {
 	guint32 record_len;
 	guint16 record_type;
 	size_t pos;
diff --git a/src/migration/mdb/3rdparty/mdbtools/libmdb/table.c \
b/src/migration/mdb/3rdparty/mdbtools/libmdb/table.c index 3fe6ec7e9..ad818f01d \
                100644
--- a/src/migration/mdb/3rdparty/mdbtools/libmdb/table.c
+++ b/src/migration/mdb/3rdparty/mdbtools/libmdb/table.c
@@ -76,7 +76,7 @@ MdbTableDef *mdb_read_table(MdbCatalogEntry *entry)
 	MdbHandle *mdb = entry->mdb;
 	MdbFormatConstants *fmt = mdb->fmt;
 	int row_start, pg_row;
-	void *buf, *pg_buf = mdb->pg_buf;
+	unsigned char *buf, *pg_buf = mdb->pg_buf;
 	guint i;
 
 	mdb_read_pg(mdb, entry->table_pg);
@@ -166,7 +166,7 @@ read_pg_if_8(MdbHandle *mdb, int *cur_pos)
  * are still advanced and the page cursor is still updated.
  */
 void *
-read_pg_if_n(MdbHandle *mdb, void *buf, int *cur_pos, size_t len)
+read_pg_if_n(MdbHandle *mdb, unsigned char *buf, int *cur_pos, size_t len)
 {
 	char* _buf = buf;
 	/* Advance to page which contains the first byte */
diff --git a/src/migration/mdb/3rdparty/mdbtools/libmdb/write.c \
b/src/migration/mdb/3rdparty/mdbtools/libmdb/write.c index 127519e5c..15f26e4b0 \
                100644
--- a/src/migration/mdb/3rdparty/mdbtools/libmdb/write.c
+++ b/src/migration/mdb/3rdparty/mdbtools/libmdb/write.c
@@ -18,7 +18,6 @@
 
 #include <time.h>
 #include <math.h>
-#include <inttypes.h>
 #include "mdbtools.h"
 
 #ifdef DMALLOC
@@ -30,7 +29,7 @@
 static int mdb_add_row_to_leaf_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage \
*ipg, MdbField *idx_fields, guint32 pgnum, guint16 rownum);  
 void
-mdb_put_int16(void *buf, guint32 offset, guint32 value)
+mdb_put_int16(unsigned char *buf, guint32 offset, guint32 value)
 {
 	value = GINT32_TO_LE(value);
 	memcpy((char*)buf + offset, &value, 2);
@@ -44,7 +43,7 @@ __attribute__((alias("mdb_put_int16")));
 #endif
 
 void
-mdb_put_int32(void *buf, guint32 offset, guint32 value)
+mdb_put_int32(unsigned char *buf, guint32 offset, guint32 value)
 {
 	value = GINT32_TO_LE(value);
 	memcpy((char*)buf + offset, &value, 4);
@@ -58,7 +57,7 @@ __attribute__((alias("mdb_put_int32")));
 #endif
 
 void
-mdb_put_int32_msb(void *buf, guint32 offset, guint32 value)
+mdb_put_int32_msb(unsigned char *buf, guint32 offset, guint32 value)
 {
 	value = GINT32_TO_BE(value);
 	memcpy((char*)buf + offset, &value, 4);
@@ -84,7 +83,7 @@ mdb_write_pg(MdbHandle *mdb, unsigned long pg)
 	}
 	/* is page beyond current size + 1 ? */
 	if ((size_t)status.st_size < (offset + mdb->fmt->pg_size)) {
-		fprintf(stderr,"offset %jd is beyond EOF\n",(intmax_t)offset);
+		fprintf(stderr,"offset %jd is beyond EOF\n",offset);
 		return 0;
 	}
 	if (lseek(mdb->f->fd, offset, SEEK_SET) == -1) {
@@ -178,7 +177,7 @@ mdb_crack_row(MdbTableDef *table, int row_start, int row_end, \
MdbField *fields)  MdbColumn *col;
 	MdbCatalogEntry *entry = table->entry;
 	MdbHandle *mdb = entry->mdb;
-	void *pg_buf = mdb->pg_buf;
+	unsigned char *pg_buf = mdb->pg_buf;
 	unsigned int row_var_cols=0, row_cols;
 	unsigned char *nullmask;
 	unsigned int bitmask_sz;
@@ -600,7 +599,7 @@ mdb_insert_row(MdbTableDef *table, int num_fields, MdbField \
*fields)  guint16
 mdb_add_row_to_pg(MdbTableDef *table, unsigned char *row_buffer, int new_row_size)
 {
-	void *new_pg;
+	unsigned char *new_pg;
 	int num_rows, i, pos, row_start;
 	size_t row_size;
 	MdbCatalogEntry *entry = table->entry;
@@ -731,7 +730,7 @@ MdbCatalogEntry *entry = table->entry;
 MdbHandle *mdb = entry->mdb;
 int pg_size = mdb->fmt->pg_size;
 int rco = mdb->fmt->row_count_offset;
-	void *new_pg;
+	unsigned char *new_pg;
 guint16 num_rows;
 	int row_start;
 	size_t row_size;
@@ -799,7 +798,7 @@ mdb_copy_index_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage \
*ipg)  MdbColumn *col;
 	guint32 pg_row;
 	guint16 row = 0;
-	void *new_pg;
+	unsigned char *new_pg;
 	unsigned char key_hash[256];
 	int keycol;
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic