encodeChar method

int encodeChar(
  1. int chr,
  2. StringBuffer sb
)

Implementation

int encodeChar(int chr, StringBuffer sb) {
  if (chr == 32) {
    // ' '
    sb.write('\x03');
    return 1;
  }

  if (chr >= 48 /* 0 */ && chr <= 57 /* 9 */) {
    sb.writeCharCode(chr - 48 + 4);
    return 1;
  }
  if (chr >= 65 /* A */ && chr <= 90 /* Z */) {
    sb.writeCharCode(chr - 65 + 14);
    return 1;
  }
  if (chr < 32 /*   */) {
    sb.write('\x00'); //Shift 1 Set
    sb.writeCharCode(chr);
    return 2;
  }
  if (chr <= 47 /* / */) {
    sb.write('\x01'); //Shift 2 Set
    sb.writeCharCode(chr - 33);
    return 2;
  }
  if (chr <= 64 /* @ */) {
    sb.write('\x01'); //Shift 2 Set
    sb.writeCharCode(chr - 58 + 15);
    return 2;
  }
  if (chr <= 95 /* _ */) {
    sb.write('\x01'); //Shift 2 Set
    sb.writeCharCode(chr - 91 + 22);
    return 2;
  }
  if (chr <= 127) {
    sb.write('\x02'); //Shift 3 Set
    sb.writeCharCode(chr - 96);
    return 2;
  }
  sb.write('\x01\u001e'); //Shift 2, Upper Shift
  int len = 2;
  len += encodeChar(chr - 128, sb);
  return len;
}