<config> tags (which use values from all2xml.conf) are now properly handled
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 14 Mar 2004 11:50:29 +0000 (11:50 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 14 Mar 2004 11:50:29 +0000 (11:50 +0000)
if there is more than one in same swish tag. However, to use <config
type="index"> is useless IMHO, and <config type="index_lookup"> is not
implemented.

git-svn-id: file:///home/dpavlin/private/svn/webpac/trunk@274 13eb9ef6-21d5-0310-b721-a9d68796d827

all2xml.pl

index 7f5ba01..937bb67 100755 (executable)
@@ -150,6 +150,25 @@ sub data2xml {
                }
        }
 
+       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 @@ sub data2xml {
 
                        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 @@ sub data2xml {
                        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);
                        }