- my $dlen = length($_[1]);
- return 1 if $n == $dlen; # all done!
- $_[1] = substr($_[1], $n, $dlen - $n);
- # fall through to normal write:
+ my $nlen = length($_[1]) - $n;
+ return 1 if $nlen == 0; # all done!
+
+ # PublicInbox::DS::write queues the unwritten substring:
+ return $self->write(substr($_[1], $n, $nlen));