Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
A reset should reset the line drawing too.
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
2d080e5
..
009ccb4
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-278,7
+278,7
@@
static void tmoveto(int, int);
static void tnew(int, int);
static void tnewline(int);
static void tputtab(bool);
static void tnew(int, int);
static void tnewline(int);
static void tputtab(bool);
-static void tputc(char*);
+static void tputc(char*
, int
);
static void treset(void);
static int tresize(int, int);
static void tscrollup(int, int);
static void treset(void);
static int tresize(int, int);
static void tscrollup(int, int);
@@
-884,7
+884,7
@@
ttyread(void) {
while(buflen >= UTF_SIZ || isfullutf8(ptr,buflen)) {
charsize = utf8decode(ptr, &utf8c);
utf8encode(&utf8c, s);
while(buflen >= UTF_SIZ || isfullutf8(ptr,buflen)) {
charsize = utf8decode(ptr, &utf8c);
utf8encode(&utf8c, s);
- tputc(s);
+ tputc(s
, charsize
);
ptr += charsize;
buflen -= charsize;
}
ptr += charsize;
buflen -= charsize;
}
@@
-1177,7
+1177,7
@@
tsetattr(int *attr, int l) {
switch(attr[i]) {
case 0:
term.c.attr.mode &= ~(ATTR_REVERSE | ATTR_UNDERLINE | ATTR_BOLD \
switch(attr[i]) {
case 0:
term.c.attr.mode &= ~(ATTR_REVERSE | ATTR_UNDERLINE | ATTR_BOLD \
- | ATTR_ITALIC | ATTR_BLINK);
+ | ATTR_ITALIC | ATTR_BLINK
| ATTR_GFX
);
term.c.attr.fg = DefaultFG;
term.c.attr.bg = DefaultBG;
break;
term.c.attr.fg = DefaultFG;
term.c.attr.bg = DefaultBG;
break;
@@
-1641,11
+1641,11
@@
tputtab(bool forward) {
}
void
}
void
-tputc(char *c) {
+tputc(char *c
, int len
) {
char ascii = *c;
if(iofd != -1)
char ascii = *c;
if(iofd != -1)
- write(iofd, c,
1
);
+ write(iofd, c,
len
);
if(term.esc & ESC_START) {
if(term.esc & ESC_CSI) {
if(term.esc & ESC_START) {
if(term.esc & ESC_CSI) {
@@
-1700,6
+1700,7
@@
tputc(char *c) {
strescseq.type = ascii;
term.esc |= ESC_STR;
break;
strescseq.type = ascii;
term.esc |= ESC_STR;
break;
+ case ')':
case '(':
term.esc |= ESC_ALTCHARSET;
break;
case '(':
term.esc |= ESC_ALTCHARSET;
break;