X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltos.java;h=364908448e2d2fcbdab39d32f71abf0f74281394;hp=25d97bcf2b5c6fc35c145c201e12ee5c440caea1;hb=41c230cac359b4459ca93196d08704b7d35447c7;hpb=7fd9b8f720add559b262e81d61ededc9df16ca94 diff --git a/altosui/Altos.java b/altosui/Altos.java index 25d97bcf..36490844 100644 --- a/altosui/Altos.java +++ b/altosui/Altos.java @@ -231,10 +231,27 @@ public class Altos { static final Charset unicode_set = Charset.forName("UTF-8"); static String string(int[] bytes, int s, int l) { - byte[] b = new byte[bytes.length]; - for (int i = 0; i < l; i++) + if (s + l > bytes.length) { + if (s > bytes.length) { + s = bytes.length; + l = 0; + } else { + l = bytes.length - s; + } + } + + int i; + for (i = l - 1; i >= 0; i--) + if (bytes[s+i] != 0) + break; + + l = i + 1; + byte[] b = new byte[l]; + + for (i = 0; i < l; i++) b[i] = (byte) bytes[s+i]; - return new String(b, unicode_set); + String n = new String(b, unicode_set); + return n; } static int hexbyte(String s, int i) {