sub
handler {
my
$r
=
shift
;
my
$tests
= 4;
$r
->
printf
(
"1..%d\n"
,
$tests
);
$r
->
printf
(
"ok"
);
$r
->
printf
(
" %d\n"
, 1);
my
$fmt
=
"%s%s %d\n"
;
$r
->
printf
(
$fmt
,
qw(o k)
, 2);
my
@a
= (
"ok %d%c"
, 3,
ord
(
"\n"
));
$r
->PRINTF(
@a
);
{
my
$note
=
$r
->notes->get(
"fixup"
) ||
''
;
my
$ok
=
$note
=~
/\
$r
->
printf
can't be called
before
the response phase/;
$r
->
print
(
"not "
)
unless
$ok
;
$r
->
print
(
"ok 4\n"
);
$r
->
print
(
"# either fixup was successful at printing to the\n"
,
"# client (which shouldn't happen before the\n"
,
"# response phase), or the note was lost/never set\n"
)
unless
$ok
;
$r
->notes->clear;
}
Apache::OK;
}
sub
fixup {
my
$r
=
shift
;
eval
{
$r
->
printf
(
"whatever"
) };
$r
->notes->set(
fixup
=>
"$@"
)
if
$@;
Apache::OK;
}
1;