diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 1998-02-17 13:19:18 +0000 |
---|---|---|
committer | Malcolm Beattie <mbeattie@sable.ox.ac.uk> | 1998-02-20 12:45:08 +0000 |
commit | 6c5989e9d8ff294ed369afe5749cd5b1711c88c5 (patch) | |
tree | 18af64baeddfee734d11147aba3d12c1f056308a /ext | |
parent | a411490c39ef480e7361bd7fb2e9f88c12bf760f (diff) | |
download | perl-6c5989e9d8ff294ed369afe5749cd5b1711c88c5.tar.gz |
DB_File ->length does not work just after tie.
p4raw-id: //depot/perl@553
Diffstat (limited to 'ext')
-rw-r--r-- | ext/DB_File/DB_File.xs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/ext/DB_File/DB_File.xs b/ext/DB_File/DB_File.xs index 91b4dc2ad5..b6da38609d 100644 --- a/ext/DB_File/DB_File.xs +++ b/ext/DB_File/DB_File.xs @@ -533,6 +533,14 @@ DB_File db ; DBT_flags(key) ; DBT_flags(value) ; RETVAL = do_SEQ(db, key, value, R_LAST) ; + if (RETVAL < 0 && errno == EBADF) + { + recno_t oops = -1; + key.data = &oops; + key.size = sizeof(oops); + db_get(db, key, value, 0); + RETVAL = do_SEQ(db, key, value, R_LAST) ; + } if (RETVAL == 0) RETVAL = *(I32 *)key.data ; else /* No key means empty file */ |