version 1.3, 2012/06/04 09:04:18 |
version 1.4, 2012/11/29 05:18:03 |
|
|
#include <ctype.h> |
#include <ctype.h> |
#include <stdarg.h> |
#include <stdarg.h> |
|
|
#if !defined(_WIN32) && !defined(WIN32) && !defined(__OS2__) |
#if !defined(_WIN32) && !defined(WIN32) |
# include <signal.h> |
# include <signal.h> |
# if !defined(__RTP__) && !defined(_WRS_KERNEL) |
# if !defined(__RTP__) && !defined(_WRS_KERNEL) |
# include <pwd.h> |
# include <pwd.h> |
|
|
# include <sys/types.h> |
# include <sys/types.h> |
#endif |
#endif |
|
|
#ifdef __OS2__ |
|
# include <unistd.h> |
|
#endif |
|
|
|
#ifdef HAVE_EDITLINE |
#ifdef HAVE_EDITLINE |
# include <editline/editline.h> |
# include <editline/editline.h> |
#endif |
#endif |
|
|
# include <io.h> |
# include <io.h> |
#define isatty(h) _isatty(h) |
#define isatty(h) _isatty(h) |
#define access(f,m) _access((f),(m)) |
#define access(f,m) _access((f),(m)) |
|
#undef popen |
#define popen(a,b) _popen((a),(b)) |
#define popen(a,b) _popen((a),(b)) |
|
#undef pclose |
#define pclose(x) _pclose(x) |
#define pclose(x) _pclose(x) |
#else |
#else |
/* Make sure isatty() has a prototype. |
/* Make sure isatty() has a prototype. |
|
|
#define IsDigit(X) isdigit((unsigned char)X) |
#define IsDigit(X) isdigit((unsigned char)X) |
#define ToLower(X) (char)tolower((unsigned char)X) |
#define ToLower(X) (char)tolower((unsigned char)X) |
|
|
#if !defined(_WIN32) && !defined(WIN32) && !defined(__OS2__) && !defined(__RTP__) && !defined(_WRS_KERNEL) |
#if !defined(_WIN32) && !defined(WIN32) && !defined(_WRS_KERNEL) |
#include <sys/time.h> |
#include <sys/time.h> |
#include <sys/resource.h> |
#include <sys/resource.h> |
|
|
|
|
*/ |
*/ |
static void open_db(struct callback_data *p){ |
static void open_db(struct callback_data *p){ |
if( p->db==0 ){ |
if( p->db==0 ){ |
|
sqlite3_initialize(); |
sqlite3_open(p->zDbFilename, &p->db); |
sqlite3_open(p->zDbFilename, &p->db); |
db = p->db; |
db = p->db; |
if( db && sqlite3_errcode(db)==SQLITE_OK ){ |
if( db && sqlite3_errcode(db)==SQLITE_OK ){ |
|
|
open_db(p); |
open_db(p); |
output_file_close(p->traceOut); |
output_file_close(p->traceOut); |
p->traceOut = output_file_open(azArg[1]); |
p->traceOut = output_file_open(azArg[1]); |
#ifndef SQLITE_OMIT_TRACE |
#if !defined(SQLITE_OMIT_TRACE) && !defined(SQLITE_OMIT_FLOATING_POINT) |
if( p->traceOut==0 ){ |
if( p->traceOut==0 ){ |
sqlite3_trace(p->db, 0, 0); |
sqlite3_trace(p->db, 0, 0); |
}else{ |
}else{ |
|
|
static char *home_dir = NULL; |
static char *home_dir = NULL; |
if( home_dir ) return home_dir; |
if( home_dir ) return home_dir; |
|
|
#if !defined(_WIN32) && !defined(WIN32) && !defined(__OS2__) && !defined(_WIN32_WCE) && !defined(__RTP__) && !defined(_WRS_KERNEL) |
#if !defined(_WIN32) && !defined(WIN32) && !defined(_WIN32_WCE) && !defined(__RTP__) && !defined(_WRS_KERNEL) |
{ |
{ |
struct passwd *pwent; |
struct passwd *pwent; |
uid_t uid = getuid(); |
uid_t uid = getuid(); |
if( (pwent=getpwuid(uid)) != NULL) { |
if( (pwent=getpwuid(uid)) != NULL) { |
home_dir = pwent->pw_dir; |
home_dir = pwent->pw_dir; |
} |
} |
} |
} |
#endif |
#endif |
|
|
|
|
home_dir = "/"; |
home_dir = "/"; |
#else |
#else |
|
|
#if defined(_WIN32) || defined(WIN32) || defined(__OS2__) |
#if defined(_WIN32) || defined(WIN32) |
if (!home_dir) { |
if (!home_dir) { |
home_dir = getenv("USERPROFILE"); |
home_dir = getenv("USERPROFILE"); |
} |
} |
|
|
home_dir = getenv("HOME"); |
home_dir = getenv("HOME"); |
} |
} |
|
|
#if defined(_WIN32) || defined(WIN32) || defined(__OS2__) |
#if defined(_WIN32) || defined(WIN32) |
if (!home_dir) { |
if (!home_dir) { |
char *zDrive, *zPath; |
char *zDrive, *zPath; |
int n; |
int n; |
|
|
#endif |
#endif |
return 1; |
return 1; |
} |
} |
|
sqlite3_initialize(); |
zBuf = sqlite3_mprintf("%s/.sqliterc",home_dir); |
zBuf = sqlite3_mprintf("%s/.sqliterc",home_dir); |
sqliterc = zBuf; |
sqliterc = zBuf; |
} |
} |
|
|
} |
} |
} |
} |
if( i<argc ){ |
if( i<argc ){ |
#if defined(SQLITE_OS_OS2) && SQLITE_OS_OS2 |
|
data.zDbFilename = (const char *)convertCpPathToUtf8( argv[i++] ); |
|
#else |
|
data.zDbFilename = argv[i++]; |
data.zDbFilename = argv[i++]; |
#endif |
|
}else{ |
}else{ |
#ifndef SQLITE_OMIT_MEMORYDB |
#ifndef SQLITE_OMIT_MEMORYDB |
data.zDbFilename = ":memory:"; |
data.zDbFilename = ":memory:"; |