Fix FTBFS with gcc 15 and remove obsolete patch file. This resolves issue #90
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>pull/91/head
parent
473f4e04b0
commit
f491bbc527
@ -1,217 +0,0 @@
|
|||||||
--- shell.c.orig/shell.c 2004-07-22 22:08:28.000000000 +0200
|
|
||||||
+++ shell.c 2005-05-04 18:47:40.000000000 +0200
|
|
||||||
@@ -12,7 +12,7 @@
|
|
||||||
** This file contains code to implement the "sqlite" command line
|
|
||||||
** utility for accessing SQLite databases.
|
|
||||||
**
|
|
||||||
-** $Id: shell.c,v 1.93 2004/03/17 23:42:13 drh Exp $
|
|
||||||
+** $Id: shell.c 409279 2005-05-04 15:23:02Z staniek $
|
|
||||||
*/
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
@@ -20,11 +20,19 @@
|
|
||||||
#include "sqlite.h"
|
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
+#if defined(_WIN32)
|
|
||||||
+# include <io.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#if !defined(_WIN32) && !defined(WIN32) && !defined(__MACOS__)
|
|
||||||
# include <signal.h>
|
|
||||||
# include <pwd.h>
|
|
||||||
# include <unistd.h>
|
|
||||||
# include <sys/types.h>
|
|
||||||
+
|
|
||||||
+#define strnicmp strncasecmp
|
|
||||||
+#define stricmp strcasecmp
|
|
||||||
+
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __MACOS__
|
|
||||||
@@ -47,6 +55,12 @@
|
|
||||||
# define stifle_history(X)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* js */
|
|
||||||
+char verboseDump = 0;
|
|
||||||
+int nObjects = 0; /* used to count progress */
|
|
||||||
+int curObjects = 0;
|
|
||||||
+/* \js */
|
|
||||||
+
|
|
||||||
/* Make sure isatty() has a prototype.
|
|
||||||
*/
|
|
||||||
extern int isatty();
|
|
||||||
@@ -80,7 +94,28 @@
|
|
||||||
/*
|
|
||||||
** Determines if a string is a number of not.
|
|
||||||
*/
|
|
||||||
-extern int sqliteIsNumber(const char*);
|
|
||||||
+/* extern int sqliteIsNumber(const char*); */
|
|
||||||
+static int isNumber(const unsigned char *z){
|
|
||||||
+ if( *z=='-' || *z=='+' ) z++;
|
|
||||||
+ if( !isdigit(*z) ){
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ z++;
|
|
||||||
+ while( isdigit(*z) ){ z++; }
|
|
||||||
+ if( *z=='.' ){
|
|
||||||
+ z++;
|
|
||||||
+ if( !isdigit(*z) ) return 0;
|
|
||||||
+ while( isdigit(*z) ){ z++; }
|
|
||||||
+ }
|
|
||||||
+ if( *z=='e' || *z=='E' ){
|
|
||||||
+ z++;
|
|
||||||
+ if( *z=='+' || *z=='-' ) z++;
|
|
||||||
+ if( !isdigit(*z) ) return 0;
|
|
||||||
+ while( isdigit(*z) ){ z++; }
|
|
||||||
+ }
|
|
||||||
+ return *z==0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
|
|
||||||
/*
|
|
||||||
** This routine reads a line of text from standard input, stores
|
|
||||||
@@ -392,7 +427,7 @@
|
|
||||||
char *zSep = i>0 ? ",": "";
|
|
||||||
if( azArg[i]==0 ){
|
|
||||||
fprintf(p->out,"%sNULL",zSep);
|
|
||||||
- }else if( sqliteIsNumber(azArg[i]) ){
|
|
||||||
+ }else if( isNumber(azArg[i]) ){
|
|
||||||
fprintf(p->out,"%s%s",zSep, azArg[i]);
|
|
||||||
}else{
|
|
||||||
if( zSep[0] ) fprintf(p->out,"%s",zSep);
|
|
||||||
@@ -452,10 +487,14 @@
|
|
||||||
*/
|
|
||||||
static int dump_callback(void *pArg, int nArg, char **azArg, char **azCol){
|
|
||||||
struct callback_data *p = (struct callback_data *)pArg;
|
|
||||||
+ struct callback_data d2;
|
|
||||||
if( nArg!=3 ) return 1;
|
|
||||||
fprintf(p->out, "%s;\n", azArg[2]);
|
|
||||||
if( strcmp(azArg[1],"table")==0 ){
|
|
||||||
- struct callback_data d2;
|
|
||||||
+/* js */
|
|
||||||
+ if (verboseDump)
|
|
||||||
+ fprintf(stderr, "%%%d\n", (++curObjects * 100 / nObjects));
|
|
||||||
+/* \js */
|
|
||||||
d2 = *p;
|
|
||||||
d2.mode = MODE_Insert;
|
|
||||||
d2.zDestTable = 0;
|
|
||||||
@@ -542,6 +581,14 @@
|
|
||||||
int rc = 0;
|
|
||||||
char *azArg[50];
|
|
||||||
|
|
||||||
+/* js */
|
|
||||||
+ sqlite_vm *pVm;
|
|
||||||
+ char *errMsg;
|
|
||||||
+ int ncolumns; /* OUT: Number of columns in result */
|
|
||||||
+ const char **pazValue; /* OUT: Column data */
|
|
||||||
+ const char **pazColName; /* OUT: Column names and datatypes */
|
|
||||||
+/* \js */
|
|
||||||
+
|
|
||||||
/* Parse the input line into tokens.
|
|
||||||
*/
|
|
||||||
while( zLine[i] && nArg<ArraySize(azArg) ){
|
|
||||||
@@ -586,6 +633,24 @@
|
|
||||||
if( c=='d' && strncmp(azArg[0], "dump", n)==0 ){
|
|
||||||
char *zErrMsg = 0;
|
|
||||||
open_db(p);
|
|
||||||
+
|
|
||||||
+/* js */
|
|
||||||
+if (SQLITE_OK!=sqlite_compile(p->db, "SELECT COUNT(1) FROM sqlite_master",
|
|
||||||
+0, &pVm, &errMsg)) {
|
|
||||||
+ fprintf(stderr, "%s\n", errMsg);
|
|
||||||
+ exit(1);
|
|
||||||
+}
|
|
||||||
+if (SQLITE_ROW!=sqlite_step( pVm, &ncolumns, &pazValue, &pazColName )) {
|
|
||||||
+ exit(1);
|
|
||||||
+}
|
|
||||||
+nObjects = atoi(pazValue[0]);
|
|
||||||
+
|
|
||||||
+if (SQLITE_OK!=sqlite_finalize( pVm, &errMsg)) {
|
|
||||||
+ fprintf(stderr, "%s\n", errMsg);
|
|
||||||
+ exit(1);
|
|
||||||
+}
|
|
||||||
+/* \js */
|
|
||||||
+
|
|
||||||
fprintf(p->out, "BEGIN TRANSACTION;\n");
|
|
||||||
if( nArg==1 ){
|
|
||||||
sqlite_exec(p->db,
|
|
||||||
@@ -812,8 +877,9 @@
|
|
||||||
data.showHeader = 0;
|
|
||||||
data.mode = MODE_Semi;
|
|
||||||
if( nArg>1 ){
|
|
||||||
- extern int sqliteStrICmp(const char*,const char*);
|
|
||||||
- if( sqliteStrICmp(azArg[1],"sqlite_master")==0 ){
|
|
||||||
+/* extern int sqliteStrICmp(const char*,const char*);
|
|
||||||
+ if( sqliteStrICmp(azArg[1],"sqlite_master")==0 ){*/
|
|
||||||
+ if( stricmp(azArg[1],"sqlite_master")==0 ){
|
|
||||||
char *new_argv[2], *new_colv[2];
|
|
||||||
new_argv[0] = "CREATE TABLE sqlite_master (\n"
|
|
||||||
" type text,\n"
|
|
||||||
@@ -826,7 +892,8 @@
|
|
||||||
new_colv[0] = "sql";
|
|
||||||
new_colv[1] = 0;
|
|
||||||
callback(&data, 1, new_argv, new_colv);
|
|
||||||
- }else if( sqliteStrICmp(azArg[1],"sqlite_temp_master")==0 ){
|
|
||||||
+/* }else if( sqliteStrICmp(azArg[1],"sqlite_temp_master")==0 ){*/
|
|
||||||
+ }else if( stricmp(azArg[1],"sqlite_temp_master")==0 ){
|
|
||||||
char *new_argv[2], *new_colv[2];
|
|
||||||
new_argv[0] = "CREATE TEMP TABLE sqlite_temp_master (\n"
|
|
||||||
" type text,\n"
|
|
||||||
@@ -997,10 +1064,11 @@
|
|
||||||
** as is the Oracle "/".
|
|
||||||
*/
|
|
||||||
static int _is_command_terminator(const char *zLine){
|
|
||||||
- extern int sqliteStrNICmp(const char*,const char*,int);
|
|
||||||
+/* extern int sqliteStrNICmp(const char*,const char*,int); */
|
|
||||||
while( isspace(*zLine) ){ zLine++; };
|
|
||||||
if( zLine[0]=='/' && _all_whitespace(&zLine[1]) ) return 1; /* Oracle */
|
|
||||||
- if( sqliteStrNICmp(zLine,"go",2)==0 && _all_whitespace(&zLine[2]) ){
|
|
||||||
+/* if( sqliteStrNICmp(zLine,"go",2)==0 && _all_whitespace(&zLine[2]) ){ */
|
|
||||||
+ if( strnicmp(zLine,"go",2)==0 && _all_whitespace(&zLine[2]) ){
|
|
||||||
return 1; /* SQL Server */
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
@@ -1210,7 +1278,7 @@
|
|
||||||
const char *zInitFile = 0;
|
|
||||||
char *zFirstCmd = 0;
|
|
||||||
int i;
|
|
||||||
- extern int sqliteOsFileExists(const char*);
|
|
||||||
+/* extern int sqliteOsFileExists(const char*); */
|
|
||||||
|
|
||||||
#ifdef __MACOS__
|
|
||||||
argc = ccommand(&argv);
|
|
||||||
@@ -1257,7 +1325,7 @@
|
|
||||||
** files from being created if a user mistypes the database name argument
|
|
||||||
** to the sqlite command-line tool.
|
|
||||||
*/
|
|
||||||
- if( sqliteOsFileExists(data.zDbFilename) ){
|
|
||||||
+ if( access(data.zDbFilename, 0)==0 ){
|
|
||||||
open_db(&data);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1297,8 +1365,10 @@
|
|
||||||
}else if( strcmp(z,"-echo")==0 ){
|
|
||||||
data.echoOn = 1;
|
|
||||||
}else if( strcmp(z,"-version")==0 ){
|
|
||||||
- printf("%s\n", sqlite_version);
|
|
||||||
+ printf("%s\n", sqlite_libversion());
|
|
||||||
return 1;
|
|
||||||
+ }else if( strcmp(z,"-verbose-dump")==0 ){
|
|
||||||
+ verboseDump = 1;
|
|
||||||
}else if( strcmp(z,"-help")==0 ){
|
|
||||||
usage(1);
|
|
||||||
}else{
|
|
||||||
@@ -1330,9 +1400,9 @@
|
|
||||||
char *zHome;
|
|
||||||
char *zHistory = 0;
|
|
||||||
printf(
|
|
||||||
- "SQLite version %s\n"
|
|
||||||
+ "SQLite version %s (bundled with Kexi)\n"
|
|
||||||
"Enter \".help\" for instructions\n",
|
|
||||||
- sqlite_version
|
|
||||||
+ sqlite_libversion()
|
|
||||||
);
|
|
||||||
zHome = find_home_dir();
|
|
||||||
if( zHome && (zHistory = malloc(strlen(zHome)+20))!=0 ){
|
|
Loading…
Reference in New Issue