Commit | Line | Data |
3e61d65a |
1 | #include "EXTERN.h" |
2 | #include "perl.h" |
3 | #include "XSUB.h" |
4 | |
0314122a |
5 | |
6 | MODULE = XS::APItest:Hash PACKAGE = XS::APItest::Hash |
7 | |
8 | bool |
9 | exists(hash, key_sv) |
10 | PREINIT: |
11 | STRLEN len; |
12 | const char *key; |
13 | INPUT: |
14 | HV *hash |
15 | SV *key_sv |
16 | CODE: |
17 | key = SvPV(key_sv, len); |
18 | RETVAL = hv_exists(hash, key, SvUTF8(key_sv) ? -len : len); |
19 | OUTPUT: |
20 | RETVAL |
21 | |
22 | =pod |
23 | |
24 | sub TIEHASH { bless {}, $_[0] } |
25 | sub STORE { $_[0]->{$_[1]} = $_[2] } |
26 | sub FETCH { $_[0]->{$_[1]} } |
27 | sub FIRSTKEY { my $a = scalar keys %{$_[0]}; each %{$_[0]} } |
28 | sub NEXTKEY { each %{$_[0]} } |
29 | sub EXISTS { exists $_[0]->{$_[1]} } |
30 | sub DELETE { delete $_[0]->{$_[1]} } |
31 | sub CLEAR { %{$_[0]} = () } |
32 | |
33 | =cut |
34 | |
3e61d65a |
35 | MODULE = XS::APItest PACKAGE = XS::APItest |
36 | |
37 | PROTOTYPES: DISABLE |
38 | |
39 | void |
40 | print_double(val) |
41 | double val |
42 | CODE: |
43 | printf("%5.3f\n",val); |
44 | |
45 | int |
46 | have_long_double() |
47 | CODE: |
48 | #ifdef HAS_LONG_DOUBLE |
49 | RETVAL = 1; |
50 | #else |
51 | RETVAL = 0; |
52 | #endif |
cabb36f0 |
53 | OUTPUT: |
54 | RETVAL |
3e61d65a |
55 | |
56 | void |
57 | print_long_double() |
58 | CODE: |
59 | #ifdef HAS_LONG_DOUBLE |
fc0bf671 |
60 | # if defined(PERL_PRIfldbl) && (LONG_DOUBLESIZE > DOUBLESIZE) |
3e61d65a |
61 | long double val = 7.0; |
62 | printf("%5.3" PERL_PRIfldbl "\n",val); |
63 | # else |
64 | double val = 7.0; |
65 | printf("%5.3f\n",val); |
66 | # endif |
67 | #endif |
68 | |
69 | void |
3e61d65a |
70 | print_int(val) |
71 | int val |
72 | CODE: |
73 | printf("%d\n",val); |
74 | |
75 | void |
76 | print_long(val) |
77 | long val |
78 | CODE: |
79 | printf("%ld\n",val); |
80 | |
81 | void |
82 | print_float(val) |
83 | float val |
84 | CODE: |
85 | printf("%5.3f\n",val); |
9d911683 |
86 | |
87 | void |
88 | print_flush() |
89 | CODE: |
90 | fflush(stdout); |