Thanks Rob a lot for the great example! Wish it's included in the cookbook.
On Sun, Apr 6, 2014 at 7:53 PM, <sisyph...@optusnet.com.au> wrote: > > > -----Original Message----- From: sisyph...@optusnet.com.au > > I don't know (off the top of my head) how to concatenate binary strings >> in C ... >> > > Thankfully, perl's API provides a simple solution: > > > ############################## > > use warnings; > use strict; > use Devel::Peek; > > use Inline C => Config => > BUILD_NOISY => 1, > ; > > use Inline C => <<'EOC'; > > SV * foo(SV * in) { > SV * ret; > > STRLEN len; > char *tmp = SvPV(in, len); > ret = newSVpv(tmp, len); > sv_catpvn(ret, tmp, len); > return ret; > > } > > EOC > > my $in = 'hello' . "\x00" . 'world'; > my $ret = foo($in); > > $ret eq $in . $in ? print "\nok 1\n\n" > > : print "\nnot ok 1\n\n"; > > Dump($in); > print "\n"; > Dump ($ret); > ############################## > > Cheers, > Rob > >