# HG changeset patch # User Eli Zaretskii # Date 1220699643 0 # Node ID 5c5323a73e604ec4fff06131f947b1d80e2cbcc8 # Parent 9d333935545336bcb48d870a0daaabe09d1e8bdb (IT_menu_display): Use STRING_CHAR_ADVANCE instead of a "char *q" to access menu text and advance through it. Revert the change that displayed ">" instead of ASCII character 0x10. diff -r 9d3339355453 -r 5c5323a73e60 src/msdos.c --- a/src/msdos.c Sat Sep 06 10:05:45 2008 +0000 +++ b/src/msdos.c Sat Sep 06 11:14:03 2008 +0000 @@ -3556,7 +3556,7 @@ { int i, j, face, width, mx, my, enabled, mousehere, row, col; struct glyph *text, *p; - char *q; + const unsigned char *q; struct frame *sf = SELECTED_FRAME(); menu_help_message = NULL; @@ -3590,18 +3590,19 @@ p++; for (j = 0, q = menu->text[i]; *q; j++) { - if (*q > 26) + unsigned c = STRING_CHAR_ADVANCE (q); + + if (c > 26) { - BUILD_CHAR_GLYPH (*p, *q++, face, 0); + BUILD_CHAR_GLYPH (*p, c, face, 0); p++; } else /* make '^x' */ { - /* FIXME: need to handle non-ASCII characters! */ BUILD_CHAR_GLYPH (*p, '^', face, 0); p++; j++; - BUILD_CHAR_GLYPH (*p, *q++ + 64, face, 0); + BUILD_CHAR_GLYPH (*p, c + 64, face, 0); p++; } } @@ -3614,9 +3615,9 @@ for (; j < max_width - 2; j++, p++) BUILD_CHAR_GLYPH (*p, ' ', face, 0); - /* FIXME: should use Unicode codepoint for what Emacs 22.x - displayed here. */ - BUILD_CHAR_GLYPH (*p, menu->submenu[i] ? '>' : ' ', face, 0); + /* 16 is the character code of a character that on DOS terminal + produces a nice-looking right-pointing arrow glyph. */ + BUILD_CHAR_GLYPH (*p, menu->submenu[i] ? 16 : ' ', face, 0); p++; IT_write_glyphs (sf, text, max_width); }