);
$$dst .= qq(
);
undef
}
sub git_atom_sed ($$) {
my ($self, $req) = @_;
my $buf = '';
my $state = 0;
my $rel = $req->{relcmd};
my $repo = $req->{-repo};
my $tip = $repo->tip;
my $title = join('/', $repo->{repo}, @{$req->{extra}});
$title = utf8_html("$title, $tip");
my $url = repo_root_url($self, $req);
my $hdr = {};
my $subtitle = $repo->desc_html;
$req->{axml} = qq(\n) .
qq() .
qq($title) .
qq($subtitle) .
qq();
my ($plinks, $ai);
my $end = '';
my $blines;
sub {
my $dst;
# $_[0] == scalar buffer, undef means EOF from "git log"
$dst = delete $req->{axml} || '';
my @tmp;
if (defined $_[0]) {
$buf .= $_[0];
@tmp = split(/\n/, $buf, -1);
$buf = @tmp ? pop(@tmp) : '';
} else {
@tmp = split(/\n/, $buf, -1);
$buf = '';
$end = '';
}
foreach my $l (@tmp) {
if ($state != STATE_BODY) {
$hdr->{((STATES)[$state])} = $l;
if (++$state == STATE_BODY) {
flush_hdr(\$dst, $hdr, $url);
$hdr = {};
$blines = 0;
}
next;
}
if ($l eq "\0") {
$dst .= qq(