abouttreesummaryrefslogcommitdiff
path: root/srcs
diff options
context:
space:
mode:
Diffstat (limited to 'srcs')
-rw-r--r--srcs/juloo.keyboard2/KeyValue.java33
-rw-r--r--srcs/juloo.keyboard2/KeyValueParser.java7
2 files changed, 33 insertions, 7 deletions
diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java
index df0ef9d..d0c1fc7 100644
--- a/srcs/juloo.keyboard2/KeyValue.java
+++ b/srcs/juloo.keyboard2/KeyValue.java
@@ -312,8 +312,11 @@ public final class KeyValue implements Comparable<KeyValue>
public String toString()
{
- int value = _code & VALUE_BITS;
- return "[KeyValue " + getKind().toString() + "+" + getFlags() + "+" + value + " \"" + getString() + "\"]";
+ StringBuilder b = new StringBuilder()
+ .append(getKind().name()).append(":").append(getString());
+ if (_payload instanceof Describe)
+ b.append(":").append(((Describe)_payload).describe());
+ return b.toString();
}
private KeyValue(Comparable p, int kind, int value, int flags)
@@ -817,7 +820,14 @@ public final class KeyValue implements Comparable<KeyValue>
throw new RuntimeException("Assertion failure");
}
- public static enum Slider
+ public static interface Describe
+ {
+ /** Describe the payload content, without the symbol.
+ Used for printing in tests. */
+ public String describe();
+ }
+
+ public static enum Slider implements Describe
{
Cursor_left(0xE008),
Cursor_right(0xE006),
@@ -835,9 +845,12 @@ public final class KeyValue implements Comparable<KeyValue>
@Override
public String toString() { return symbol; }
+
+ @Override
+ public String describe() { return name(); }
};
- public static final class Macro implements Comparable<Macro>
+ public static final class Macro implements Comparable<Macro>, Describe
{
public final KeyValue[] keys;
private final String _symbol;
@@ -848,9 +861,21 @@ public final class KeyValue implements Comparable<KeyValue>
_symbol = sym_;
}
+ @Override
public String toString() { return _symbol; }
@Override
+ public String describe()
+ {
+ StringBuilder b = new StringBuilder();
+ if (keys.length > 0)
+ b.append(keys[0].toString());
+ for (int i = 1; i < keys.length; i++)
+ b.append(",").append(keys[i].toString());
+ return b.toString();
+ }
+
+ @Override
public int compareTo(Macro snd)
{
int d = keys.length - snd.keys.length;
diff --git a/srcs/juloo.keyboard2/KeyValueParser.java b/srcs/juloo.keyboard2/KeyValueParser.java
index 08558ad..a8c1fe7 100644
--- a/srcs/juloo.keyboard2/KeyValueParser.java
+++ b/srcs/juloo.keyboard2/KeyValueParser.java
@@ -60,7 +60,7 @@ public final class KeyValueParser
if (KEYDEF_TOKEN != null)
return;
KEYDEF_TOKEN = Pattern.compile("'|,|keyevent:|(?:[^\\\\',]+|\\\\.)+");
- QUOTED_PAT = Pattern.compile("((?:[^'\\\\]+|\\\\')*)'");
+ QUOTED_PAT = Pattern.compile("((?:[^'\\\\]+|\\\\.)*)'");
WORD_PAT = Pattern.compile("[a-zA-Z0-9_]+|.");
}
@@ -119,16 +119,17 @@ public final class KeyValueParser
{
if (!s.contains("\\"))
return s;
- StringBuilder out = new StringBuilder(s.length());
final int len = s.length();
+ StringBuilder out = new StringBuilder(len);
int prev = 0, i = 0;
for (; i < len; i++)
if (s.charAt(i) == '\\')
{
out.append(s, prev, i);
prev = i + 1;
+ i++;
}
- out.append(s, prev, i);
+ out.append(s, prev, len);
return out.toString();
}