--- trunk/all2xml.pl 2004/03/12 15:06:58 263 +++ trunk/all2xml.pl 2004/03/14 11:50:29 274 @@ -150,6 +150,25 @@ } } + sub init_visible_type($) { + my $type = shift; + + # swish, swish_exact, display, index, index_lookup + # swish and display defaults + my ($s,$se,$d,$i,$il) = (1,0,1,0,0); + if (lc($type) eq "display") { + $s = 0; + } elsif (lc($type) eq "swish") { + $d = 0; + } elsif (lc($type) eq "index") { + ($s,$se,$d,$i) = (0,1,0,1); + } elsif (lc($type) eq "swish_exact") { + ($s,$se,$d,$i) = (0,1,0,0); + } elsif (lc($type) =~ /^lookup/) { + ($s,$se,$d,$i,$il) = (0,1,0,0,1); + } + return ($s,$se,$d,$i,$il); + } # begin real work: go field by field foreach my $field (@sorted_tags) { @@ -189,14 +208,7 @@ my $repeat_off = 0; # init repeatable offset - # swish, swish_exact, display, index, index_lookup - # swish and display defaults - my ($s,$se,$d,$i,$il) = (1,0,1,0,0); - $s = 0 if (lc($x->{type}) eq "display"); - $d = 0 if (lc($x->{type}) eq "swish"); - ($s,$se,$d,$i) = (0,1,0,1) if (lc($x->{type}) eq "index"); - ($s,$se,$d,$i) = (0,1,0,0) if (lc($x->{type}) eq "swish_exact"); - ($s,$se,$d,$i,$il) = (0,1,0,0,1) if (lc($x->{type}) =~ /^lookup/); + my ($s,$se,$d,$i,$il) = init_visible_type($x->{type}); # what will separate last line from this one? if ($display_data && $x->{append}) { @@ -420,16 +432,12 @@ my $delimiter = x($x->{delimiter}) || ' '; my $val = $cfg->val($database, x($x->{content})); - my ($s,$d,$i) = (1,1,0); # swish, display default - $s = 0 if (lc($x->{type}) eq "display"); - $d = 0 if (lc($x->{type}) eq "swish"); - # no support for swish exact in config. - # IMHO, it's useless - ($s,$d,$i) = (0,0,1) if (lc($x->{type}) eq "index"); + # FIXME index_lookup is not supported! + my ($s,$se,$d,$i,$il) = init_visible_type($x->{type}); if ($val) { $display_data .= $delimiter.$val if ($d); - $swish_data .= $val if ($s); + $swish_data .= " ".$val if ($s); $index->insert($field, $val, $path) if ($i); }