/[suikacvs]/test/cvs
Suika

Diff of /test/cvs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by wakaba, Wed Mar 20 09:56:52 2002 UTC revision 1.8 by wakaba, Sat Mar 23 11:43:06 2002 UTC
# Line 48  when C<stringify>.  (Default = 0) Line 48  when C<stringify>.  (Default = 0)
48    capitalize    => 1,    capitalize    => 1,
49    fold_length   => 70,    fold_length   => 70,
50    mail_from     => 0,    mail_from     => 0,
51    field_type    => {_DEFAULT => 'Message::Field::Unstructured'},    field_type    => {':DEFAULT' => 'Message::Field::Unstructured'},
52  );  );
53  my @field_type_Structured = qw(cancel-lock content-language  my @field_type_Structured = qw(cancel-lock
54    content-transfer-encoding    importance mime-version path precedence user-agent x-cite
55    encrypted followup-to importance mime-version newsgroups    x-face x-mail-count x-msmail-priority x-priority x-uidl xref);
   path precedence user-agent x-cite  
   x-face x-mail-count  
   x-msmail-priority x-priority x-uidl xref);  
56  for (@field_type_Structured)  for (@field_type_Structured)
57    {$DEFAULT{field_type}->{$_} = 'Message::Field::Structured'}    {$DEFAULT{field_type}->{$_} = 'Message::Field::Structured'}
58  my @field_type_Address = qw(approved bcc cc delivered-to envelope-to  my @field_type_Address = qw(approved bcc cc delivered-to disposition-notification-to
59    errors-to from mail-followup-to reply-to resent-bcc    envelope-to
60      errors-to fcc from mail-followup-to mail-followup-cc mail-from reply-to resent-bcc
61    resent-cc resent-to resent-from resent-sender return-path    resent-cc resent-to resent-from resent-sender return-path
62    return-receipt-to sender to x-approved x-beenthere    return-receipt-to sender to x-approved x-beenthere
63    x-complaints-to x-envelope-from x-envelope-sender    x-complaints-to x-envelope-from x-envelope-sender
64    x-envelope-to x-ml-address x-ml-command x-ml-to);    x-envelope-to x-ml-address x-ml-command x-ml-to x-nfrom x-nto);
65  for (@field_type_Address)  for (@field_type_Address)
66    {$DEFAULT{field_type}->{$_} = 'Message::Field::Address'}    {$DEFAULT{field_type}->{$_} = 'Message::Field::Address'}
67  my @field_type_Date = qw(date date-received delivery-date expires  my @field_type_Date = qw(date date-received delivery-date expires
# Line 71  my @field_type_Date = qw(date date-recei Line 69  my @field_type_Date = qw(date date-recei
69  for (@field_type_Date)  for (@field_type_Date)
70    {$DEFAULT{field_type}->{$_} = 'Message::Field::Date'}    {$DEFAULT{field_type}->{$_} = 'Message::Field::Date'}
71  my @field_type_MsgID = qw(content-id in-reply-to message-id  my @field_type_MsgID = qw(content-id in-reply-to message-id
72    references resent-message-id supersedes);    references resent-message-id see-also supersedes);
73  for (@field_type_MsgID)  for (@field_type_MsgID)
74    {$DEFAULT{field_type}->{$_} = 'Message::Field::Structured'}    {$DEFAULT{field_type}->{$_} = 'Message::Field::MsgID'}
75  my @field_type_Received = qw(received x-received);  for (qw(received x-received))
 for (@field_type_Received)  
76    {$DEFAULT{field_type}->{$_} = 'Message::Field::Received'}    {$DEFAULT{field_type}->{$_} = 'Message::Field::Received'}
77  my @field_type_Param = qw(content-disposition content-type  $DEFAULT{field_type}->{'content-type'} = 'Message::Field::ContentType';
78    x-brother x-daughter x-face-type x-respect x-moe  $DEFAULT{field_type}->{'content-disposition'} = 'Message::Field::ContentDisposition';
79    x-syster x-wife);  for (qw(x-face-type))
80  for (@field_type_Param)    {$DEFAULT{field_type}->{$_} = 'Message::Field::ValueParams'}
81    {$DEFAULT{field_type}->{$_} = 'Message::Field::Structured'}  for (qw(accept accept-charset accept-encoding accept-language
82      content-language
83      content-transfer-encoding encrypted followup-to keywords newsgroups
84      x-brother x-daughter x-respect x-moe x-syster x-wife))
85      {$DEFAULT{field_type}->{$_} = 'Message::Field::CSV'}
86  my @field_type_URI = qw(list-archive list-help list-owner  my @field_type_URI = qw(list-archive list-help list-owner
87    list-post list-subscribe list-unsubscribe uri url x-home-page x-http_referer    list-post list-subscribe list-unsubscribe uri url x-home-page x-http_referer
88    x-info x-pgp-key x-ml-url x-uri x-url x-web);    x-info x-pgp-key x-ml-url x-uri x-url x-web);
89  for (@field_type_URI)  for (@field_type_URI)
90    {$DEFAULT{field_type}->{$_} = 'Message::Field::Structured'}    {$DEFAULT{field_type}->{$_} = 'Message::Field::Structured'}
91  my @field_type_ListID = qw(list-id);  for (qw(list-id))
 for (@field_type_ListID)  
92    {$DEFAULT{field_type}->{$_} = 'Message::Field::Structured'}    {$DEFAULT{field_type}->{$_} = 'Message::Field::Structured'}
93  my @field_type_Subject = qw(content-description subject title);  for (qw(content-description subject title x-nsubject))
 for (@field_type_Subject)  
94    {$DEFAULT{field_type}->{$_} = 'Message::Field::Subject'}    {$DEFAULT{field_type}->{$_} = 'Message::Field::Subject'}
95    
96  =head2 Message::Header->new ([%option])  =head2 Message::Header->new ([%option])
# Line 188  sub _field_body ($$$) { Line 187  sub _field_body ($$$) {
187    my ($body, $name) = @_;    my ($body, $name) = @_;
188    unless (ref $body) {    unless (ref $body) {
189      my $type = $self->{option}->{field_type}->{$name}      my $type = $self->{option}->{field_type}->{$name}
190              || $self->{option}->{field_type}->{_DEFAULT};              || $self->{option}->{field_type}->{':DEFAULT'};
191      eval "require $type";      eval "require $type";
192      unless ($body) {      unless ($body) {
193        $body = $type->new (field_name => $name);        $body = $type->new (field_name => $name);
# Line 221  If you don't want duplicated C<field>s, Line 220  If you don't want duplicated C<field>s,
220    
221  =cut  =cut
222    
223  sub add ($$$) {  sub add ($$$;%) {
224    my $self = shift;    my $self = shift;
225    my ($name, $body) = (lc shift, shift);    my ($name, $body) = (lc shift, shift);
226      my %option = @_;
227    return 0 if $name =~ /$REG{UNSAFE_field_name}/;    return 0 if $name =~ /$REG{UNSAFE_field_name}/;
228    $body = $self->_field_body ($body, $name);    $body = $self->_field_body ($body, $name);
229    push @{$self->{field}}, {name => $name, body => $body};    if ($option{prepend}) {
230       unshift @{$self->{field}}, {name => $name, body => $body};
231      } else {
232        push @{$self->{field}}, {name => $name, body => $body};
233      }
234    $body;    $body;
235  }  }
236    
# Line 247  sub replace ($$$) { Line 251  sub replace ($$$) {
251    for my $field (@{$self->{field}}) {    for my $field (@{$self->{field}}) {
252      if ($field->{name} eq $name) {      if ($field->{name} eq $name) {
253        $field->{body} = $body;        $field->{body} = $body;
254        return $self;        return $body;
255      }      }
256    }    }
257    push @{$self->{field}}, {name => $name, body => $body};    push @{$self->{field}}, {name => $name, body => $body};
# Line 359  sub field_type ($$;$) { Line 363  sub field_type ($$;$) {
363      $self->{option}->{field_type}->{$field_name} = $new_field_type;      $self->{option}->{field_type}->{$field_name} = $new_field_type;
364    }    }
365    $self->{option}->{field_type}->{$field_name}    $self->{option}->{field_type}->{$field_name}
366    || $self->{option}->{field_type}->{_DEFAULT};    || $self->{option}->{field_type}->{':DEFAULT'};
367  }  }
368    
369  sub _delete_empty_field ($) {  sub _delete_empty_field ($) {

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.8

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24