mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Add the schema6.test module for demonstrating schemas that generate identical
and different content. FossilOrigin-Name: ac1da06a829051d393ccb8bb986e78f5bd35b060687688f6b3661913b13c9a5a
This commit is contained in:
@@ -3882,28 +3882,39 @@ static int SQLITE_TCLAPI md5file_cmd(
|
||||
const char **argv
|
||||
){
|
||||
FILE *in;
|
||||
int ofst;
|
||||
int amt;
|
||||
MD5Context ctx;
|
||||
void (*converter)(unsigned char*, char*);
|
||||
unsigned char digest[16];
|
||||
char zBuf[10240];
|
||||
|
||||
if( argc!=2 ){
|
||||
if( argc!=2 && argc!=4 ){
|
||||
Tcl_AppendResult(interp,"wrong # args: should be \"", argv[0],
|
||||
" FILENAME\"", (char*)0);
|
||||
" FILENAME [OFFSET AMT]\"", (char*)0);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if( argc==4 ){
|
||||
ofst = atoi(argv[2]);
|
||||
amt = atoi(argv[3]);
|
||||
}else{
|
||||
ofst = 0;
|
||||
amt = 2147483647;
|
||||
}
|
||||
in = fopen(argv[1],"rb");
|
||||
if( in==0 ){
|
||||
Tcl_AppendResult(interp,"unable to open file \"", argv[1],
|
||||
"\" for reading", (char*)0);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
fseek(in, ofst, SEEK_SET);
|
||||
MD5Init(&ctx);
|
||||
for(;;){
|
||||
while( amt>0 ){
|
||||
int n;
|
||||
n = (int)fread(zBuf, 1, sizeof(zBuf), in);
|
||||
n = (int)fread(zBuf, 1, sizeof(zBuf)<=amt ? sizeof(zBuf) : amt, in);
|
||||
if( n<=0 ) break;
|
||||
MD5Update(&ctx, (unsigned char*)zBuf, (unsigned)n);
|
||||
amt -= n;
|
||||
}
|
||||
fclose(in);
|
||||
MD5Final(digest, &ctx);
|
||||
|
Reference in New Issue
Block a user