Upgrade to Encode 2.08.
[p5sagit/p5-mst-13.2.git] / pp_sys.c
index b615d4a..3071f1b 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -1665,7 +1665,10 @@ PP(pp_sysread)
     }
     if (DO_UTF8(bufsv)) {
        /* convert offset-as-chars to offset-as-bytes */
-       offset = utf8_hop((U8 *)buffer,offset) - (U8 *) buffer;
+       if (offset >= (int)blen)
+           offset += SvCUR(bufsv) - blen;
+       else
+           offset = utf8_hop((U8 *)buffer,offset) - (U8 *) buffer;
     }
  more_bytes:
     bufsize = SvCUR(bufsv);