| OLD | NEW |
| 1 /* | 1 /* |
| 2 ** A utility for printing an SQLite database journal. | 2 ** A utility for printing an SQLite database journal. |
| 3 */ | 3 */ |
| 4 #include <stdio.h> | 4 #include <stdio.h> |
| 5 #include <ctype.h> | 5 #include <ctype.h> |
| 6 #include <stdlib.h> | 6 #include <stdlib.h> |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 /* | 9 /* |
| 10 ** state information | 10 ** state information |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 | 23 |
| 24 /* | 24 /* |
| 25 ** Read N bytes of memory starting at iOfst into space obtained | 25 ** Read N bytes of memory starting at iOfst into space obtained |
| 26 ** from malloc(). | 26 ** from malloc(). |
| 27 */ | 27 */ |
| 28 static unsigned char *read_content(int N, int iOfst){ | 28 static unsigned char *read_content(int N, int iOfst){ |
| 29 int got; | 29 int got; |
| 30 unsigned char *pBuf = malloc(N); | 30 unsigned char *pBuf = malloc(N); |
| 31 if( pBuf==0 ) out_of_memory(); | 31 if( pBuf==0 ) out_of_memory(); |
| 32 fseek(db, iOfst, SEEK_SET); | 32 fseek(db, iOfst, SEEK_SET); |
| 33 got = fread(pBuf, 1, N, db); | 33 got = (int)fread(pBuf, 1, N, db); |
| 34 if( got<0 ){ | 34 if( got<0 ){ |
| 35 fprintf(stderr, "I/O error reading %d bytes from %d\n", N, iOfst); | 35 fprintf(stderr, "I/O error reading %d bytes from %d\n", N, iOfst); |
| 36 memset(pBuf, 0, N); | 36 memset(pBuf, 0, N); |
| 37 }else if( got<N ){ | 37 }else if( got<N ){ |
| 38 fprintf(stderr, "Short read: got only %d of %d bytes from %d\n", | 38 fprintf(stderr, "Short read: got only %d of %d bytes from %d\n", |
| 39 got, N, iOfst); | 39 got, N, iOfst); |
| 40 memset(&pBuf[got], 0, N-got); | 40 memset(&pBuf[got], 0, N-got); |
| 41 } | 41 } |
| 42 return pBuf; | 42 return pBuf; |
| 43 } | 43 } |
| 44 | 44 |
| 45 /* Print a line of decode output showing a 4-byte integer. | 45 /* Print a line of decode output showing a 4-byte integer. |
| 46 */ | 46 */ |
| 47 static unsigned print_decode_line( | 47 static unsigned print_decode_line( |
| 48 const unsigned char *aData, /* Content being decoded */ | 48 const unsigned char *aData, /* Content being decoded */ |
| 49 int ofst, int nByte, /* Start and size of decode */ | 49 int ofst, int nByte, /* Start and size of decode */ |
| 50 const char *zMsg /* Message to append */ | 50 const char *zMsg /* Message to append */ |
| 51 ){ | 51 ){ |
| 52 int i, j; | 52 int i, j; |
| 53 unsigned val = aData[ofst]; | 53 unsigned val = aData[ofst]; |
| 54 char zBuf[100]; | 54 char zBuf[100]; |
| 55 sprintf(zBuf, " %05x: %02x", ofst, aData[ofst]); | 55 sprintf(zBuf, " %05x: %02x", ofst, aData[ofst]); |
| 56 i = strlen(zBuf); | 56 i = (int)strlen(zBuf); |
| 57 for(j=1; j<4; j++){ | 57 for(j=1; j<4; j++){ |
| 58 if( j>=nByte ){ | 58 if( j>=nByte ){ |
| 59 sprintf(&zBuf[i], " "); | 59 sprintf(&zBuf[i], " "); |
| 60 }else{ | 60 }else{ |
| 61 sprintf(&zBuf[i], " %02x", aData[ofst+j]); | 61 sprintf(&zBuf[i], " %02x", aData[ofst+j]); |
| 62 val = val*256 + aData[ofst+j]; | 62 val = val*256 + aData[ofst+j]; |
| 63 } | 63 } |
| 64 i += strlen(&zBuf[i]); | 64 i += (int)strlen(&zBuf[i]); |
| 65 } | 65 } |
| 66 sprintf(&zBuf[i], " %10u", val); | 66 sprintf(&zBuf[i], " %10u", val); |
| 67 printf("%s %s\n", zBuf, zMsg); | 67 printf("%s %s\n", zBuf, zMsg); |
| 68 return val; | 68 return val; |
| 69 } | 69 } |
| 70 | 70 |
| 71 /* | 71 /* |
| 72 ** Read and print a journal header. Store key information (page size, etc) | 72 ** Read and print a journal header. Store key information (page size, etc) |
| 73 ** in global variables. | 73 ** in global variables. |
| 74 */ | 74 */ |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 iOfst += sectorSize; | 129 iOfst += sectorSize; |
| 130 while( cnt && iOfst<fileSize ){ | 130 while( cnt && iOfst<fileSize ){ |
| 131 print_page(iOfst); | 131 print_page(iOfst); |
| 132 iOfst += pageSize+8; | 132 iOfst += pageSize+8; |
| 133 } | 133 } |
| 134 iOfst = (iOfst/sectorSize + 1)*sectorSize; | 134 iOfst = (iOfst/sectorSize + 1)*sectorSize; |
| 135 } | 135 } |
| 136 fclose(db); | 136 fclose(db); |
| 137 return 0; | 137 return 0; |
| 138 } | 138 } |
| OLD | NEW |