Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / B::Hooks::OP::Check.3pm
1 .\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el       .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 .    de IX
53 .    tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 .    nr % 0
56 .    rr F
57 .\}
58 .el \{\
59 .    de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
65 .    \" fudge factors for nroff and troff
66 .if n \{\
67 .    ds #H 0
68 .    ds #V .8m
69 .    ds #F .3m
70 .    ds #[ \f1
71 .    ds #] \fP
72 .\}
73 .if t \{\
74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 .    ds #V .6m
76 .    ds #F 0
77 .    ds #[ \&
78 .    ds #] \&
79 .\}
80 .    \" simple accents for nroff and troff
81 .if n \{\
82 .    ds ' \&
83 .    ds ` \&
84 .    ds ^ \&
85 .    ds , \&
86 .    ds ~ ~
87 .    ds /
88 .\}
89 .if t \{\
90 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 .    \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 .    \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 .    \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 .    ds : e
114 .    ds 8 ss
115 .    ds o a
116 .    ds d- d\h'-1'\(ga
117 .    ds D- D\h'-1'\(hy
118 .    ds th \o'bp'
119 .    ds Th \o'LP'
120 .    ds ae ae
121 .    ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "B::Hooks::OP::Check 3"
127 .TH B::Hooks::OP::Check 3 "2009-07-06" "perl v5.8.7" "User Contributed Perl Documentation"
128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 B::Hooks::OP::Check \- Wrap OP check callbacks
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 .Vb 1
137 \&    # include "hook_op_check.h"
138 \&
139 \&    STATIC OP *my_const_check_op (pTHX_ OP *op, void *user_data) {
140 \&        /* ... */
141 \&        return op;
142 \&    }
143 \&
144 \&    STATIC hook_op_check_id my_hook_id = 0;
145 \&
146 \&    void
147 \&    setup ()
148 \&        CODE:
149 \&            my_hook_id = hook_op_check (OP_CONST, my_const_check_op, NULL);
150 \&
151 \&    void
152 \&    teardown ()
153 \&        CODE:
154 \&            hook_op_check_remove (OP_CONST, my_hook_id);
155 .Ve
156 .SH "DESCRIPTION"
157 .IX Header "DESCRIPTION"
158 This module provides a c api for \s-1XS\s0 modules to hook into the callbacks of
159 \&\f(CW\*(C`PL_check\*(C'\fR.
160 .PP
161 ExtUtils::Depends is used to export all functions for other \s-1XS\s0 modules to
162 use. Include the following in your Makefile.PL:
163 .PP
164 .Vb 5
165 \&    my $pkg = ExtUtils::Depends\->new(\*(AqYour::XSModule\*(Aq, \*(AqB::Hooks::OP::Check\*(Aq);
166 \&    WriteMakefile(
167 \&        ... # your normal makefile flags
168 \&        $pkg\->get_makefile_vars,
169 \&    );
170 .Ve
171 .PP
172 Your \s-1XS\s0 module can now include \f(CW\*(C`hook_op_check.h\*(C'\fR.
173 .SH "TYPES"
174 .IX Header "TYPES"
175 .SS "typedef \s-1OP\s0 *(*hook_op_check_cb) (pTHX_ \s-1OP\s0 *, void *);"
176 .IX Subsection "typedef OP *(*hook_op_check_cb) (pTHX_ OP *, void *);"
177 Type that callbacks need to implement.
178 .SS "typedef \s-1UV\s0 hook_op_check_id"
179 .IX Subsection "typedef UV hook_op_check_id"
180 Type to identify a callback.
181 .SH "FUNCTIONS"
182 .IX Header "FUNCTIONS"
183 .SS "hook_op_check_id hook_op_check (opcode type, hook_op_check_cb cb, void *user_data)"
184 .IX Subsection "hook_op_check_id hook_op_check (opcode type, hook_op_check_cb cb, void *user_data)"
185 Register the callback \f(CW\*(C`cb\*(C'\fR to be called after the \f(CW\*(C`PL_check\*(C'\fR function for
186 opcodes of the given \f(CW\*(C`type\*(C'\fR. \f(CW\*(C`user_data\*(C'\fR will be passed to the callback as
187 the last argument. Returns an id that can be used to remove the callback later
188 on.
189 .SS "void *hook_op_check_remove (opcode type, hook_op_check_id id)"
190 .IX Subsection "void *hook_op_check_remove (opcode type, hook_op_check_id id)"
191 Remove the callback identified by \f(CW\*(C`id\*(C'\fR. Returns the userdata the callback had.
192 .SH "AUTHOR"
193 .IX Header "AUTHOR"
194 Florian Ragwitz <rafl@debian.org>
195 .SH "COPYRIGHT AND LICENSE"
196 .IX Header "COPYRIGHT AND LICENSE"
197 Copyright (c) 2008 Florian Ragwitz
198 .PP
199 This module is free software.
200 .PP
201 You may distribute this code under the same terms as Perl itself.