Commit | Line | Data |
---|---|---|
1f70e1ea | 1 | # typemap for Perl 5 interface to Berkeley |
a0d0e21e | 2 | # |
6ca2e664 | 3 | # written by Paul Marquess <Paul.Marquess@btinternet.com> |
9c095db2 PM |
4 | # last modified 20th June 2004 |
5 | # version 1.809 | |
a0d0e21e LW |
6 | # |
7 | #################################### DB SECTION | |
8 | # | |
9 | # | |
10 | ||
11 | u_int T_U_INT | |
12 | DB_File T_PTROBJ | |
13 | DBT T_dbtdatum | |
14 | DBTKEY T_dbtkeydatum | |
15 | ||
16 | INPUT | |
17 | T_dbtkeydatum | |
dcdb9d1f RGS |
18 | { |
19 | SV * my_sv = $arg; | |
20 | DBM_ckFilter(my_sv, filter_store_key, \"filter_store_key\"); | |
039d031f | 21 | DBT_clear($var) ; |
dcdb9d1f | 22 | SvGETMAGIC(my_sv) ; |
9c095db2 | 23 | if (db->type == DB_RECNO) { |
dcdb9d1f RGS |
24 | if (SvOK(my_sv)) |
25 | Value = GetRecnoKey(aTHX_ db, SvIV(my_sv)) ; | |
9c095db2 PM |
26 | else |
27 | Value = 1 ; | |
28 | $var.data = & Value; | |
29 | $var.size = (int)sizeof(recno_t); | |
30 | } | |
dcdb9d1f RGS |
31 | else if (SvOK(my_sv)) { |
32 | $var.data = SvPVbyte(my_sv, PL_na); | |
9c095db2 | 33 | $var.size = (int)PL_na; |
a0d0e21e | 34 | } |
dcdb9d1f | 35 | } |
a0d0e21e | 36 | T_dbtdatum |
dcdb9d1f RGS |
37 | { |
38 | SV * my_sv = $arg; | |
39 | DBM_ckFilter(my_sv, filter_store_value, \"filter_store_value\"); | |
039d031f | 40 | DBT_clear($var) ; |
dcdb9d1f RGS |
41 | SvGETMAGIC(my_sv) ; |
42 | if (SvOK(my_sv)) { | |
43 | $var.data = SvPVbyte(my_sv, PL_na); | |
cbc5248d PM |
44 | $var.size = (int)PL_na; |
45 | } | |
dcdb9d1f | 46 | } |
a0d0e21e LW |
47 | |
48 | OUTPUT | |
49 | ||
50 | T_dbtkeydatum | |
51 | OutputKey($arg, $var) | |
52 | T_dbtdatum | |
53 | OutputValue($arg, $var) | |
a6ed719b PM |
54 | T_PTROBJ |
55 | sv_setref_pv($arg, dbtype, (void*)$var); |