diff options
| author | Karl Heuer | 1996-07-07 22:40:53 +0000 |
|---|---|---|
| committer | Karl Heuer | 1996-07-07 22:40:53 +0000 |
| commit | 3c8feb4a2075ea76577efd18928d686da61f9bb3 (patch) | |
| tree | 81e919f56db04f609348a8e1bd2c85eb97562c5e /src | |
| parent | 33d5e9cc8fdbd14172135e1d91e703458c8f748a (diff) | |
| download | emacs-3c8feb4a2075ea76577efd18928d686da61f9bb3.tar.gz emacs-3c8feb4a2075ea76577efd18928d686da61f9bb3.zip | |
(IT_menu_display): Display control characters as ^X.
(XMenuAddPane, XMenuAddSelection): Adjust menu width for control
characters (displayed as ^X).
Diffstat (limited to 'src')
| -rw-r--r-- | src/msdos.c | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/msdos.c b/src/msdos.c index 99cb08e71ef..447e6a5d203 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -1854,7 +1854,17 @@ IT_menu_display (XMenu *menu, int y, int x, int *faces) | |||
| 1854 | p = text; | 1854 | p = text; |
| 1855 | *p++ = FAST_MAKE_GLYPH (' ', face); | 1855 | *p++ = FAST_MAKE_GLYPH (' ', face); |
| 1856 | for (j = 0, q = menu->text[i]; *q; j++) | 1856 | for (j = 0, q = menu->text[i]; *q; j++) |
| 1857 | *p++ = FAST_MAKE_GLYPH (*q++, face); | 1857 | { |
| 1858 | if (*q > 26) | ||
| 1859 | *p++ = FAST_MAKE_GLYPH (*q++, face); | ||
| 1860 | else /* make '^x' */ | ||
| 1861 | { | ||
| 1862 | *p++ = FAST_MAKE_GLYPH ('^', face); | ||
| 1863 | j++; | ||
| 1864 | *p++ = FAST_MAKE_GLYPH (*q++ + 64, face); | ||
| 1865 | } | ||
| 1866 | } | ||
| 1867 | |||
| 1858 | for (; j < width; j++) | 1868 | for (; j < width; j++) |
| 1859 | *p++ = FAST_MAKE_GLYPH (' ', face); | 1869 | *p++ = FAST_MAKE_GLYPH (' ', face); |
| 1860 | *p++ = FAST_MAKE_GLYPH (menu->submenu[i] ? 16 : ' ', face); | 1870 | *p++ = FAST_MAKE_GLYPH (menu->submenu[i] ? 16 : ' ', face); |
| @@ -1891,6 +1901,7 @@ int | |||
| 1891 | XMenuAddPane (Display *foo, XMenu *menu, char *txt, int enable) | 1901 | XMenuAddPane (Display *foo, XMenu *menu, char *txt, int enable) |
| 1892 | { | 1902 | { |
| 1893 | int len; | 1903 | int len; |
| 1904 | char *p; | ||
| 1894 | 1905 | ||
| 1895 | if (!enable) | 1906 | if (!enable) |
| 1896 | abort (); | 1907 | abort (); |
| @@ -1900,8 +1911,16 @@ XMenuAddPane (Display *foo, XMenu *menu, char *txt, int enable) | |||
| 1900 | menu->text[menu->count] = txt; | 1911 | menu->text[menu->count] = txt; |
| 1901 | menu->panenumber[menu->count] = ++menu->panecount; | 1912 | menu->panenumber[menu->count] = ++menu->panecount; |
| 1902 | menu->count++; | 1913 | menu->count++; |
| 1903 | if ((len = strlen (txt)) > menu->width) | 1914 | |
| 1915 | /* Adjust length for possible control characters (which will | ||
| 1916 | be written as ^x). */ | ||
| 1917 | for (len = strlen (txt), p = txt; *p; p++) | ||
| 1918 | if (*p < 27) | ||
| 1919 | len++; | ||
| 1920 | |||
| 1921 | if (len > menu->width) | ||
| 1904 | menu->width = len; | 1922 | menu->width = len; |
| 1923 | |||
| 1905 | return menu->panecount; | 1924 | return menu->panecount; |
| 1906 | } | 1925 | } |
| 1907 | 1926 | ||
| @@ -1912,6 +1931,7 @@ XMenuAddSelection (Display *bar, XMenu *menu, int pane, | |||
| 1912 | int foo, char *txt, int enable) | 1931 | int foo, char *txt, int enable) |
| 1913 | { | 1932 | { |
| 1914 | int len; | 1933 | int len; |
| 1934 | char *p; | ||
| 1915 | 1935 | ||
| 1916 | if (pane) | 1936 | if (pane) |
| 1917 | if (!(menu = IT_menu_search_pane (menu, pane))) | 1937 | if (!(menu = IT_menu_search_pane (menu, pane))) |
| @@ -1921,8 +1941,16 @@ XMenuAddSelection (Display *bar, XMenu *menu, int pane, | |||
| 1921 | menu->text[menu->count] = txt; | 1941 | menu->text[menu->count] = txt; |
| 1922 | menu->panenumber[menu->count] = enable; | 1942 | menu->panenumber[menu->count] = enable; |
| 1923 | menu->count++; | 1943 | menu->count++; |
| 1924 | if ((len = strlen (txt)) > menu->width) | 1944 | |
| 1945 | /* Adjust length for possible control characters (which will | ||
| 1946 | be written as ^x). */ | ||
| 1947 | for (len = strlen (txt), p = txt; *p; p++) | ||
| 1948 | if (*p < 27) | ||
| 1949 | len++; | ||
| 1950 | |||
| 1951 | if (len > menu->width) | ||
| 1925 | menu->width = len; | 1952 | menu->width = len; |
| 1953 | |||
| 1926 | return XM_SUCCESS; | 1954 | return XM_SUCCESS; |
| 1927 | } | 1955 | } |
| 1928 | 1956 | ||