00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <sys/types.h>
00011 #include <sys/stat.h>
00012
00013 #include <ctype.h>
00014 #include <errno.h>
00015 #include <stdio.h>
00016 #include <stdlib.h>
00017 #include <string.h>
00018
00019 #ifdef _WIN32
00020 #define WIN32_LEAN_AND_MEAN 1
00021
00022 #include <direct.h>
00023 #include <db.h>
00024
00025 extern int getopt(int, char * const *, const char *);
00026 extern char *optarg;
00027 extern int optind;
00028 #else
00029 #define HAVE_WILDCARD_SUPPORT 1
00030
00031 #include <regex.h>
00032 #include <unistd.h>
00033 #endif
00034
00035 #include "db.h"
00036
00037
00038
00039
00040
00041
00042 #define MAP_VERSION 1
00043
00044
00045
00046
00047
00048
00049
00050 typedef enum { FORMAT_EXCEL, FORMAT_NL } input_fmt;
00051
00052
00053
00054
00055
00056
00057
00058 #define OFFSET_LEN(offset, indx) \
00059 (((offset)[(indx) + 1] - (offset)[(indx)]) - 1)
00060
00061 #define OFFSET_OOB 0
00062
00063
00064
00065
00066 typedef enum { EQ=1, NEQ, GT, GTEQ, LT, LTEQ, WC, NWC } OPERATOR;
00067
00068
00069
00070
00071 typedef enum { NOTSET=1, DOUBLE, STRING, ULONG } datatype;
00072
00073
00074
00075
00076 typedef struct {
00077 char *name;
00078 u_int32_t fieldno;
00079 datatype type;
00080
00081 int indx;
00082 DB *secondary;
00083
00084 #define FIELD_OFFSET(field) ((size_t)(&(((DbRecord *)0)->field)))
00085 size_t offset;
00086 } DbField;
00087
00088
00089
00090
00091 extern DB *db;
00092 extern DbField fieldlist[];
00093 extern DB_ENV *dbenv;
00094 extern char *progname;
00095 extern int verbose;
00096 #ifdef _WIN32
00097 #undef strcasecmp
00098 #define strcasecmp _stricmp
00099 #undef strncasecmp
00100 #define strncasecmp _strnicmp
00101 #define mkdir(d, perm) _mkdir(d)
00102 #endif