Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Fix bug in tputc writing to io file
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
9760b6c
..
a0bd69f
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;
}
@@
-953,7
+953,7
@@
treset(void) {
term.tabs[i] = 1;
term.top = 0, term.bot = term.row - 1;
term.mode = MODE_WRAP;
term.tabs[i] = 1;
term.top = 0, term.bot = term.row - 1;
term.mode = MODE_WRAP;
- xclear(0, 0, xw.w, xw.h);
+
tclearregion(0, 0, term.col-1, term.row-1);
}
tclearregion(0, 0, term.col-1, term.row-1);
}
@@
-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) {
@@
-1728,6
+1728,7
@@
tputc(char *c) {
case 'c': /* RIS -- Reset to inital state */
treset();
term.esc = 0;
case 'c': /* RIS -- Reset to inital state */
treset();
term.esc = 0;
+ xclear(0, 0, xw.w, xw.h);
xresettitle();
break;
case '=': /* DECPAM -- Application keypad */
xresettitle();
break;
case '=': /* DECPAM -- Application keypad */
@@
-2456,9
+2457,9
@@
main(int argc, char *argv[]) {
run:
setlocale(LC_CTYPE, "");
run:
setlocale(LC_CTYPE, "");
- xinit();
tnew(80, 24);
ttynew();
tnew(80, 24);
ttynew();
+ xinit();
selinit();
run();
return 0;
selinit();
run();
return 0;