in src/agent/DefaultInputMap.cc [331:383]
static inline void expandEncodingAfterAltPrefix(
const ExpandContext &ctx, char *p, uint16_t extraKeyState) {
auto appendId = [&](char *&ptr) {
const auto idstr = decOfInt(ctx.e.id);
ASSERT(ptr <= ctx.bufferEnd - idstr.size());
std::copy(idstr.data(), idstr.data() + idstr.size(), ptr);
ptr += idstr.size();
};
ASSERT(p <= ctx.bufferEnd - 2);
*p++ = '\x1b';
*p++ = ctx.e.prefix;
if (ctx.e.modifiers & kBare) {
char *q = p;
if (is_numeric) {
appendId(q);
expandNumericEncodingSuffix(ctx, q, extraKeyState);
} else {
ASSERT(q <= ctx.bufferEnd - 1);
*q++ = ctx.e.id;
setEncoding(ctx, q, extraKeyState);
}
}
if (ctx.e.modifiers & kBareMod) {
ASSERT(!is_numeric && "kBareMod is invalid with numeric sequences");
for (int mod = 2; mod <= 8; ++mod) {
char *q = p;
ASSERT(q <= ctx.bufferEnd - 2);
*q++ = '0' + mod;
*q++ = ctx.e.id;
setEncoding(ctx, q, extraKeyState | keyStateForMod(mod));
}
}
if (ctx.e.modifiers & kSemiMod) {
for (int mod = 2; mod <= 8; ++mod) {
char *q = p;
if (is_numeric) {
appendId(q);
ASSERT(q <= ctx.bufferEnd - 2);
*q++ = ';';
*q++ = '0' + mod;
expandNumericEncodingSuffix(
ctx, q, extraKeyState | keyStateForMod(mod));
} else {
ASSERT(q <= ctx.bufferEnd - 4);
*q++ = '1';
*q++ = ';';
*q++ = '0' + mod;
*q++ = ctx.e.id;
setEncoding(ctx, q, extraKeyState | keyStateForMod(mod));
}
}
}
}