X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fteditor%2FWord.java;h=eada29cff83ed8b1c61c59d1741b5646d1f645b8;hb=12b90437b5f22c2ae6e9b9b14c3b62b60f6143e5;hp=ffb11aa1a520d9b37ca76eee98f776f9509794d9;hpb=a69ed767c9c07cf35cf1c5f7821fc009cfe79cd2;p=fanfix.git diff --git a/src/jexer/teditor/Word.java b/src/jexer/teditor/Word.java index ffb11aa..eada29c 100644 --- a/src/jexer/teditor/Word.java +++ b/src/jexer/teditor/Word.java @@ -29,6 +29,7 @@ package jexer.teditor; import jexer.bits.CellAttributes; +import jexer.bits.StringUtils; /** * A Word represents text that was entered by the user. It can be either @@ -76,12 +77,12 @@ public class Word { * @param defaultColor the color for unhighlighted text * @param highlighter the highlighter to use */ - public Word(final char ch, final CellAttributes defaultColor, + public Word(final int ch, final CellAttributes defaultColor, final Highlighter highlighter) { this.defaultColor = defaultColor; this.highlighter = highlighter; - text.append(ch); + text.append(Character.toChars(ch)); } /** @@ -139,7 +140,7 @@ public class Word { // TODO: figure out how to handle the tab character. Do we have a // global tab stops list and current word position? - return text.length(); + return StringUtils.width(text.toString()); } /** @@ -184,9 +185,9 @@ public class Word { * @return either this word (if it was added), or a new word that * contains ch */ - public Word addChar(final char ch) { + public Word addChar(final int ch) { if (text.length() == 0) { - text.append(ch); + text.append(Character.toChars(ch)); return this; } @@ -205,14 +206,14 @@ public class Word { && Character.isWhitespace(ch) ) { // Adding to a whitespace word, keep at it. - text.append(ch); + text.append(Character.toChars(ch)); return this; } if (!Character.isWhitespace(text.charAt(0)) && !Character.isWhitespace(ch) ) { // Adding to a non-whitespace word, keep at it. - text.append(ch); + text.append(Character.toChars(ch)); return this; }