--- rxvt-unicode/src/screen.C 2004/12/01 02:12:18 1.141 +++ rxvt-unicode/src/screen.C 2004/12/04 04:06:03 1.143 @@ -890,15 +890,12 @@ // characters have width -1 (DOH!) on GNU/Linux sometimes. int width = c < 0x100 ? 1 : wcwidth (c); - if (screen.flags & Screen_Insert) - scr_insdel_chars (width, INSERT); - if (charsets[screen.charset] == '0') // DEC SPECIAL { // vt100 special graphics and line drawing // 5f-7e standard vt100 // 40-5e rxvt extension for extra curses acs chars - static uint16_t vt100_0[63] = { // 5f .. 7e + static uint16_t vt100_0[63] = { // 40 .. 7e 0x0000, 0x2191, 0x2193, 0x2192, 0x2190, 0x2588, 0x259a, 0x2603, // 40-47 hi mr. snowman! 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 48-4f 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 50-57 @@ -916,6 +913,9 @@ } } + if (screen.flags & Screen_Insert) + scr_insdel_chars (width, INSERT); + if (width != 0) { // some utf-8 decoders decode surrogate characters.