diff options
Diffstat (limited to 'ext/pdo_sqlite/sqlite/tool/showdb.c')
-rw-r--r-- | ext/pdo_sqlite/sqlite/tool/showdb.c | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/ext/pdo_sqlite/sqlite/tool/showdb.c b/ext/pdo_sqlite/sqlite/tool/showdb.c deleted file mode 100644 index fe105c7bb2..0000000000 --- a/ext/pdo_sqlite/sqlite/tool/showdb.c +++ /dev/null @@ -1,85 +0,0 @@ -/* -** A utility for printing all or part of an SQLite database file. -*/ -#include <stdio.h> -#include <ctype.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> -#include <stdlib.h> - - -static int pagesize = 1024; -static int db = -1; -static int mxPage = 0; - -static void out_of_memory(void){ - fprintf(stderr,"Out of memory...\n"); - exit(1); -} - -static print_page(int iPg){ - unsigned char *aData; - int i, j; - aData = malloc(pagesize); - if( aData==0 ) out_of_memory(); - lseek(db, (iPg-1)*pagesize, SEEK_SET); - read(db, aData, pagesize); - fprintf(stdout, "Page %d:\n", iPg); - for(i=0; i<pagesize; i += 16){ - fprintf(stdout, " %03x: ",i); - for(j=0; j<16; j++){ - fprintf(stdout,"%02x ", aData[i+j]); - } - for(j=0; j<16; j++){ - fprintf(stdout,"%c", isprint(aData[i+j]) ? aData[i+j] : '.'); - } - fprintf(stdout,"\n"); - } - free(aData); -} - -int main(int argc, char **argv){ - struct stat sbuf; - if( argc<2 ){ - fprintf(stderr,"Usage: %s FILENAME ?PAGE? ...\n", argv[0]); - exit(1); - } - db = open(argv[1], O_RDONLY); - if( db<0 ){ - fprintf(stderr,"%s: can't open %s\n", argv[0], argv[1]); - exit(1); - } - fstat(db, &sbuf); - mxPage = sbuf.st_size/pagesize + 1; - if( argc==2 ){ - int i; - for(i=1; i<=mxPage; i++) print_page(i); - }else{ - int i; - for(i=2; i<argc; i++){ - int iStart, iEnd; - char *zLeft; - iStart = strtol(argv[i], &zLeft, 0); - if( zLeft && strcmp(zLeft,"..end")==0 ){ - iEnd = mxPage; - }else if( zLeft && zLeft[0]=='.' && zLeft[1]=='.' ){ - iEnd = strtol(&zLeft[2], 0, 0); - }else{ - iEnd = iStart; - } - if( iStart<1 || iEnd<iStart || iEnd>mxPage ){ - fprintf(stderr, - "Page argument should be LOWER?..UPPER?. Range 1 to %d\n", - mxPage); - exit(1); - } - while( iStart<=iEnd ){ - print_page(iStart); - iStart++; - } - } - } - close(db); -} |