use WebPAC::Common;
use base qw/WebPAC::Common/;
-use Text::Iconv;
use Data::Dumper;
+use Encode qw/from_to/;
=head1 NAME
$input->open(
path => '/path/to/database/file',
- code_page => '852',
+ code_page => 'cp852',
limit => 500,
offset => 6000,
lookup => $lookup_obj,
},
);
-By default, C<code_page> is assumed to be C<852>.
+By default, C<code_page> is assumed to be C<cp852>.
C<offset> is optional parametar to position at some offset before reading from database.
if ($arg->{lookup_coderef} && ref($arg->{lookup_coderef}) ne 'CODE');
$log->logcroak("need path") if (! $arg->{'path'});
- my $code_page = $arg->{'code_page'} || '852';
+ my $code_page = $arg->{'code_page'} || 'cp852';
# store data in object
$self->{'input_code_page'} = $code_page;
$self->{$v} = $arg->{$v} if ($arg->{$v});
}
- # create Text::Iconv object
- $self->{iconv} = Text::Iconv->new($code_page,$self->{'encoding'}); ## FIXME remove!
-
my $filter_ref;
my $recode_regex;
my $recode_map;
my ($db, $size) = $self->{open_db}->( $self,
path => $arg->{path},
- filter => sub {
- my ($l,$f_nr) = @_;
- return unless defined($l);
-
- ## FIXME remove iconv!
- $l = $self->{iconv}->convert($l) if ($self->{iconv});
-
- $l =~ s/($recode_regex)/$recode_map->{$1}/g if ($recode_regex && $recode_map);
-
- ## FIXME remove this warning when we are sure that none of API is calling
- ## this wrongly
- warn "filter called without field number" unless ($f_nr);
-
- return $l;
- },
+# filter => sub {
+# my ($l,$f_nr) = @_;
+# return unless defined($l);
+# from_to($l, $code_page, $self->{'encoding'});
+# $l =~ s/($recode_regex)/$recode_map->{$1}/g if ($recode_regex && $recode_map);
+# return $l;
+# },
%{ $arg },
);
my $rec = $self->{fetch_rec}->($self, $db, $pos, sub {
my ($l,$f_nr) = @_;
- return unless defined($l);
- return $l unless ($rec_regex && $f_nr);
+# return unless defined($l);
+# return $l unless ($rec_regex && $f_nr);
+
+warn "## --> $f_nr ## $l\n";
+ # codepage conversion and recode_regex
+# from_to($l, $code_page, $self->{'encoding'});
+ from_to($l, $code_page, 'utf-8');
+ $l =~ s/($recode_regex)/$recode_map->{$1}/g if ($recode_regex && $recode_map);
# apply regexps
if ($rec_regex && defined($rec_regex->{$f_nr})) {
}
}
+warn "## <-- $f_nr ## $l\n";
return $l;
});