X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fndbm%2Fndbm.psi;h=9a0232c5b46df696b566beed19b5fe2e19c6f9cd;hb=93d6b7f962a82b725d1918684297d68221b0b733;hp=139f446b2366bb673f6ededc9a357d19c107c745;hpb=2f5af21b263403997e154658635d6b6e6eaab453;p=m6w6%2Fext-psi diff --git a/tests/ndbm/ndbm.psi b/tests/ndbm/ndbm.psi index 139f446..9a0232c 100644 --- a/tests/ndbm/ndbm.psi +++ b/tests/ndbm/ndbm.psi @@ -1,37 +1,43 @@ +#include + +#pragma lib "gdbm_compat"; +#include + + function psi\dbm_open(string $file, int $open_flags, int $file_mode) : object { let file = pathval($file); let open_flags = intval($open_flags); let file_mode = intval($file_mode); - return to_object(dbm_open); + return dbm_open(file, open_flags, file_mode) as to_object(dbm_open); } -function psi\dbm_store(object $db, array $key, array $data, int $mode) : int { +function psi\dbm_store(object $db, string $key, string $data, int $mode) : int { let db = objval($db); let key = arrval($key, - strval($dptr), - intval($dsize) + dptr = strval($0), + dsize = strlen($0) ); let content = arrval($data, - strval($dptr), - intval($dsize) + dptr = strval($0), + dsize = strlen($0) ); let store_mode = intval($mode); - return to_int(dbm_store); + return dbm_store(db, key, content, store_mode) as to_int(dbm_store); } function psi\dbm_fetch(object $db, array $key) : array { let db = objval($db); let key = arrval($key, - strval($dptr), - intval($dsize) + dptr = strval($dptr), + dsize = intval($dsize) ); - return to_array(dbm_fetch, - to_string(dptr, dsize), - to_int(dsize) + return dbm_fetch(db, key) as to_array(dbm_fetch, + to_int(dsize), + to_string(dptr, dsize) ); } function psi\dbm_close(object $db) : void { let db = objval($db); - return void(dbm_close); + return dbm_close(db) as void(dbm_close); }