text: public CharSequence[] decompose(CharSequence cmd) {int parts = 0;for (int i = 0; 0 <= i && i < cmd.length();) {int next = dashEven(cmd, i);if (i == next) {parts++;i = next + 2;} else {parts++;i = next;}}CharSequence part[] = new CharSequence[parts];int x = 0;for (int i = 0; 0 <= i && i < cmd.length();) {int next = dashEven(cmd, i);if (i == next) {part[x++] = cmd.subSequence(i, i + 2);i = next + 2;} else {part[x++] = (next < 0) ? cmd.subSequence(i, cmd.length()) : cmd.subSequence(i, next);i = next;}}return part;}