+ {
+ if (!utf8_enable.integer)
+ text[key_linepos] = 11 + 130 * key_insert; // either solid or triangle facing right
+ else if (y + 3 < (int)sizeof(editlinecopy)-1)
+ {
+ int ofs = u8_bytelen(text + key_linepos, 1);
+ size_t len;
+ const char *curbuf;
+ curbuf = u8_encodech(0xE000 + 11 + 130 * key_insert, &len);
+
+ if (curbuf)
+ {
+ memmove(text + key_linepos + len, text + key_linepos + ofs, sizeof(editlinecopy) - key_linepos - len);
+ memcpy(text + key_linepos, curbuf, len);
+ }
+ } else
+ text[key_linepos] = '-' + ('+' - '-') * key_insert;
+ }