aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--st.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/st.c b/st.c
index 64e0aff..aa5f085 100644
--- a/st.c
+++ b/st.c
@@ -1789,32 +1789,42 @@ tputc(char *c, int len) {
1789 write(iofd, c, len); 1789 write(iofd, c, len);
1790 1790
1791 switch(ascii) { 1791 switch(ascii) {
1792 case '\t': 1792 case '\t': /* HT */
1793 tputtab(1); 1793 tputtab(1);
1794 return; 1794 return;
1795 case '\b': 1795 case '\b': /* BS */
1796 tmoveto(term.c.x-1, term.c.y); 1796 tmoveto(term.c.x-1, term.c.y);
1797 return; 1797 return;
1798 case '\r': 1798 case '\r': /* CR */
1799 tmoveto(0, term.c.y); 1799 tmoveto(0, term.c.y);
1800 return; 1800 return;
1801 case '\f': 1801 case '\f': /* LF */
1802 case '\v': 1802 case '\v': /* VT */
1803 case '\n': 1803 case '\n': /* LF */
1804 /* go to first col if the mode is set */ 1804 /* go to first col if the mode is set */
1805 tnewline(IS_SET(MODE_CRLF)); 1805 tnewline(IS_SET(MODE_CRLF));
1806 return; 1806 return;
1807 case '\a': 1807 case '\a': /* BEL */
1808 if(term.esc & ESC_STR) 1808 if(term.esc & ESC_STR)
1809 break; 1809 break;
1810
1811 if(!(xw.state & WIN_FOCUSED)) 1810 if(!(xw.state & WIN_FOCUSED))
1812 xseturgency(1); 1811 xseturgency(1);
1813 return; 1812 return;
1814 case '\033': 1813 case '\033': /* ESC */
1815 csireset(); 1814 csireset();
1816 term.esc = ESC_START; 1815 term.esc = ESC_START;
1817 return; 1816 return;
1817 case '\016': /* XXX: SO */
1818 case '\017': /* XXX: SI */
1819 case '\032': /* XXX: SUB */
1820 case '\030': /* XXX: CAN */
1821 default:
1822 /* case '\005': ENQ (IGNORED) */
1823 /* case '\000': NUL (IGNORED) */
1824 /* case '\021': XON (IGNORED) */
1825 /* case '\023': XOFF (IGNORED) */
1826 /* case 0177: DEL (IGNORED) */
1827 break;
1818 } 1828 }
1819 1829
1820 if(term.esc & ESC_START) { 1830 if(term.esc & ESC_START) {