line |
true |
false |
branch |
169
|
0 |
0 |
unless $stream |
178
|
0 |
0 |
if $err |
181
|
0 |
0 |
if $err |
182
|
0 |
0 |
if $ipaddr |
201
|
0 |
0 |
if (keys %{$$server{'host'};} > 1) { } |
|
0 |
0 |
elsif (@{$App::Phoebe::server->{'wiki_space'};}) { } |
226
|
0 |
0 |
if ($lang) { } |
245
|
0 |
0 |
unless $data->{'upload'} ||= is_upload($stream, $data->{'request'}) |
248
|
0 |
0 |
if ($actual == $size) { } |
|
0 |
0 |
elsif ($actual > $size) { } |
271
|
0 |
0 |
unless $@ |
284
|
0 |
0 |
if ($type ne 'text/plain') { } |
|
0 |
0 |
elsif ($length == 0) { } |
|
0 |
0 |
elsif (utf8::decode($data)) { } |
285
|
0 |
0 |
if ($length == 0) { } |
312
|
0 |
0 |
if (-e $lock) |
315
|
0 |
0 |
if -e $lock and $age > 5 |
317
|
0 |
0 |
if (mkdir $lock) { } |
|
0 |
0 |
elsif ($count > 25) { } |
320
|
0 |
0 |
if ($@) |
348
|
0 |
0 |
if (-e $file) { } |
350
|
0 |
0 |
if ($old eq $text) |
355
|
0 |
0 |
unless -d "$dir/keep" |
356
|
0 |
0 |
if (-d "$dir/keep/$id") { } |
358
|
0 |
0 |
if /^(\d+)\.gmi$/u and $1 > $revision |
368
|
0 |
0 |
if (not open(my $fh, '>>:encoding(UTF-8)', $index)) { } |
378
|
0 |
0 |
if (not open(my $fh, '>>:encoding(UTF-8)', $changes)) { } |
387
|
0 |
0 |
unless -d "$dir/page" |
389
|
0 |
0 |
if ($@) { } |
406
|
0 |
0 |
if (-e $file) |
408
|
0 |
0 |
unless -d "$dir/keep" |
409
|
0 |
0 |
if (-d "$dir/keep/$id") { } |
411
|
0 |
0 |
if /^(\d+)\.gmi$/u and $1 > $revision |
422
|
0 |
0 |
if (-f $index) |
428
|
0 |
0 |
if (not open(my $fh, '>>:encoding(UTF-8)', $changes)) { } |
446
|
0 |
0 |
if $data->{'buffer'} |
467
|
0 |
0 |
if (run_extensions($stream, $url)) { } |
|
0 |
0 |
elsif (not $url) { } |
|
0 |
0 |
elsif (length $url > 1024) { } |
|
0 |
0 |
elsif (($host, $n, $space) = $url =~ m[^(?:gemini:)?//($hosts)(:$port)?(?:/($spaces))?/(?:$reserved)$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/?$]u) { } |
|
0 |
0 |
elsif (($host, $space, $n) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/more(?:/(\d+))?$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/index$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/files$]u) { } |
|
0 |
0 |
elsif (($host) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/spaces$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/data$]u) { } |
|
0 |
0 |
elsif ($url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/match$]u) { } |
|
0 |
0 |
elsif ($query and ($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/match\?]u) { } |
|
0 |
0 |
elsif ($url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/search$]u) { } |
|
0 |
0 |
elsif ($query and ($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/search\?]u) { } |
|
0 |
0 |
elsif ($url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/new$]u) { } |
|
0 |
0 |
elsif ($query and ($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/new\?]u) { } |
|
0 |
0 |
elsif (($host, $space, $n, $style) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/changes(?:/(\d+))?(?:/(colour|fancy))?$]u) { } |
|
0 |
0 |
elsif (($host, $filter, $n, $style) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?/do/all(?:/(latest))?/changes(?:/(\d+))?(?:/(colour|fancy))?$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/rss$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/blog/rss$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/atom$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/blog/atom$]u) { } |
|
0 |
0 |
elsif (($host, $space) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/do/all/atom$]u) { } |
|
0 |
0 |
elsif (($host) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?/robots.txt(?:[#?].*)?$]u) { } |
|
0 |
0 |
elsif (($host, $space, $id, $n, $style) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/history/([^/]*)(?:/(\d+))?(?:/(colour|fancy))?$]u) { } |
|
0 |
0 |
elsif (($host, $space, $id, $n, $style) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/diff/([^/]*)(?:/(\d+))?(?:/(colour))?$]u) { } |
|
0 |
0 |
elsif (($host, $space, $id, $n) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/raw/([^/]*)(?:/(\d+))?$]u) { } |
|
0 |
0 |
elsif (($host, $space, $id, $n) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/html/([^/]*)(?:/(\d+))?$]u) { } |
|
0 |
0 |
elsif (($host, $space, $id, $n) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/page/([^/]+)(?:/(\d+))?$]u) { } |
|
0 |
0 |
elsif (($host, $space, $id) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(?:/($spaces))?/file/([^/]+)?$]u) { } |
|
0 |
0 |
elsif (($host) = $url =~ m[^(?:gemini:)?//($hosts)(?::$port)?(/|$)]u) { } |
|
0 |
0 |
elsif ($authority) { } |
479
|
0 |
0 |
$n ? : |
504
|
0 |
0 |
if ($space) { } |
549
|
0 |
0 |
if $@ |
556
|
0 |
0 |
if &$sub(@_) |
568
|
0 |
0 |
if ($page) { } |
589
|
0 |
0 |
if @{$App::Phoebe::server->{'wiki_space'};} or keys %{$$server{'host'};} > 1 |
599
|
0 |
0 |
if ($data->{'buffer'} =~ /^(.*)\r\n/u) { } |
605
|
0 |
0 |
if ($data->{'request'} =~ /$re/iu) |
626
|
0 |
0 |
if $data->{'buffer'} |
639
|
0 |
0 |
if ($space) |
640
|
0 |
0 |
if $space eq $host |
647
|
0 |
0 |
$space ? : |
656
|
0 |
0 |
unless ($id) |
659
|
0 |
0 |
if $id =~ /^$full_url_regex$/u |
689
|
0 |
0 |
unless (-f $index) |
690
|
0 |
0 |
unless -d "$dir/page" |
696
|
0 |
0 |
if $re |
714
|
0 |
0 |
unless @blog |
720
|
0 |
0 |
if @blog > $n |
721
|
0 |
0 |
if $n == 10 |
722
|
0 |
0 |
if $n == 10 |
744
|
0 |
0 |
unless (@blog) |
752
|
0 |
0 |
if @blog > $n |
763
|
0 |
0 |
unless @pages |
776
|
0 |
0 |
unless -d $dir |
778
|
0 |
0 |
if $re |
790
|
0 |
0 |
unless @files |
816
|
0 |
0 |
if (-e $file and time - modified($file) <= 300) { } |
828
|
0 |
0 |
if (system(@command) == 0) { } |
844
|
0 |
0 |
unless ($match) |
853
|
0 |
0 |
unless @pages |
864
|
0 |
0 |
unless ($str) |
872
|
0 |
0 |
if (not search($stream, $host, $space, $str, sub {
highlight($stream, @_);
}
)) |
884
|
0 |
0 |
unless @pages |
888
|
0 |
0 |
if ($id =~ /$str/iu or $text =~ /$str/iu) |
912
|
0 |
0 |
if (($j = index($text, $1)) > -1) |
915
|
0 |
0 |
if $start == -1 |
917
|
0 |
0 |
if $end == -1 |
937
|
0 |
0 |
if (not $style) { } |
|
0 |
0 |
elsif ($style eq 'colour') { } |
|
0 |
0 |
elsif ($style eq 'fancy') { } |
941
|
0 |
0 |
if @{$App::Phoebe::server->{'wiki_space'};} |
946
|
0 |
0 |
unless (-e $log) |
959
|
0 |
0 |
unless $_ = &decode_utf8(scalar $fh->readline) |
961
|
0 |
0 |
unless changes($stream, $n, sub {
$stream->write(&encode_utf8('## ' . (shift()) . "\n"));
}
, sub {
$stream->write((shift()) . ' by ' . colourize($stream, shift(), $style) . "\n");
}
, sub {
print_link($stream, @_);
}
, sub {
$stream->write(&encode_utf8(join("\n", @_, '')));
}
, sub {
return unless $_ = &decode_utf8(scalar $fh->readline);
chomp $_;
split(/\x1f/u, $_, 0), $host, $space, 0;
}
) |
963
|
0 |
0 |
$style ? : |
972
|
0 |
0 |
$filter ? : |
977
|
0 |
0 |
unless (@$log) |
981
|
0 |
0 |
$filter ? : |
982
|
0 |
0 |
$style ? : |
983
|
0 |
0 |
if (not $style) { } |
|
0 |
0 |
elsif ($style eq 'colour') { } |
|
0 |
0 |
elsif ($style eq 'fancy') { } |
986
|
0 |
0 |
if ($filter) { } |
990
|
0 |
0 |
$filter ? : |
998
|
0 |
0 |
if @$log |
1000
|
0 |
0 |
unless changes($stream, $n, sub {
$stream->write('## ' . (shift()) . "\n");
}
, sub {
$stream->write((shift()) . ' by ' . colourize($stream, shift(), $style) . "\n");
}
, sub {
print_link($stream, @_);
}
, sub {
$stream->write(&encode_utf8(join("\n", @_, '')));
}
, sub {
@{shift @$log;}, 1 if @$log;
}
, undef, $filter) |
1002
|
0 |
0 |
$style ? : |
1016
|
0 |
0 |
if $space |
1018
|
0 |
0 |
unless -f $changes |
1020
|
0 |
0 |
unless my $fh = 'File::ReadBackwards'->new($changes) |
1021
|
0 |
0 |
if (keys %{$$server{'host'};} > 1) { } |
1042
|
0 |
0 |
unless $_ and $_ ne "\n" |
1043
|
0 |
0 |
if $filter and not /$filter/u |
1085
|
0 |
0 |
unless $ts and $id |
1087
|
0 |
0 |
if $filter eq 'latest' and $seen{$name} |
1089
|
0 |
0 |
if ($day ne $last_day) |
1094
|
0 |
0 |
if ($revision eq "\x{1f5b9}") { } |
|
0 |
0 |
elsif ($revision eq "\x{1f5bb}") { } |
|
0 |
0 |
elsif ($revision > 0) { } |
1105
|
0 |
0 |
if ($seen{$name}) { } |
|
0 |
0 |
elsif ($filter eq 'latest') { } |
1107
|
0 |
0 |
if &$kept($host, $space, $id, $revision) |
1119
|
0 |
0 |
if ($seen{$name . "\034"}) { } |
1136
|
0 |
0 |
if ($show_space) |
1137
|
0 |
0 |
if (keys %{$$server{'host'};} > 1) { } |
|
0 |
0 |
elsif ($space) { } |
1138
|
0 |
0 |
if ($space) { } |
1155
|
0 |
0 |
unless $style |
1156
|
0 |
0 |
if ($style eq 'colour') { } |
|
0 |
0 |
elsif ($style eq 'fancy') { } |
1201
|
0 |
0 |
if (-e $log and my $fh = 'File::ReadBackwards'->new($log)) |
1204
|
0 |
0 |
unless $_ = &decode_utf8(scalar $fh->readline) |
1207
|
0 |
0 |
if $seen{$id} |
1280
|
0 |
0 |
if (-e $log and my $fh = 'File::ReadBackwards'->new($log)) |
1282
|
0 |
0 |
unless $_ = &decode_utf8(scalar $fh->readline) |
1285
|
0 |
0 |
if (&any(sub {
$_ eq $id;
}
, @ids)) |
1304
|
0 |
0 |
unless $_ = &decode_utf8(scalar $fh->readline) |
1316
|
0 |
0 |
if @$log |
1348
|
0 |
0 |
unless $ts and $id |
1350
|
0 |
0 |
if ($revision eq "\x{1f5b9}") { } |
|
0 |
0 |
elsif ($revision eq "\x{1f5bb}") { } |
|
0 |
0 |
elsif ($revision > 0) { } |
1351
|
0 |
0 |
if $seen{$name} |
1358
|
0 |
0 |
if $seen{$name . "\034"} |
1364
|
0 |
0 |
if $seen{$name} |
1374
|
0 |
0 |
if $seen{$name . "\034"} |
1385
|
0 |
0 |
if $ts gt $feed_ts |
1433
|
0 |
0 |
if $ts gt $feed_ts |
1461
|
0 |
0 |
if (not $style) { } |
1466
|
0 |
0 |
if (not $style) { } |
1469
|
0 |
0 |
unless $_ |
1470
|
0 |
0 |
unless $_ |
1475
|
0 |
0 |
unless $_ |
1476
|
0 |
0 |
unless $_ |
1494
|
0 |
0 |
if $diff->Same |
1497
|
0 |
0 |
if ($diff->Diff == 3) { } |
|
0 |
0 |
elsif ($diff->Diff == 2) { } |
|
0 |
0 |
elsif ($diff->Diff == 1) { } |
1499
|
0 |
0 |
$min1 == $max1 ? : |
1501
|
0 |
0 |
$min2 == $max2 ? : |
1504
|
0 |
0 |
$min2 == $max2 ? : |
1507
|
0 |
0 |
$min1 == $max1 ? : |
1524
|
0 |
0 |
if (my(@list) = $diff->Same) { } |
1529
|
0 |
0 |
$_ ? : |
1530
|
0 |
0 |
$_ ? : |
1577
|
0 |
0 |
if (/^```(?:type=([a-z]+))?/u) { } |
|
0 |
0 |
elsif ($code) { } |
|
0 |
0 |
elsif (/^\* +(.*)/u) { } |
|
0 |
0 |
elsif (my($url, $text) = /^=>\s*(\S+)\s*(.*)/u) { } |
|
0 |
0 |
elsif (/^(#{1,6})\s*(.*)/u) { } |
|
0 |
0 |
elsif (/^>\s*(.*)/u) { } |
1579
|
0 |
0 |
if ($code) { } |
1583
|
0 |
0 |
if $list |
1591
|
0 |
0 |
unless $list |
1595
|
0 |
0 |
unless $list |
1600
|
0 |
0 |
if $list |
1605
|
0 |
0 |
if $list |
1609
|
0 |
0 |
if $list |
1614
|
0 |
0 |
if $code |
1615
|
0 |
0 |
if $list |
1628
|
0 |
0 |
if $html =~ /\S/u |
1659
|
0 |
0 |
if (not $style) { } |
|
0 |
0 |
elsif ($style eq 'colour') { } |
|
0 |
0 |
elsif ($style eq 'fancy') { } |
1664
|
0 |
0 |
unless (-e $log) |
1677
|
0 |
0 |
unless $_ = &decode_utf8(scalar $fh->readline) |
1681
|
0 |
0 |
if $id_log ne $id |
1682
|
0 |
0 |
unless changes($stream, $n, sub {
$stream->write('## ' . (shift()) . "\n");
}
, sub {
$stream->write((shift()) . ' by ' . colourize($stream, shift(), $style) . "\n");
}
, sub {
print_link($stream, @_);
}
, sub {
$stream->write(join("\n", @_, ''));
}
, sub {
READ: return unless $_ = &decode_utf8(scalar $fh->readline);
chomp $_;
my($ts, $id_log, $revision, $code) = split(/\x1f/u, $_, 5);
goto READ if $id_log ne $id;
$ts, $id_log, $revision, $code, $host, $space, 0;
}
) |
1684
|
0 |
0 |
$style ? : |
1721
|
0 |
0 |
if $revision and -f "$dir/keep/$id/$revision.gmi" |
1722
|
0 |
0 |
if -f "$dir/page/$id.gmi" |
1723
|
0 |
0 |
if $id eq 'robots' and not $space |
1724
|
0 |
0 |
if $revision |
1770
|
0 |
0 |
if (not -f $file) { } |
|
0 |
0 |
elsif (not -f $meta) { } |
1778
|
0 |
0 |
unless ($meta{'content-type'}) |
1788
|
0 |
0 |
unless $str |
1805
|
0 |
0 |
if (-e $file) |
1807
|
0 |
0 |
if ($old eq $data) |
1814
|
0 |
0 |
if (not open(my $fh, '>>:encoding(UTF-8)', $changes)) { } |
1823
|
0 |
0 |
unless -d "$dir/file" |
1825
|
0 |
0 |
if ($@) |
1829
|
0 |
0 |
unless -d "$dir/meta" |
1831
|
0 |
0 |
if ($@) |
1848
|
0 |
0 |
if (not open(my $fh, '>>:encoding(UTF-8)', $changes)) { } |
1873
|
0 |
0 |
if (keys %{$$server{'host'};} > 1) |
1875
|
0 |
0 |
unless -d $dir |
1877
|
0 |
0 |
if $space |
1878
|
0 |
0 |
unless -d $dir |
1888
|
0 |
0 |
if $space |
1889
|
0 |
0 |
if (keys %{$$server{'host'};} > 1) |
1890
|
0 |
0 |
unless $space |
1891
|
0 |
0 |
if grep {$_ eq "$host/$space";} @{$$server{'wiki_space'};} |
1904
|
0 |
0 |
if (keys %{$$server{'host'};} > 1) { } |
1922
|
0 |
0 |
if (keys %{$$server{'host'};} > 1) { } |
|
0 |
0 |
elsif (@{$App::Phoebe::server->{'wiki_space'};}) { } |
1946
|
0 |
0 |
if ($request =~ m[^titan://($hosts)(?::$port)?]u) |
1950
|
0 |
0 |
if ($path =~ m[^(?:/($spaces_regex))?(?:/raw)?/([^/;=&]+(?:;\w+=[^;=&]+)+)]u) { } |
1954
|
0 |
0 |
if (valid_params($stream, $host, $space, $id, $params)) |
1977
|
0 |
0 |
unless valid_id($stream, $host, $space, $id, $params) |
1978
|
0 |
0 |
unless valid_token($stream, $host, $space, $id, $params) |
1979
|
0 |
0 |
unless valid_mime_type($stream, $host, $space, $id, $params) |
1980
|
0 |
0 |
unless valid_size($stream, $host, $space, $id, $params) |
1989
|
0 |
0 |
if (not $id) { } |
|
0 |
0 |
elsif ($id =~ /[[:cntrl:]]/u) { } |
2012
|
0 |
0 |
if $space and $App::Phoebe::server->{'wiki_space_token'}{$space} |
2015
|
0 |
0 |
if (not $token and @tokens) { } |
|
0 |
0 |
elsif (not grep(/^$token$/u, @tokens)) { } |
2038
|
0 |
0 |
if (not $type) { } |
|
0 |
0 |
elsif ($type ne 'text/plain' and not grep(/^$type$/u, @types) and not grep(/^$main_type$/u, @types)) { } |
2059
|
0 |
0 |
if (not $size =~ /^\d+$/u) { } |
|
0 |
0 |
elsif ($size > $App::Phoebe::server->{'wiki_page_size_limit'}) { } |