This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
User pragmas now accessible from B
[perl5.git] / ext / DB_File / typemap
CommitLineData
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
11u_int T_U_INT
12DB_File T_PTROBJ
13DBT T_dbtdatum
14DBTKEY T_dbtkeydatum
15
16INPUT
17T_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 36T_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
48OUTPUT
49
50T_dbtkeydatum
51 OutputKey($arg, $var)
52T_dbtdatum
53 OutputValue($arg, $var)
a6ed719b
PM
54T_PTROBJ
55 sv_setref_pv($arg, dbtype, (void*)$var);