Branch Coverage

blib/lib/Sdict.pm
Criterion Covered Total %
branch 48 592 8.1


line true false branch
148 0 1 if ($@ or not $cpu)
152 0 1 if $cpu eq '4321' or $cpu eq '87654321'
155 0 1 if $$self{'big_endian'}
212 20 0 if $Sdict::debug
277 0 0 if $compile and $decompile
278 0 0 unless $compile or $decompile or $analyze or $printinfo
279 0 0 if $infile eq ''
281 0 0 unless defined $outfile
283 0 0 if ($outfile eq '')
284 0 0 unless defined $analyze or defined $printinfo
290 0 0 if $compile
291 0 0 if $decompile
292 0 0 if $analyze
293 0 0 if $printinfo
296 0 0 unless $$class{'action'}
304 0 0 if (not $compressor) { }
0 0 elsif ($compressor eq 'none') { }
0 0 elsif ($compressor eq 'gzip') { }
0 0 elsif ($compressor eq 'bzip2') { }
314 0 0 if ($@)
323 0 0 if ($@)
337 0 0 if (not $slevels) { }
344 0 0 if ($$class{'slevels'} < 3 or $$class{'slevels'} > 15)
350 0 0 if ($forcetolowercase and $lowercasealias)
355 0 0 if (not $lowercasealias) { }
362 0 0 if (not $forcetolowercase) { }
369 0 0 if (not $disableduplicates) { }
376 0 0 if (not $images_dir) { }
383 0 0 if (not $sounds_dir) { }
404 0 0 if ($$class{'action'} eq 'compile') { }
0 0 elsif ($$class{'action'} eq 'decompile') { }
0 0 elsif ($$class{'action'} eq 'analyze') { }
427 0 0 unless $$class{'convertcharset'}
429 0 0 $$class{'header'}{'w_lang'} eq 'ru' ? :
438 0 0 unless $class->load_dictionary_fast
469 0 2 if ($word eq '')
474 0 2 unless (defined $$class{'header'})
488 0 2 unless $len
492 2 4 if ($i == 1) { }
2 2 elsif ($i == 2) { }
504 1 5 if (substr($wo, 0, $i) eq substr($subw, 0, $i))
512 1 1 if ($search_pos < 0)
527 0 1 if ($nw eq '')
535 0 1 if (substr($word_u, 0, 3) ne substr($nw, 0, 3))
540 1 0 if ($word_u eq $nw)
547 0 1 if $art eq ''
560 0 0 unless $class->read_header
563 0 0 unless $class->read_full_index
566 0 0 unless $class->read_short_index
576 0 1 unless $class->read_header
581 0 1 unless $class->read_short_index_fast
602 0 3 unless (sysseek $file, $fpos, 0)
607 0 3 unless (sysread $file, $hdr, 8, 0)
614 0 3 unless ($next)
623 0 3 if ($wlen < 0)
628 0 3 unless (sysread $file, $word, $wlen, 0)
649 0 0 unless (sysseek $file, $fpos, 0)
654 0 0 unless (sysread $file, $hdr, 8, 0)
661 0 0 unless ($prev)
666 0 0 unless (sysseek $file, $fpos - $prev, 0)
671 0 0 unless (sysread $file, $hdr, 8, 0)
682 0 0 if ($wlen < 0)
687 0 0 unless (sysread $file, $word, $wlen, 0)
725 0 1 unless (sysseek $file, $$class{'header'}{'sindex_ptr'}, 0)
730 0 1 unless (sysread $file, $sindex, $sindex_len, 0)
739 0 1 if ($$class{'compressor'} eq 'none') { }
1 0 elsif ($$class{'compressor'} eq 'gzip') { }
0 0 elsif ($$class{'compressor'} eq 'bzip2') { }
748 0 1 unless ($sindex_d)
758 0 0 unless ($sindex_d)
800 3 0 if (length $sword_u == 1) { }
0 0 elsif (length $sword_u == 2) { }
0 0 elsif (length $sword_u == 3) { }
810 0 0 if ($$class{'slevels'} > 3) { }
865 0 0 unless (open OF, "> $outfile")
937 0 1 unless (sysopen IF, $infile, 0)
942 0 1 unless (sysread IF, $hdr, 52, 0)
949 0 1 if (substr($hdr, 0, 4) ne 'sdct')
975 0 1 if ($compr eq '0') { }
1 0 elsif ($compr eq '1') { }
0 0 elsif ($compr eq '2') { }
991 1 0 if ($compr_method eq 'gzip') { }
0 0 elsif ($compr_method eq 'bzip2') { }
993 0 1 if ($@)
1000 0 0 if ($@)
1016 0 1 unless ($title)
1022 0 1 unless ($copyright)
1028 0 1 if ($version eq '')
1063 0 1 if (unpack('L', substr($hdr, $Sdict::HDR2_SIG_POS, 4)) == 4061299974)
1069 0 0 unless (sysseek IF, $embedded_offset, 0)
1074 0 0 unless (sysread IF, $embedded_total, 4, 0)
1106 0 0 unless (sysseek $file, $fpos, 0)
1114 0 0 unless (sysread $file, $hdr, 8, 0)
1124 0 0 if ($next == 0)
1129 0 0 if ($wlen < 0)
1134 0 0 unless (sysread $file, $word, $wlen, 0)
1164 0 0 unless (sysseek $file, $$class{'header'}{'sindex_ptr'}, 0)
1169 0 0 unless (sysread $file, $sindex, $sindex_len, 0)
1174 0 0 if ($$class{'compressor'} eq 'none') { }
0 0 elsif ($$class{'compressor'} eq 'gzip') { }
0 0 elsif ($$class{'compressor'} eq 'bzip2') { }
1183 0 0 unless ($sindex_d)
1193 0 0 unless ($sindex_d)
1226 0 0 unless (sysseek $file, $$class{'header'}{'f_index_pos'} + $word_ptr, 0)
1236 0 0 unless (sysread $file, $fiunit, 8, 0)
1244 0 0 unless (sysread $file, $word, $len, 0)
1278 0 0 if ($art eq '')
1301 0 4 unless (sysseek $file, $fpos, 0)
1306 0 4 unless (sysread $file, $unit, 4, 0)
1311 0 4 unless (sysread $file, $val, unpack('L', $unit), 0)
1332 0 0 unless $class->get_infile_headers
1335 0 0 unless $class->create_header
1338 0 0 unless $class->make_articles
1341 0 0 unless $class->make_full_index
1346 0 0 if (not exists $$class{'analyze_max'} or $$class{'analyze_max'} < 3 or $$class{'analyze_max'} > 15) { }
1362 0 0 unless $class->make_short_index
1375 0 0 unless $class->cleanups
1419 0 0 if $i++ > 3
1434 0 0 if ($$class{'slevels'} != 3)
1436 0 0 if (-t STDIN and -t STDOUT)
1448 0 0 unless $class->get_infile_headers
1451 0 0 unless $class->create_header
1454 0 0 unless $class->make_articles
1457 0 0 unless $class->make_full_index
1460 0 0 unless $class->make_short_index
1463 0 0 unless $class->correct_header
1466 0 0 unless $class->join_files
1469 0 0 unless $class->cleanups
1481 0 0 unless (open F, "< $file")
1489 0 0 if /^\#/
1490 0 0 if /^\s*$/
1491 0 0 if (/^
/)
1492 0 0 if m[^]
1493 0 0 unless $fl
1494 0 0 unless /\s=\s/
1498 0 0 if $p eq '' or $v eq ''
1504 0 0 unless (defined $h{'title'})
1509 0 0 unless (defined $h{'copyright'})
1514 0 0 unless (defined $h{'w_lang'})
1519 0 0 unless (defined $h{'a_lang'})
1524 0 0 unless (defined $h{'version'})
1533 0 0 if (exists $h{'charset'})
1534 0 0 unless (grep /^$h{'charset'}$/, 'Encode'->encodings(':all'))
1539 0 0 if ($h{'charset'} eq 'utf8')
1544 0 0 if (exists $h{'charset'})
1615 0 0 unless (open F, ">$oufile")
1636 0 0 unless (sysopen HDR, $$class{'outfile'}, 2)
1641 0 0 if (not sysseek(HDR, $Sdict::WORDS_TOT_PTR_POS, 0)) { }
1650 0 0 if (not sysseek(HDR, $Sdict::SINDEX_TOT_PTR_POS, 0)) { }
1659 0 0 if (not sysseek(HDR, $Sdict::SINDEX_PTR_POS, 0)) { }
1668 0 0 if (not sysseek(HDR, $Sdict::FINDEX_PTR_POS, 0)) { }
1681 0 0 if (not sysseek(HDR, $Sdict::ARTICLES_PTR_POS, 0)) { }
1697 0 0 if ($$class{'parse_embedded'} and $$class{'embedded_total'})
1701 0 0 unless (sysseek HDR, $Sdict::HDR2_SIG_POS, 0)
1752 0 0 if ($$class{'lowercasealias'} or $$class{'forcetolowercase'})
1754 0 0 if ($@)
1763 0 0 unless (open DF, ">$temp_afile")
1772 0 0 if ($$class{'parse_embedded'})
1775 0 0 unless (open BFI, ">$temp_bin1_ndx")
1785 0 0 if ($$class{'parse_embedded'})
1788 0 0 unless (open BF, ">$temp_bin1")
1801 0 0 unless (open SF, "< $infile")
1811 0 0 if /^\#/
1812 0 0 if /^\s*$/
1813 0 0 if m[^]
1821 0 0 if /^\#/
1822 0 0 if /^\s*$/
1824 0 0 unless /$sep/
1827 0 0 if (exists $$class{'header'}{'charset'})
1832 0 0 if ($word eq '' or $art eq '')
1838 0 0 if (length $word > 65527)
1843 0 0 if (length $art > 4294967291)
1853 0 0 if ($$class{'parse_embedded'})
1866 0 0 unless ($img_filename)
1871 0 0 if (exists $h_img{$img_filename}) { }
1883 0 0 unless ($image_unit_len)
1913 0 0 unless ($snd_filename)
1918 0 0 if (exists $h_snd{$snd_filename}) { }
1930 0 0 unless ($sound_unit_len)
1959 0 0 if ($$class{'forcetolowercase'})
1963 0 0 if ($word eq '')
1974 0 0 if (exists $words_hash{$word})
1975 0 0 if ($$class{'disableduplicates'})
1999 0 0 if ($$class{'parse_embedded'} and $$class{'embedded_total'})
2019 0 0 if ($$class{'parse_embedded'})
2027 0 0 if ($$class{'lowercasealias'})
2034 0 0 if ($alword ne '')
2038 0 0 if ($alword ne $ww and not exists $words_hash{$alword})
2051 0 0 if ($$class{'lowercasealias'})
2060 0 0 if $$class{'sort'}
2075 0 0 if ($snd_type == 32) { }
2079 0 0 unless (open SNF, "< $file")
2095 0 0 unless ($snd_len)
2124 0 0 if ($file =~ /mp3/i)
2140 0 0 if ($try_djvu_first and $img_type == 1 || $img_type == 2 || $img_type == 3)
2150 0 0 if (open IMF, "< $file2") { }
2162 0 0 if ($img_type == 1 or $img_type == 2 or $img_type == 3) { }
0 0 elsif ($img_type == 1001) { }
2168 0 0 unless (open IMF, "< $file")
2183 0 0 unless (@img_res and $img_res[0] and $img_res[1])
2201 0 0 unless $djvu
2203 0 0 unless ($$djvu{'width'} and $$djvu{'height'})
2212 0 0 if (defined $$djvu{'bg44'})
2217 0 0 if (defined $$djvu{'sjbz'})
2222 0 0 if ($img_type == 1001)
2252 0 0 if ($file =~ /jp.?g/i)
2256 0 0 if ($file =~ /gif/i)
2260 0 0 if ($file =~ /png/i)
2264 0 0 if ($file =~ /djv.?/i)
2275 0 0 unless (open IDENTITY, "identify $file |")
2284 0 0 if (/$file/)
2306 0 0 if ($$class{'sort'} eq 'numeric') { }
0 0 elsif ($$class{'sort'} ne 'Unicode::Collate') { }
2316 0 0 unless $Sdict::sort_table_pl =~ /\.pl$/
2322 0 0 if ($@)
2329 0 0 if ($@)
2344 0 0 if ($@)
2353 0 0 unless ($collator)
2363 0 0 unless (@sorted)
2390 0 0 unless ($sorter->load_table('latin-cyrillic.tbl'))
2397 0 0 unless (@sorted)
2425 0 0 unless (sysopen FIF, $temp_fi_file, 66)
2492 0 0 unless (open SIF, "> $temp_si_file")
2499 0 0 unless (sysopen IF, $$class{'temp_fi_file'}, 0)
2514 0 0 unless (sysread IF, $record, 8, 0)
2525 0 0 unless ($cur_word_len)
2561 0 0 if (exists $words_hash_short{$cur_word_p_sub})
2580 0 0 if (length $cur_word_p_sub < $slev_total)
2614 0 0 if ($ucs > 1940000)
2639 0 0 if ($$class{'parse_embedded'} and $$class{'embedded_total'})
2666 0 0 if ($$class{'parse_embedded'})
2686 0 0 if ($$class{'compressor'} eq 'none') { }
0 0 elsif ($$class{'compressor'} eq 'gzip') { }
0 0 elsif ($$class{'compressor'} eq 'bzip2') { }
2696 0 0 unless ($ctext)
2710 0 0 unless ($ctext)
2730 0 4 if ($$class{'compressor'} eq 'none') { }
4 0 elsif ($$class{'compressor'} eq 'gzip') { }
0 0 elsif ($$class{'compressor'} eq 'bzip2') { }
2761 0 0 if ($$class{'compressor'} eq 'none') { }
0 0 elsif ($$class{'compressor'} eq 'gzip') { }
0 0 elsif ($$class{'compressor'} eq 'bzip2') { }
2766 0 0 unless (open F, "< $file")
2775 0 0 unless (length $content)
2784 0 0 unless (length $content_c)
2791 0 0 unless (open F, "> $file")
2804 0 0 unless (open F, "< $file")
2812 0 0 unless (length $content)
2821 0 0 unless (length $content_c)
2828 0 0 unless (open F, "> $file")
2849 0 0 unless ($$class{'header'}{'dct_v2'})
2854 0 0 if (not defined $imgno or $imgno + 1 > $$class{'header'}{'embedded_total'})
2862 0 0 unless (sysseek $file, $$class{'header'}{'embedded_offset'} + 4 * ($imgno + 1), 0)
2868 0 0 unless (sysread $file, $tmp, 4, 0)
2880 0 0 unless (sysseek $file, $ifoff, 0)
2886 0 0 unless (sysread $file, $tmp, 4, 0)
2894 0 0 unless (sysread $file, $tmp, 5, 0)
2908 0 0 unless (sysread $file, ${$$img{'raw'};}, $img_len, 0)
2919 0 0 if ($$img{'type'} == 1 or $$img{'type'} == 2 or $$img{'type'} == 3)
2926 0 0 if ($$img{'type'} != 4 and $$img{'type'} != 5)
2932 0 0 if ($$img{'type'} != 4 and $$img{'type'} != 5)
2939 0 0 if ($$img{'type'} == 4) { }
0 0 elsif ($$img{'type'} == 5) { }
2950 0 0 unless (open T1, "> $file_tmp1")
2967 0 0 unless (open T2, "< $file_tmp2")
2990 0 0 unless ($$class{'header'}{'dct_v2'})
2995 0 0 if (not defined $sndno or $sndno + 1 > $$class{'header'}{'embedded_total'})
3003 0 0 unless (sysseek $file, $$class{'header'}{'embedded_offset'} + 4 * ($sndno + 1), 0)
3009 0 0 unless (sysread $file, $tmp, 4, 0)
3021 0 0 unless (sysseek $file, $ifoff, 0)
3027 0 0 unless (sysread $file, $tmp, 4, 0)
3035 0 0 unless (sysread $file, $tmp, 3, 0)
3048 0 0 unless (sysread $file, ${$$snd{'raw'};}, $snd_file_len, 0)
3078 0 0 unless (open IF, "< $file")
3083 0 0 unless (open OF, ">> $ofile")
3111 0 0 unless (sysopen DJV, $file, 0)
3117 0 0 unless (sysread DJV, $buf, 4, 0)
3123 0 0 if ($buf eq 'AT&T')
3124 0 0 unless (sysread DJV, $buf, 4, 0)
3131 0 0 if ($buf ne 'FORM')
3137 0 0 unless (sysread DJV, $buf, 4, 0)
3145 0 0 unless (sysread DJV, $buf, 8, 0)
3151 0 0 if ($buf ne 'DJVUINFO')
3158 0 0 unless (sysread DJV, $buf, 4, 0)
3166 0 0 unless (sysread DJV, $buf, 10, 0)
3173 0 0 unless ($w and $h)
3187 0 0 unless (sysread(DJV, $chunk, 4, 0) == 4)
3193 0 0 unless (sysread DJV, $buf2, 4, 0)
3201 0 0 unless (sysread DJV, $chunk_raw, $chunk_len, 0)
3209 0 0 if (grep /$chunk/, @bad_chunks)
3215 0 0 if ($chunk eq 'Sjbz')
3220 0 0 if ($chunk eq 'BG44')
3224 0 0 if (sysseek(DJV, 0, 1) & 1)
3231 0 0 if (defined @{$$djvu{'bg44'};} and @{$$djvu{'bg44'};})
3239 0 0 unless $slices
3257 0 0 if $slices > 255