Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

tty: vt: define an enum for CSI+m codes

It's always confusing to read all those case 0:, case 1: etc. in csi_*
handlers. Define enum entries for all those constants in CSI+m and use
them in csi_m().

Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Tested-by: Helge Deller <deller@gmx.de> # parisc STI console
Link: https://lore.kernel.org/r/20240122110401.7289-10-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Jiri Slaby (SUSE) and committed by
Greg Kroah-Hartman
09e7f9f6 d4c0c481

+69 -29
+69 -29
drivers/tty/vt/vt.c
··· 1676 1676 return i; 1677 1677 } 1678 1678 1679 + enum { 1680 + CSI_m_DEFAULT = 0, 1681 + CSI_m_BOLD = 1, 1682 + CSI_m_HALF_BRIGHT = 2, 1683 + CSI_m_ITALIC = 3, 1684 + CSI_m_UNDERLINE = 4, 1685 + CSI_m_BLINK = 5, 1686 + CSI_m_REVERSE = 7, 1687 + CSI_m_PRI_FONT = 10, 1688 + CSI_m_ALT_FONT1 = 11, 1689 + CSI_m_ALT_FONT2 = 12, 1690 + CSI_m_DOUBLE_UNDERLINE = 21, 1691 + CSI_m_NORMAL_INTENSITY = 22, 1692 + CSI_m_NO_ITALIC = 23, 1693 + CSI_m_NO_UNDERLINE = 24, 1694 + CSI_m_NO_BLINK = 25, 1695 + CSI_m_NO_REVERSE = 27, 1696 + CSI_m_FG_COLOR_BEG = 30, 1697 + CSI_m_FG_COLOR_END = 37, 1698 + CSI_m_FG_COLOR = 38, 1699 + CSI_m_DEFAULT_FG_COLOR = 39, 1700 + CSI_m_BG_COLOR_BEG = 40, 1701 + CSI_m_BG_COLOR_END = 47, 1702 + CSI_m_BG_COLOR = 48, 1703 + CSI_m_DEFAULT_BG_COLOR = 49, 1704 + CSI_m_BRIGHT_FG_COLOR_BEG = 90, 1705 + CSI_m_BRIGHT_FG_COLOR_END = 97, 1706 + CSI_m_BRIGHT_FG_COLOR_OFF = CSI_m_BRIGHT_FG_COLOR_BEG - CSI_m_FG_COLOR_BEG, 1707 + CSI_m_BRIGHT_BG_COLOR_BEG = 100, 1708 + CSI_m_BRIGHT_BG_COLOR_END = 107, 1709 + CSI_m_BRIGHT_BG_COLOR_OFF = CSI_m_BRIGHT_BG_COLOR_BEG - CSI_m_BG_COLOR_BEG, 1710 + }; 1711 + 1679 1712 /* console_lock is held */ 1680 1713 static void csi_m(struct vc_data *vc) 1681 1714 { ··· 1716 1683 1717 1684 for (i = 0; i <= vc->vc_npar; i++) 1718 1685 switch (vc->vc_par[i]) { 1719 - case 0: /* all attributes off */ 1686 + case CSI_m_DEFAULT: /* all attributes off */ 1720 1687 default_attr(vc); 1721 1688 break; 1722 - case 1: 1689 + case CSI_m_BOLD: 1723 1690 vc->state.intensity = VCI_BOLD; 1724 1691 break; 1725 - case 2: 1692 + case CSI_m_HALF_BRIGHT: 1726 1693 vc->state.intensity = VCI_HALF_BRIGHT; 1727 1694 break; 1728 - case 3: 1695 + case CSI_m_ITALIC: 1729 1696 vc->state.italic = true; 1730 1697 break; 1731 - case 21: 1698 + case CSI_m_DOUBLE_UNDERLINE: 1732 1699 /* 1733 1700 * No console drivers support double underline, so 1734 1701 * convert it to a single underline. 1735 1702 */ 1736 - case 4: 1703 + case CSI_m_UNDERLINE: 1737 1704 vc->state.underline = true; 1738 1705 break; 1739 - case 5: 1706 + case CSI_m_BLINK: 1740 1707 vc->state.blink = true; 1741 1708 break; 1742 - case 7: 1709 + case CSI_m_REVERSE: 1743 1710 vc->state.reverse = true; 1744 1711 break; 1745 - case 10: /* ANSI X3.64-1979 (SCO-ish?) 1712 + case CSI_m_PRI_FONT: /* ANSI X3.64-1979 (SCO-ish?) 1746 1713 * Select primary font, don't display control chars if 1747 1714 * defined, don't set bit 8 on output. 1748 1715 */ ··· 1750 1717 vc->vc_disp_ctrl = 0; 1751 1718 vc->vc_toggle_meta = 0; 1752 1719 break; 1753 - case 11: /* ANSI X3.64-1979 (SCO-ish?) 1720 + case CSI_m_ALT_FONT1: /* ANSI X3.64-1979 (SCO-ish?) 1754 1721 * Select first alternate font, lets chars < 32 be 1755 1722 * displayed as ROM chars. 1756 1723 */ ··· 1758 1725 vc->vc_disp_ctrl = 1; 1759 1726 vc->vc_toggle_meta = 0; 1760 1727 break; 1761 - case 12: /* ANSI X3.64-1979 (SCO-ish?) 1728 + case CSI_m_ALT_FONT2: /* ANSI X3.64-1979 (SCO-ish?) 1762 1729 * Select second alternate font, toggle high bit 1763 1730 * before displaying as ROM char. 1764 1731 */ ··· 1766 1733 vc->vc_disp_ctrl = 1; 1767 1734 vc->vc_toggle_meta = 1; 1768 1735 break; 1769 - case 22: 1736 + case CSI_m_NORMAL_INTENSITY: 1770 1737 vc->state.intensity = VCI_NORMAL; 1771 1738 break; 1772 - case 23: 1739 + case CSI_m_NO_ITALIC: 1773 1740 vc->state.italic = false; 1774 1741 break; 1775 - case 24: 1742 + case CSI_m_NO_UNDERLINE: 1776 1743 vc->state.underline = false; 1777 1744 break; 1778 - case 25: 1745 + case CSI_m_NO_BLINK: 1779 1746 vc->state.blink = false; 1780 1747 break; 1781 - case 27: 1748 + case CSI_m_NO_REVERSE: 1782 1749 vc->state.reverse = false; 1783 1750 break; 1784 - case 38: 1751 + case CSI_m_FG_COLOR: 1785 1752 i = vc_t416_color(vc, i, rgb_foreground); 1786 1753 break; 1787 - case 48: 1754 + case CSI_m_BG_COLOR: 1788 1755 i = vc_t416_color(vc, i, rgb_background); 1789 1756 break; 1790 - case 39: 1757 + case CSI_m_DEFAULT_FG_COLOR: 1791 1758 vc->state.color = (vc->vc_def_color & 0x0f) | 1792 1759 (vc->state.color & 0xf0); 1793 1760 break; 1794 - case 49: 1761 + case CSI_m_DEFAULT_BG_COLOR: 1795 1762 vc->state.color = (vc->vc_def_color & 0xf0) | 1796 1763 (vc->state.color & 0x0f); 1797 1764 break; 1798 1765 default: 1799 - if (vc->vc_par[i] >= 90 && vc->vc_par[i] <= 107) { 1800 - if (vc->vc_par[i] < 100) 1766 + if (vc->vc_par[i] >= CSI_m_BRIGHT_FG_COLOR_BEG && 1767 + vc->vc_par[i] <= CSI_m_BRIGHT_BG_COLOR_END) { 1768 + if (vc->vc_par[i] < CSI_m_BRIGHT_BG_COLOR_BEG) 1801 1769 vc->state.intensity = VCI_BOLD; 1802 - vc->vc_par[i] -= 60; 1770 + vc->vc_par[i] -= CSI_m_BRIGHT_FG_COLOR_OFF; 1803 1771 } 1804 - if (vc->vc_par[i] >= 30 && vc->vc_par[i] <= 37) 1805 - vc->state.color = color_table[vc->vc_par[i] - 30] 1806 - | (vc->state.color & 0xf0); 1807 - else if (vc->vc_par[i] >= 40 && vc->vc_par[i] <= 47) 1808 - vc->state.color = (color_table[vc->vc_par[i] - 40] << 4) 1809 - | (vc->state.color & 0x0f); 1772 + if (vc->vc_par[i] >= CSI_m_FG_COLOR_BEG && 1773 + vc->vc_par[i] <= CSI_m_FG_COLOR_END) { 1774 + vc->vc_par[i] -= CSI_m_FG_COLOR_BEG; 1775 + vc->state.color = color_table[vc->vc_par[i]] | 1776 + (vc->state.color & 0xf0); 1777 + } else if (vc->vc_par[i] >= CSI_m_BG_COLOR_BEG && 1778 + vc->vc_par[i] <= CSI_m_BG_COLOR_END) { 1779 + vc->vc_par[i] -= CSI_m_BG_COLOR_BEG; 1780 + vc->state.color = (color_table[vc->vc_par[i]] << 4) | 1781 + (vc->state.color & 0x0f); 1782 + } 1783 + 1810 1784 break; 1811 1785 } 1812 1786 update_attr(vc);