From: Lucas Bajolet Date: Mon, 2 Nov 2015 22:04:22 +0000 (-0500) Subject: core/flat: Fix bug in `FlatBuffer::substring` X-Git-Tag: v0.8~105^2~5 X-Git-Url: http://nitlanguage.org core/flat: Fix bug in `FlatBuffer::substring` Signed-off-by: Lucas Bajolet --- diff --git a/lib/core/text/flat.nit b/lib/core/text/flat.nit index c89b222..d58aafb 100644 --- a/lib/core/text/flat.nit +++ b/lib/core/text/flat.nit @@ -878,18 +878,15 @@ class FlatBuffer assert count >= 0 if from < 0 then from = 0 if (from + count) > length then count = length - from - if count != 0 then - var its = _items - var bytefrom = its.char_to_byte_index(from) - var byteto = its.char_to_byte_index(count + from - 1) - byteto += its.char_at(byteto).u8char_len - 1 - var byte_length = byteto - bytefrom + 1 - var r_items = new NativeString(byte_length) - its.copy_to(r_items, byte_length, bytefrom, 0) - return new FlatBuffer.with_infos(r_items, byte_length, byte_length, count) - else - return new Buffer - end + if count <= 0 then return new Buffer + var its = _items + var bytefrom = its.char_to_byte_index(from) + var byteto = its.char_to_byte_index(count + from - 1) + byteto += its.char_at(byteto).u8char_len - 1 + var byte_length = byteto - bytefrom + 1 + var r_items = new NativeString(byte_length) + its.copy_to(r_items, byte_length, bytefrom, 0) + return new FlatBuffer.with_infos(r_items, byte_length, byte_length, count) end redef fun reverse