Patch from Michael Wood to do the right thing on data export when there are

deleted rows present.

Put checks in mdb-dump for presence of a valid file.
This commit is contained in:
brianb
2000-08-02 03:48:49 +00:00
parent a23867cd2e
commit e05970d711
2 changed files with 23 additions and 3 deletions

View File

@@ -21,7 +21,14 @@ int main(int argc, char **argv)
int pg=0;
char addr[10];
in = fopen(argv[1],"r");
if (argc < 2) {
fprintf(stderr, "Usage: mdb-dump <filename>\n\n");
exit(1);
}
if ((in = fopen(argv[1],"r"))==NULL) {
fprintf(stderr, "Couldn't open file %s\n", argv[1]);
exit(1);
}
while (length = fread(data,1,16,in)) {
sprintf(addr, "%06x", i);
if (!strcmp(&addr[3],"000") || ! strcmp(&addr[3],"800")) {

View File

@@ -33,14 +33,27 @@ MdbColumn *col;
}
int mdb_find_end_of_row(MdbHandle *mdb, int row)
{
int rows, row_end;
int rows, row_start, row_end, i;
rows = mdb_get_int16(mdb,8);
if (row==0)
row_end = mdb->pg_size - 1; /* end of page */
else
else {
row_end = mdb_get_int16(mdb, (10 + (row-1) * 2)) - 1;
for (i = row - 1; i > 0; i--) {
row_start = mdb_get_int16(mdb, (10 + i * 2));
if (!(row_start & 0x8000)) {
break;
}
}
if (i == 0) {
row_end = mdb->pg_size - 1;
} else {
row_end = row_start - 1;
}
}
return row_end;
}
static int mdb_is_null(unsigned char *null_mask, int col_num)