diff --git a/include/mdbtools.h b/include/mdbtools.h index fdb5a08..43c2ecd 100644 --- a/include/mdbtools.h +++ b/include/mdbtools.h @@ -416,8 +416,8 @@ typedef struct { } MdbSarg; /* mem.c */ -extern void mdb_init(); -extern void mdb_exit(); +extern void mdb_init(); // DEPRECATED +extern void mdb_exit(); // DEPRECATED /* file.c */ extern ssize_t mdb_read_pg(MdbHandle *mdb, unsigned long pg); diff --git a/src/gmdb/main.c b/src/gmdb/main.c index b16de52..c4fb495 100644 --- a/src/gmdb/main.c +++ b/src/gmdb/main.c @@ -246,8 +246,6 @@ gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); /* initialize the SQL engine */ sql = mdb_sql_init(); #endif - /* initialize MDB Tools library */ - mdb_init(); #ifdef HAVE_GNOME /* Initialize GNOME */ @@ -320,7 +318,6 @@ gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); /* free MDB Tools library */ mdb_sql_exit(sql); #endif - mdb_exit(); return 0; } diff --git a/src/gmdb2/main2.c b/src/gmdb2/main2.c index 14a1e46..415b507 100644 --- a/src/gmdb2/main2.c +++ b/src/gmdb2/main2.c @@ -158,8 +158,6 @@ GtkWidget *gmdb; /* initialize the SQL engine */ sql = mdb_sql_init(); #endif - /* initialize MDB Tools library */ - mdb_init(); /* Initialize GNOME */ /* Initialize gnome program */ @@ -196,7 +194,6 @@ GtkWidget *gmdb; /* free MDB Tools library */ mdb_sql_exit(sql); #endif - mdb_exit(); return 0; } diff --git a/src/libmdb/mem.c b/src/libmdb/mem.c index 8ee289d..183f9a6 100644 --- a/src/libmdb/mem.c +++ b/src/libmdb/mem.c @@ -16,37 +16,23 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifdef JAVA -#include "javadefines.h" -#else #include "mdbtools.h" -#include -#ifdef DMALLOC -#include "dmalloc.h" -#endif -#endif /* JAVA */ -/** - * mdb_init: - * - * Initializes the LibMDB library. This function should be called exactly once - * by calling program and prior to any other function. - * - **/ -/* METHOD */ void mdb_init() +void __attribute__ ((constructor)) _mdb_init() { mdb_init_backends(); } - -/** - * mdb_exit: - * - * Cleans up the LibMDB library. This function should be called exactly once - * by the calling program prior to exiting (or prior to final use of LibMDB - * functions). - * - **/ -/* METHOD */ void mdb_exit() +void __attribute__ ((destructor)) _mdb_exit() { mdb_remove_backends(); } + +void mdb_init() +{ + fprintf(stderr, "mdb_init() is DEPRECATED and does nothing. Stop calling it.\n"); +} + +void mdb_exit() +{ + fprintf(stderr, "mdb_exit() is DEPRECATED and does nothing. Stop calling it.\n"); +} diff --git a/src/sql/mdbsql.c b/src/sql/mdbsql.c index 8c90dbc..e01e567 100644 --- a/src/sql/mdbsql.c +++ b/src/sql/mdbsql.c @@ -74,7 +74,6 @@ MdbSQL *mdb_sql_init() { MdbSQL *sql; - mdb_init(); sql = (MdbSQL *) g_malloc0(sizeof(MdbSQL)); sql->columns = g_ptr_array_new(); sql->tables = g_ptr_array_new(); diff --git a/src/util/mdb-array.c b/src/util/mdb-array.c index 1adff9e..862354e 100644 --- a/src/util/mdb-array.c +++ b/src/util/mdb-array.c @@ -45,7 +45,6 @@ int started; exit (1); } - mdb_init(); mdb = mdb_open (argv [1], MDB_NOFLAGS); table = mdb_read_table_by_name (mdb, argv[2], MDB_TABLE); @@ -117,12 +116,11 @@ int started; } mdb_close (mdb); - mdb_exit(); fprintf (stdout, "const int %s_array_length = %d;\n", argv [2], count); - exit(0); + return 0; } diff --git a/src/util/mdb-check.c b/src/util/mdb-check.c index 3be5896..0ffbd98 100644 --- a/src/util/mdb-check.c +++ b/src/util/mdb-check.c @@ -59,8 +59,6 @@ int opt; } } - mdb_init(); - /* open the database */ mdb = mdb_open (argv[optind], MDB_NOFLAGS); @@ -101,8 +99,7 @@ int opt; g_free(tabname); mdb_close (mdb); - mdb_exit(); - exit(0); + return 0; } diff --git a/src/util/mdb-export.c b/src/util/mdb-export.c index e06f40b..6045ac3 100644 --- a/src/util/mdb-export.c +++ b/src/util/mdb-export.c @@ -155,14 +155,11 @@ main(int argc, char **argv) exit(1); } - mdb_init(); - if (!(mdb = mdb_open(argv[optind], MDB_NOFLAGS))) { g_free (delimiter); g_free (row_delimiter); g_free (quote_char); if (escape_char) g_free (escape_char); - mdb_exit(); exit(1); } @@ -170,7 +167,6 @@ main(int argc, char **argv) if (!mdb_set_default_backend(mdb, insert_dialect)) { fprintf(stderr, "Invalid backend type\n"); if (escape_char) g_free (escape_char); - mdb_exit(); exit(1); } @@ -182,7 +178,6 @@ main(int argc, char **argv) g_free (quote_char); if (escape_char) g_free (escape_char); mdb_close(mdb); - mdb_exit(); exit(1); } @@ -255,9 +250,8 @@ main(int argc, char **argv) g_free (row_delimiter); g_free (quote_char); if (escape_char) g_free (escape_char); + mdb_close(mdb); - mdb_exit(); - return 0; } diff --git a/src/util/mdb-header.c b/src/util/mdb-header.c index 2cda338..ab776f0 100644 --- a/src/util/mdb-header.c +++ b/src/util/mdb-header.c @@ -50,13 +50,10 @@ FILE *cfile; exit (1); } - mdb_init(); - /* open the database */ mdb = mdb_open (argv[1], MDB_NOFLAGS); if (!mdb) { - mdb_exit(); exit(1); } @@ -148,7 +145,6 @@ FILE *cfile; fclose (cfile); mdb_close (mdb); - mdb_exit(); if (unsupported) fputs("ERROR: unsupported type.\n", stderr); diff --git a/src/util/mdb-import.c b/src/util/mdb-import.c index 26e0b8b..7af0027 100644 --- a/src/util/mdb-import.c +++ b/src/util/mdb-import.c @@ -185,8 +185,6 @@ main(int argc, char **argv) exit(1); } - mdb_init(); - if (!(mdb = mdb_open(argv[optind], MDB_WRITABLE))) { exit(1); } @@ -230,8 +228,6 @@ main(int argc, char **argv) mdb_free_tabledef(table); fclose(in); mdb_close(mdb); - mdb_exit(); - - exit(0); + return 0; } diff --git a/src/util/mdb-parsecsv.c b/src/util/mdb-parsecsv.c index f7978af..b98af91 100644 --- a/src/util/mdb-parsecsv.c +++ b/src/util/mdb-parsecsv.c @@ -164,6 +164,5 @@ main (int argc, char **argv) fprintf (stdout, "count = %d\n", count); - - exit(0); + return 0; } diff --git a/src/util/mdb-prop.c b/src/util/mdb-prop.c index 85b3c72..e9cfa06 100644 --- a/src/util/mdb-prop.c +++ b/src/util/mdb-prop.c @@ -41,18 +41,14 @@ main(int argc, char **argv) else propColName = argv[3]; - mdb_init(); - mdb = mdb_open(argv[1], MDB_NOFLAGS); if (!mdb) { - mdb_exit(); return 1; } table = mdb_read_table_by_name(mdb, "MSysObjects", MDB_ANY); if (!table) { mdb_close(mdb); - mdb_exit(); return 1; } mdb_read_columns(table); @@ -65,7 +61,6 @@ main(int argc, char **argv) g_free(buf); mdb_free_tabledef(table); mdb_close(mdb); - mdb_exit(); printf("Column %s not found in MSysObjects!\n", argv[3]); return 1; } @@ -91,8 +86,7 @@ main(int argc, char **argv) g_free(buf); mdb_free_tabledef(table); mdb_close(mdb); - mdb_exit(); - + return 0; } void dump_kkd(MdbHandle *mdb, void *kkd, size_t len) diff --git a/src/util/mdb-schema.c b/src/util/mdb-schema.c index b47b9db..46f6ff4 100644 --- a/src/util/mdb-schema.c +++ b/src/util/mdb-schema.c @@ -143,20 +143,16 @@ main (int argc, char **argv) } } - mdb_init(); - /* open the database */ mdb = mdb_open (argv[optind], MDB_NOFLAGS); if (!mdb) { fprintf(stderr, "Could not open file\n"); - mdb_exit(); exit(1); } if (argc - optind >= 2) { if (!mdb_set_default_backend(mdb, argv[optind + 1])) { fprintf(stderr, "Invalid backend type\n"); - mdb_exit(); exit(1); } } @@ -172,7 +168,6 @@ main (int argc, char **argv) g_free(namespace); g_free(tabname); mdb_close (mdb); - mdb_exit(); return 0; } diff --git a/src/util/mdb-sql.c b/src/util/mdb-sql.c index 1190624..40d2295 100644 --- a/src/util/mdb-sql.c +++ b/src/util/mdb-sql.c @@ -490,13 +490,13 @@ char *delimiter = NULL; } #endif - exit(0); + return 0; } #else int main(int argc, char **argv) { fprintf(stderr,"You must configure using --enable-sql to get SQL support\n"); - exit(-1); + return -1; } #endif diff --git a/src/util/mdb-tables.c b/src/util/mdb-tables.c index 0a63b14..4c96e7b 100644 --- a/src/util/mdb-tables.c +++ b/src/util/mdb-tables.c @@ -121,9 +121,6 @@ main (int argc, char **argv) } - /* initialize the library */ - mdb_init(); - /* open the database */ if (!(mdb = mdb_open (argv[optind], MDB_NOFLAGS))) { fprintf(stderr,"Couldn't open database.\n"); @@ -162,9 +159,8 @@ main (int argc, char **argv) fprintf (stdout, "\n"); mdb_close(mdb); - mdb_exit(); g_free(delimiter); - exit(0); + return 0; } diff --git a/src/util/mdb-ver.c b/src/util/mdb-ver.c index 1cd1ac8..6743e2b 100644 --- a/src/util/mdb-ver.c +++ b/src/util/mdb-ver.c @@ -59,11 +59,8 @@ main(int argc, char **argv) exit(1); } - mdb_init(); - if (!(mdb = mdb_open(argv[optind], MDB_NOFLAGS))) { fprintf(stderr,_("Error: unable to open file %s\n"),argv[optind]); - mdb_exit(); exit(1); } switch(mdb->f->jet_version) { @@ -85,8 +82,7 @@ main(int argc, char **argv) } mdb_close(mdb); - mdb_exit(); - exit(0); + return 0; } diff --git a/src/util/prcat.c b/src/util/prcat.c index 73ca06e..1cd979c 100644 --- a/src/util/prcat.c +++ b/src/util/prcat.c @@ -30,15 +30,12 @@ main(int argc, char **argv) exit(1); } - mdb_init(); - mdb = mdb_open(argv[1], MDB_NOFLAGS); mdb_dump_catalog(mdb,(argc > 2) ? atoi(argv[2]) : MDB_TABLE); mdb_close(mdb); - mdb_exit(); - exit(0); + return 0; } diff --git a/src/util/prdata.c b/src/util/prdata.c index 42866ad..900804e 100644 --- a/src/util/prdata.c +++ b/src/util/prdata.c @@ -29,7 +29,6 @@ main(int argc, char **argv) exit(1); } - mdb_init(); mdb = mdb_open(argv[1], MDB_NOFLAGS); table = mdb_read_table_by_name(mdb, argv[2], MDB_TABLE); @@ -40,8 +39,7 @@ main(int argc, char **argv) } mdb_close(mdb); - mdb_exit(); - exit(0); + return 0; } diff --git a/src/util/prdump.c b/src/util/prdump.c index 736024c..313bb7a 100644 --- a/src/util/prdump.c +++ b/src/util/prdump.c @@ -30,7 +30,6 @@ int page, start, stop; exit(1); } - mdb_init(); mdb = mdb_open(argv[1], MDB_NOFLAGS); mdb_read_catalog(mdb, MDB_TABLE); @@ -45,8 +44,7 @@ int page, start, stop; } mdb_close(mdb); - mdb_exit(); - exit(0); + return 0; } diff --git a/src/util/prfreemap.c b/src/util/prfreemap.c index f6ca426..2860d2c 100644 --- a/src/util/prfreemap.c +++ b/src/util/prfreemap.c @@ -33,7 +33,6 @@ unsigned char *map_buf; exit(1); } - mdb_init(); mdb = mdb_open(argv[1], MDB_NOFLAGS); mdb_read_pg (mdb, 1); @@ -57,8 +56,6 @@ unsigned char *map_buf; if (coln!=1) printf("\n"); mdb_close(mdb); - mdb_exit(); - - exit(0); + return 0; } diff --git a/src/util/prindex.c b/src/util/prindex.c index 37459a8..72104ba 100644 --- a/src/util/prindex.c +++ b/src/util/prindex.c @@ -34,7 +34,6 @@ main(int argc, char **argv) exit(1); } - mdb_init(); if (!(mdb = mdb_open(argv[1], MDB_NOFLAGS))) { fprintf(stderr,"Unable to open database.\n"); exit(1); @@ -57,9 +56,7 @@ main(int argc, char **argv) } mdb_close(mdb); - mdb_exit(); - - exit(0); + return 0; } char * page_name(int page_type) diff --git a/src/util/prkkd.c b/src/util/prkkd.c index 583ad57..3b06cfe 100644 --- a/src/util/prkkd.c +++ b/src/util/prkkd.c @@ -31,7 +31,6 @@ main(int argc, char **argv) exit(1); } - mdb_init(); mdb = mdb_open(argv[1], MDB_NOFLAGS); table = mdb_read_table_by_name(mdb, argv[2], MDB_TABLE); @@ -43,7 +42,6 @@ main(int argc, char **argv) mdb_kkd_dump(table->entry); mdb_close(mdb); - mdb_exit(); #endif - exit(0); + return 0; } diff --git a/src/util/prole.c b/src/util/prole.c index 7c0457a..8f56ee2 100644 --- a/src/util/prole.c +++ b/src/util/prole.c @@ -34,7 +34,6 @@ main(int argc, char **argv) exit(1); } - mdb_init(); mdb = mdb_open(argv[1], MDB_NOFLAGS); dot = strchr(argv[2],'.'); if (argc>3) sargname = argv[3]; @@ -56,9 +55,7 @@ main(int argc, char **argv) } mdb_close(mdb); - mdb_exit(); - - exit(0); + return 0; } void dump_ole(MdbTableDef *table, char *colname, char *sargname) diff --git a/src/util/prtable.c b/src/util/prtable.c index 4836ab7..8cbc1e6 100644 --- a/src/util/prtable.c +++ b/src/util/prtable.c @@ -32,7 +32,6 @@ int found = 0; exit(1); } - mdb_init(); mdb = mdb_open(argv[1], MDB_NOFLAGS); mdb_read_catalog(mdb, MDB_TABLE); @@ -50,8 +49,6 @@ int found = 0; fprintf(stderr,"No table named %s found.\n", argv[2]); } mdb_close(mdb); - mdb_exit(); - - exit(0); + return 0; } diff --git a/src/util/sargtest.c b/src/util/sargtest.c index 9dbddc1..1b0a852 100644 --- a/src/util/sargtest.c +++ b/src/util/sargtest.c @@ -29,8 +29,6 @@ main(int argc, char **argv) MdbHandle *mdb; MdbTableDef *table; - mdb_init(); - if (!(mdb = mdb_open(MDB_FILE, MDB_NOFLAGS))) { exit(1); } @@ -43,9 +41,7 @@ main(int argc, char **argv) } mdb_close(mdb); - mdb_exit(); - - exit(0); + return 0; } void print_table(MdbTableDef *table) diff --git a/src/util/updrow.c b/src/util/updrow.c index 6588632..ee43dfe 100644 --- a/src/util/updrow.c +++ b/src/util/updrow.c @@ -39,7 +39,6 @@ int len; exit(1); } - mdb_init(); mdb = mdb_open(argv[1], MDB_WRITABLE); tabname = argv[2]; sargname = argv[3]; @@ -64,9 +63,7 @@ int len; } mdb_close(mdb); - mdb_exit(); - - exit(0); + return 0; } void read_to_row(MdbTableDef *table, char *sargname)