Introduction
Introduction Statistics Contact Development Disclaimer Help
tFix bug in tputc writing to io file - st - [fork] customized build of st, the …
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit eb360e5fd151107ca8088a9c1aad33aa373c4fb0
parent 246d704ba0c1d83b3eed2388483300687276b797
Author: Roberto E. Vargas Caballero <[email protected]>
Date: Tue, 25 Sep 2012 21:04:35 +0200
Fix bug in tputc writing to io file
If -f options is enabled then tputc() writes all the data to a file. Actual
code assumes that all the strings in 'c' parameters have always 1 byte
length, but this is not always true, because due to utf-8 encoding some
characters can have a diferent length. So it is necessary pass string length
tto tputc in order it can call to write() correctly.
---
st.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Diffstat:
M st.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/st.c b/st.c
t@@ -278,7 +278,7 @@ static void tmoveto(int, int);
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);
t@@ -884,7 +884,7 @@ ttyread(void) {
while(buflen >= UTF_SIZ || isfullutf8(ptr,buflen)) {
charsize = utf8decode(ptr, &utf8c);
utf8encode(&utf8c, s);
- tputc(s);
+ tputc(s, charsize);
ptr += charsize;
buflen -= charsize;
}
t@@ -1641,11 +1641,11 @@ tputtab(bool forward) {
}
void
-tputc(char *c) {
+tputc(char *c, int len) {
char ascii = *c;
if(iofd != -1)
- write(iofd, c, 1);
+ write(iofd, c, len);
if(term.esc & ESC_START) {
if(term.esc & ESC_CSI) {
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.