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
>
>

Reply via email to