mirror of https://github.com/zlatinb/muwire
fix some types of input from not rendering correctly
parent
a9bc2ec43a
commit
0fe9f6b391
|
@ -18,6 +18,22 @@ import net.i2p.util.ConcurrentHashSet;
|
||||||
|
|
||||||
public class DataUtil {
|
public class DataUtil {
|
||||||
|
|
||||||
|
/** The 32 valid Base32 values. */
|
||||||
|
private final static char[] ALPHABET = {'a', 'b', 'c', 'd',
|
||||||
|
'e', 'f', 'g', 'h', 'i', 'j',
|
||||||
|
'k', 'l', 'm', 'n', 'o', 'p',
|
||||||
|
'q', 'r', 's', 't', 'u', 'v',
|
||||||
|
'w', 'x', 'y', 'z',
|
||||||
|
'2', '3', '4', '5', '6', '7'};
|
||||||
|
|
||||||
|
public static boolean validBase32(char c) {
|
||||||
|
for (int i = 0; i < ALPHABET.length; i++) {
|
||||||
|
if (ALPHABET[i] == c)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private final static int MAX_SHORT = (0x1 << 16) - 1;
|
private final static int MAX_SHORT = (0x1 << 16) - 1;
|
||||||
|
|
||||||
static void writeUnsignedShort(int value, OutputStream os) throws IOException {
|
static void writeUnsignedShort(int value, OutputStream os) throws IOException {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.muwire.gui.chat
|
package com.muwire.gui.chat
|
||||||
|
|
||||||
import com.muwire.core.Constants
|
import com.muwire.core.Constants
|
||||||
|
import com.muwire.core.util.DataUtil
|
||||||
import com.muwire.gui.UISettings
|
import com.muwire.gui.UISettings
|
||||||
import com.muwire.gui.contacts.POPLabel
|
import com.muwire.gui.contacts.POPLabel
|
||||||
import com.muwire.gui.profile.PersonaOrProfile
|
import com.muwire.gui.profile.PersonaOrProfile
|
||||||
|
@ -23,7 +24,7 @@ class ChatEntry extends JTextPane {
|
||||||
private static final SimpleDateFormat SDF = new SimpleDateFormat("dd/MM hh:mm:ss")
|
private static final SimpleDateFormat SDF = new SimpleDateFormat("dd/MM hh:mm:ss")
|
||||||
|
|
||||||
private static final char AT = "@".toCharacter()
|
private static final char AT = "@".toCharacter()
|
||||||
|
|
||||||
private final UISettings settings
|
private final UISettings settings
|
||||||
private final Function<String, PersonaOrProfile> function
|
private final Function<String, PersonaOrProfile> function
|
||||||
|
|
||||||
|
@ -132,6 +133,12 @@ class ChatEntry extends JTextPane {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
ParsingState consume(char c) {
|
ParsingState consume(char c) {
|
||||||
|
if (!DataUtil.validBase32(c)) {
|
||||||
|
consumed = true
|
||||||
|
String payload = "${currentName}${stringBuilder.toString()}"
|
||||||
|
tokens << new TextChatToken(payload)
|
||||||
|
return new TextParsingState()
|
||||||
|
}
|
||||||
if (stringBuilder.length() == maxSize) {
|
if (stringBuilder.length() == maxSize) {
|
||||||
consumed = true
|
consumed = true
|
||||||
String readableName = "${currentName}${stringBuilder.toString()}"
|
String readableName = "${currentName}${stringBuilder.toString()}"
|
||||||
|
|
Loading…
Reference in New Issue