my $config_file = $0;
$config_file =~ s/\.pl$/.conf/;
+$config_file = $ARGV[0] if (-f $ARGV[0]);
die "FATAL: can't find configuration file '$config_file'" if (! -e $config_file);
my $config;
all2xml.pl - read various file formats and dump XML for SWISH-E
+=head1 SYNOPSYS
+
+ $ all2xml.pl [test.conf]
+
=head1 DESCRIPTION
This command will read ISIS data file using OpenIsis perl module, MARC
this script B<isn't general xml generator> from isis files (isis allready
has something like that). Output of this script is tailor-made for SWISH-E.
+If no configuration file is specified, it will use default one called
+C<all2xml.conf>.
+
=head1 BUGS
Documentation is really lacking. However, in true Open Source spirit, source
<input type="text" name="v1">
<input type="hidden" name="e1" value="5">
+
+What are bit-masks?
+
+Bit-mask is usage of one byte (8 bits) as 8 separate bits with it's own
+meaning (this is simplification, but bear with me for now).
+
+So, 1 = 2^0, thus it's bit 1. With analogy, 2=2^1 and 3=2^0+2^1.
+So, for 1-3 we use two bits and have:
+
+number bits
+1 01 (just begin bit set)
+2 10 (just end bit set)
+3 11 (begin and end bit set)
+
+Thus, with two bits (and values 1-3) we can express should we exact match from
+beginning, end or both. For wild-card match, we use additional bit 3 (2^3 = 4)
+so we have:
+
+number bits exact match
+1 001 begin
+2 010 end
+3 011 begin+end
+4 100 (not used)
+5 101 (4+1) begin+wild-card
+6 110 (4+2) end+wild-card
+7 111 (4+3) begin+end+wild-card
+
} elsif ($format =~ s/^([^A-Z\|]+)(\|[A-Z]{1,2}\|)/$2/) {
$prefix .= $1 if ($display);
} else {
- print STDERR "unparsed format: $format\n";
+ #print STDERR "unparsed format: $format\n";
$prefix .= $format;
$format = "";
}