summaryrefslogtreecommitdiff
path: root/ext/pdo_sqlite/sqlite/tool/showdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pdo_sqlite/sqlite/tool/showdb.c')
-rw-r--r--ext/pdo_sqlite/sqlite/tool/showdb.c85
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);
-}