41 |
-format => 'mail-rfc2822', |
-format => 'mail-rfc2822', |
42 |
-header_default_charset => 'iso-2022-int-1', |
-header_default_charset => 'iso-2022-int-1', |
43 |
-header_default_charset_input => 'iso-2022-int-1', |
-header_default_charset_input => 'iso-2022-int-1', |
44 |
|
-hook_init_fill_options => sub {}, |
45 |
|
-hook_stringify_fill_fields => sub {}, |
46 |
-linebreak_strict => 0, |
-linebreak_strict => 0, |
47 |
-line_length_max => 60, ## For folding |
-line_length_max => 60, ## For folding |
48 |
#ns_default_phuri |
#ns_default_phuri |
118 |
push @new_fields, ($name => $options{$name}); |
push @new_fields, ($name => $options{$name}); |
119 |
} |
} |
120 |
} |
} |
121 |
|
&{ $self->{option}->{hook_init_fill_options} } ($self, $self->{option}); |
122 |
$self->_init_by_format ($self->{option}->{format}, $self->{option}); |
$self->_init_by_format ($self->{option}->{format}, $self->{option}); |
123 |
# Make alternative representations of @header_order. This is used |
# Make alternative representations of @header_order. This is used |
124 |
# for sorting. |
# for sorting. |
134 |
sub _init_by_format ($$\%) { |
sub _init_by_format ($$\%) { |
135 |
my $self = shift; |
my $self = shift; |
136 |
my ($format, $option) = @_; |
my ($format, $option) = @_; |
|
return if $format eq $option->{format}; |
|
137 |
if ($format =~ /http/) { |
if ($format =~ /http/) { |
138 |
$option->{ns_default_phuri} = $self->{ns}->{phname2uri}->{'x-http'}; |
$option->{ns_default_phuri} = $self->{ns}->{phname2uri}->{'x-http'}; |
139 |
if ($format =~ /cgi/) { |
if ($format =~ /cgi/) { |
377 |
my %vopt = %{$vtype->[1]} if ref $vtype->[1]; |
my %vopt = %{$vtype->[1]} if ref $vtype->[1]; |
378 |
if ($vpackage eq ':none:') { |
if ($vpackage eq ':none:') { |
379 |
return $value; |
return $value; |
380 |
} elsif (defined $value) { |
} elsif (length $value) { |
381 |
eval "require $vpackage" or Carp::croak qq{<parse>: $vpackage: Can't load package: $@}; |
eval "require $vpackage" or Carp::croak qq{<parse>: $vpackage: Can't load package: $@}; |
382 |
return $vpackage->parse ($value, |
return $vpackage->parse ($value, |
383 |
-format => $self->{option}->{format}, |
-format => $self->{option}->{format}, |
385 |
-field_name => $name, |
-field_name => $name, |
386 |
-header_default_charset => $self->{option}->{header_default_charset}, |
-header_default_charset => $self->{option}->{header_default_charset}, |
387 |
-header_default_charset_input => $self->{option}->{header_default_charset_input}, |
-header_default_charset_input => $self->{option}->{header_default_charset_input}, |
388 |
|
-internal_charset_name => $self->{option}->{internal_charset_name}, |
389 |
-parse_all => $self->{option}->{parse_all}, |
-parse_all => $self->{option}->{parse_all}, |
390 |
%vopt); |
%vopt); |
391 |
} else { |
} else { |
396 |
-field_name => $name, |
-field_name => $name, |
397 |
-header_default_charset => $self->{option}->{header_default_charset}, |
-header_default_charset => $self->{option}->{header_default_charset}, |
398 |
-header_default_charset_input => $self->{option}->{header_default_charset_input}, |
-header_default_charset_input => $self->{option}->{header_default_charset_input}, |
399 |
|
-internal_charset_name => $self->{option}->{internal_charset_name}, |
400 |
-parse_all => $self->{option}->{parse_all}, |
-parse_all => $self->{option}->{parse_all}, |
401 |
%vopt); |
%vopt); |
402 |
} |
} |
673 |
my %params = @_; |
my %params = @_; |
674 |
my %option = %{$self->{option}}; |
my %option = %{$self->{option}}; |
675 |
$option{format} = $params{-format} if $params{-format}; |
$option{format} = $params{-format} if $params{-format}; |
676 |
$self->_init_by_format ($option{format}, \%option); |
$self->_init_by_format ($option{format}, \%option) |
677 |
|
if $self->{option}->{format} ne $option{format}; |
678 |
for (grep {/^-/} keys %params) {$option{substr ($_, 1)} = $params{$_}} |
for (grep {/^-/} keys %params) {$option{substr ($_, 1)} = $params{$_}} |
679 |
|
## Fill required fields |
680 |
|
my %exist; |
681 |
|
for ($self->field_name_list) {$exist{$_} = 1} |
682 |
|
&{ $option{hook_stringify_fill_fields} } ($self, \%exist, \%option); |
683 |
my @ret; |
my @ret; |
684 |
## RFC 2774 numerical field name prefix |
## RFC 2774 numerical field name prefix |
685 |
my %nprefix; |
my %nprefix; |