X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/46f7dcb362da5d043c758453384a447f0360462c..aaca4902dd29e7ba7769daedcc2f7ee86d1e058a:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 3422024d1..5184be2df 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -180,6 +180,30 @@ sub scan ($) { #{{{ } } #}}} +sub fast_file_copy (@) { #{{{ + my $srcfile=shift; + my $destfile=shift; + my $srcfd=shift; + my $destfd=shift; + my $cleanup=shift; + + my $blksize = 16384; + my ($len, $buf, $written); + while ($len = sysread $srcfd, $buf, $blksize) { + if (! defined $len) { + next if $! =~ /^Interrupted/; + error("failed to read $srcfile: $!", $cleanup); + } + my $offset = 0; + while ($len) { + defined($written = syswrite $destfd, $buf, $len, $offset) + or error("failed to write $destfile: $!", $cleanup); + $len -= $written; + $offset += $written; + } + } +} + sub render ($) { #{{{ my $file=shift; @@ -191,7 +215,7 @@ sub render ($) { #{{{ will_render($page, htmlpage($page), 1); return if $type=~/^_/; - my $content=htmlize($page, $type, + my $content=htmlize($page, $page, $type, linkify($page, $page, preprocess($page, $page, filter($page, $page, @@ -215,24 +239,7 @@ sub render ($) { #{{{ my $srcfd=readfile($srcfile, 1, 1); writefile($file, $config{destdir}, undef, 1, sub { - my $destfd=shift; - my $cleanup=shift; - - my $blksize = 16384; - my ($len, $buf, $written); - while ($len = sysread $srcfd, $buf, $blksize) { - if (! defined $len) { - next if $! =~ /^Interrupted/; - error("failed to read $srcfile: $!", $cleanup); - } - my $offset = 0; - while ($len) { - defined($written = syswrite $destfd, $buf, $len, $offset) - or error("failed to write $file: $!", $cleanup); - $len -= $written; - $offset += $written; - } - } + fast_file_copy($srcfile, $file, $srcfd, @_); }); } } #}}} @@ -520,7 +527,7 @@ sub commandline_render () { #{{{ $content=filter($page, $page, $content); $content=preprocess($page, $page, $content); $content=linkify($page, $page, $content); - $content=htmlize($page, $type, $content); + $content=htmlize($page, $page, $type, $content); $pagemtime{$page}=(stat($srcfile))[9]; print genpage($page, $content);