X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM.pm;h=0b13a2b50dee17d80bacf3d49b9194fb3297d6d6;hb=66e3742da2b4a7354a29a5a877d195f399bd1ee5;hp=60007afaf0ba07a76b7480f7fce4fcbba3da4479;hpb=7775c1094c9b0288b2208925f0250356441f6bfd;p=ZOOM-Perl-moved-to-github.git diff --git a/lib/ZOOM.pm b/lib/ZOOM.pm index 60007af..0b13a2b 100644 --- a/lib/ZOOM.pm +++ b/lib/ZOOM.pm @@ -1,4 +1,4 @@ -# $Id: ZOOM.pm,v 1.27 2006-03-09 12:57:19 mike Exp $ +# $Id: ZOOM.pm,v 1.28 2006-04-03 14:00:00 mike Exp $ use strict; use warnings; @@ -711,22 +711,27 @@ sub _rec { sub render { my $this = shift(); - my $len = 0; - my $string = Net::Z3950::ZOOM::record_get($this->_rec(), "render", $len); - # I don't think we need '$len' at all. ### Probably the Perl-to-C - # glue code should use the value of `len' as well as the opaque - # data-pointer returned, to ensure that the SV contains all of the - # returned data and does not stop at the first NUL character in - # binary data. Carefully check the ZOOM_record_get() documentation. - return $string; + return $this->get("render", @_); } sub raw { my $this = shift(); + return $this->get("raw", @_); +} + +sub get { + my $this = shift(); + my($type, $args) = @_; + + $type = "$type;$args" if defined $args; my $len = 0; - my $string = Net::Z3950::ZOOM::record_get($this->_rec(), "raw", $len); - # See comment about $len in render() + my $string = Net::Z3950::ZOOM::record_get($this->_rec(), $type, $len); + # I don't think we need '$len' at all. ### Probably the Perl-to-C + # glue code should use the value of `len' as well as the opaque + # data-pointer returned, to ensure that the SV contains all of the + # returned data and does not stop at the first NUL character in + # binary data. Carefully check the ZOOM_record_get() documentation. return $string; }