mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-11 05:51:21 -08:00
(IT_menu_display): Display control characters as ^X.
(XMenuAddPane, XMenuAddSelection): Adjust menu width for control characters (displayed as ^X).
This commit is contained in:
parent
33d5e9cc8f
commit
3c8feb4a20
1 changed files with 31 additions and 3 deletions
34
src/msdos.c
34
src/msdos.c
|
|
@ -1854,7 +1854,17 @@ IT_menu_display (XMenu *menu, int y, int x, int *faces)
|
|||
p = text;
|
||||
*p++ = FAST_MAKE_GLYPH (' ', face);
|
||||
for (j = 0, q = menu->text[i]; *q; j++)
|
||||
*p++ = FAST_MAKE_GLYPH (*q++, face);
|
||||
{
|
||||
if (*q > 26)
|
||||
*p++ = FAST_MAKE_GLYPH (*q++, face);
|
||||
else /* make '^x' */
|
||||
{
|
||||
*p++ = FAST_MAKE_GLYPH ('^', face);
|
||||
j++;
|
||||
*p++ = FAST_MAKE_GLYPH (*q++ + 64, face);
|
||||
}
|
||||
}
|
||||
|
||||
for (; j < width; j++)
|
||||
*p++ = FAST_MAKE_GLYPH (' ', face);
|
||||
*p++ = FAST_MAKE_GLYPH (menu->submenu[i] ? 16 : ' ', face);
|
||||
|
|
@ -1891,6 +1901,7 @@ int
|
|||
XMenuAddPane (Display *foo, XMenu *menu, char *txt, int enable)
|
||||
{
|
||||
int len;
|
||||
char *p;
|
||||
|
||||
if (!enable)
|
||||
abort ();
|
||||
|
|
@ -1900,8 +1911,16 @@ XMenuAddPane (Display *foo, XMenu *menu, char *txt, int enable)
|
|||
menu->text[menu->count] = txt;
|
||||
menu->panenumber[menu->count] = ++menu->panecount;
|
||||
menu->count++;
|
||||
if ((len = strlen (txt)) > menu->width)
|
||||
|
||||
/* Adjust length for possible control characters (which will
|
||||
be written as ^x). */
|
||||
for (len = strlen (txt), p = txt; *p; p++)
|
||||
if (*p < 27)
|
||||
len++;
|
||||
|
||||
if (len > menu->width)
|
||||
menu->width = len;
|
||||
|
||||
return menu->panecount;
|
||||
}
|
||||
|
||||
|
|
@ -1912,6 +1931,7 @@ XMenuAddSelection (Display *bar, XMenu *menu, int pane,
|
|||
int foo, char *txt, int enable)
|
||||
{
|
||||
int len;
|
||||
char *p;
|
||||
|
||||
if (pane)
|
||||
if (!(menu = IT_menu_search_pane (menu, pane)))
|
||||
|
|
@ -1921,8 +1941,16 @@ XMenuAddSelection (Display *bar, XMenu *menu, int pane,
|
|||
menu->text[menu->count] = txt;
|
||||
menu->panenumber[menu->count] = enable;
|
||||
menu->count++;
|
||||
if ((len = strlen (txt)) > menu->width)
|
||||
|
||||
/* Adjust length for possible control characters (which will
|
||||
be written as ^x). */
|
||||
for (len = strlen (txt), p = txt; *p; p++)
|
||||
if (*p < 27)
|
||||
len++;
|
||||
|
||||
if (len > menu->width)
|
||||
menu->width = len;
|
||||
|
||||
return XM_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue