mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-10-15 19:54:53 +08:00
Changes for compiling in MSVC (Martin Ellis)
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
Sat Mar 12 23:25:48 CST 2005 Jeff Smith <whydoubt@yahoo.com>
|
||||
* include/mdbtools.h:
|
||||
* src/libmdb/file.c:
|
||||
* src/libmdb/iconv.c:
|
||||
* src/libmdb/money.c: Changes for compiling in MSVC (Martin Ellis)
|
||||
|
||||
Fri Mar 11 21:32:19 CST 2005 Jeff Smith <whydoubt@yahoo.com>
|
||||
* HACKING:
|
||||
* src/libmdb/data.c:
|
||||
|
@@ -19,6 +19,9 @@
|
||||
#ifndef _mdbtools_h_
|
||||
#define _mdbtools_h_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
@@ -193,7 +196,7 @@ typedef struct {
|
||||
|
||||
/* offset to row count on data pages...version dependant */
|
||||
typedef struct {
|
||||
int pg_size;
|
||||
ssize_t pg_size;
|
||||
guint16 row_count_offset;
|
||||
guint16 tab_num_rows_offset;
|
||||
guint16 tab_num_cols_offset;
|
||||
@@ -283,7 +286,7 @@ typedef struct {
|
||||
MdbProperties *props;
|
||||
/* info needed for handling deleted/added columns */
|
||||
int fixed_offset;
|
||||
int var_col_num;
|
||||
unsigned int var_col_num;
|
||||
/* row_col_num is the row column number order,
|
||||
* including deleted columns */
|
||||
int row_col_num;
|
||||
@@ -406,7 +409,7 @@ 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 gint32 mdb_pg_get_int24_msb(MdbHandle *mdb, int offset);
|
||||
extern MdbHandle *mdb_open(char *filename, MdbFileFlags flags);
|
||||
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);
|
||||
@@ -488,7 +491,7 @@ extern int mdb_index_find_row(MdbHandle *mdb, MdbIndex *idx, MdbIndexChain *chai
|
||||
extern void mdb_index_swap_n(unsigned char *src, int sz, unsigned char *dest);
|
||||
extern void mdb_free_indices(GPtrArray *indices);
|
||||
void mdb_index_page_reset(MdbIndexPage *ipg);
|
||||
|
||||
extern int mdb_index_pack_bitmap(MdbHandle *mdb, MdbIndexPage *ipg);
|
||||
|
||||
/* stats.c */
|
||||
extern void mdb_stats_on(MdbHandle *mdb);
|
||||
@@ -510,6 +513,7 @@ extern unsigned char *mdb_new_data_pg(MdbCatalogEntry *entry);
|
||||
|
||||
/* map.c */
|
||||
extern guint32 mdb_map_find_next_freepage(MdbTableDef *table, int row_size);
|
||||
extern guint32 mdb_map_find_next(MdbHandle *mdb, unsigned char *map, unsigned int map_sz, guint32 start_pg);
|
||||
|
||||
/* props.c */
|
||||
extern GPtrArray *mdb_read_props_list(gchar *kkd, int len);
|
||||
@@ -530,5 +534,11 @@ extern void mdb_debug(int klass, char *fmt, ...);
|
||||
/* iconv.c */
|
||||
extern int mdb_unicode2ascii(MdbHandle *mdb, unsigned char *src, unsigned int slen, unsigned char *dest, unsigned int dlen);
|
||||
extern int mdb_ascii2unicode(MdbHandle *mdb, unsigned char *src, unsigned int slen, unsigned char *dest, unsigned int dlen);
|
||||
extern void mdb_iconv_init(MdbHandle *mdb);
|
||||
extern void mdb_iconv_close(MdbHandle *mdb);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _mdbtools_h_ */
|
||||
|
@@ -65,7 +65,7 @@ static ssize_t _mdb_read_pg(MdbHandle *mdb, unsigned char *pg_buf, unsigned long
|
||||
* freeing.
|
||||
**/
|
||||
|
||||
static gchar *mdb_find_file(char *file_name)
|
||||
static gchar *mdb_find_file(const char *file_name)
|
||||
{
|
||||
struct stat status;
|
||||
gchar *mdbpath, **dir, *tmpfname;
|
||||
@@ -105,9 +105,10 @@ static gchar *mdb_find_file(char *file_name)
|
||||
*
|
||||
* Return value: pointer to MdbHandle structure.
|
||||
**/
|
||||
MdbHandle *mdb_open(char *filename, MdbFileFlags flags)
|
||||
MdbHandle *mdb_open(const char *filename, MdbFileFlags flags)
|
||||
{
|
||||
MdbHandle *mdb;
|
||||
int open_flags;
|
||||
|
||||
mdb = (MdbHandle *) g_malloc0(sizeof(MdbHandle));
|
||||
mdb_set_default_backend(mdb, "access");
|
||||
@@ -124,11 +125,17 @@ MdbHandle *mdb_open(char *filename, MdbFileFlags flags)
|
||||
}
|
||||
if (flags & MDB_WRITABLE) {
|
||||
mdb->f->writable = TRUE;
|
||||
mdb->f->fd = open(mdb->f->filename,O_RDWR);
|
||||
open_flags = O_RDWR;
|
||||
} else {
|
||||
mdb->f->fd = open(mdb->f->filename,O_RDONLY);
|
||||
open_flags = O_RDONLY;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
open_flags |= O_BINARY;
|
||||
#endif
|
||||
|
||||
mdb->f->fd = open(mdb->f->filename, open_flags);
|
||||
|
||||
if (mdb->f->fd==-1) {
|
||||
fprintf(stderr,"Couldn't open file %s\n",mdb->f->filename);
|
||||
mdb_close(mdb);
|
||||
|
@@ -32,7 +32,7 @@ mdb_unicode2ascii(MdbHandle *mdb, unsigned char *src, unsigned int slen, unsigne
|
||||
{
|
||||
unsigned char *tmp = NULL;
|
||||
unsigned int tlen = 0;
|
||||
int len_in, len_out;
|
||||
unsigned int len_in, len_out;
|
||||
char *in_ptr, *out_ptr;
|
||||
|
||||
if ((!src) || (!dest))
|
||||
@@ -138,7 +138,7 @@ mdb_ascii2unicode(MdbHandle *mdb, unsigned char *src, unsigned int slen, unsigne
|
||||
/* Unicode Compression */
|
||||
if(IS_JET4(mdb) && (dlen>4)) {
|
||||
char *tmp = g_malloc(dlen);
|
||||
int tptr = 0, dptr = 0;
|
||||
unsigned int tptr = 0, dptr = 0;
|
||||
int comp = 1;
|
||||
|
||||
tmp[tptr++] = 0xff;
|
||||
|
@@ -43,7 +43,7 @@ static char *array_to_string(unsigned char *array, int unsigned scale, int neg);
|
||||
*/
|
||||
char *mdb_money_to_string(MdbHandle *mdb, int start)
|
||||
{
|
||||
int num_bytes = 8;
|
||||
const int num_bytes = 8;
|
||||
int i;
|
||||
int neg=0;
|
||||
unsigned char multiplier[MAXPRECISION], temp[MAXPRECISION];
|
||||
|
Reference in New Issue
Block a user