Commit Diff


commit - 23af75fc752f703299921b5a4e866a3ac83b5479
commit + 28f56c8842a2a473d1c618dcfed964a1dd1493c6
blob - 455f7f41a7de4b620f8457c565d92682b3aed89e
blob + 21a50c16cff7e9c5d9d77e65c671342222005857
--- st.c
+++ st.c
@@ -454,7 +454,7 @@ static void mousereport(XEvent *);
 
 static size_t utf8decode(char *, long *, size_t);
 static long utf8decodebyte(uchar, size_t *);
-static size_t utf8encode(long, char *, size_t);
+static size_t utf8encode(long, char *);
 static char utf8encodebyte(long, size_t);
 static size_t utf8len(char *);
 static size_t utf8validate(long *, size_t);
@@ -605,11 +605,11 @@ utf8decodebyte(uchar c, size_t *len) {
 }
 
 size_t
-utf8encode(long u, char *c, size_t clen) {
+utf8encode(long u, char *c) {
 	size_t len, i;
 
 	len = utf8validate(&u, 0);
-	if(clen < len)
+	if(len > UTF_SIZ)
 		return 0;
 	for(i = len - 1; i != 0; --i) {
 		c[i] = utf8encodebyte(u, 0);
@@ -1264,7 +1264,7 @@ ttyread(void) {
 	buflen += ret;
 	ptr = buf;
 	while((charsize = utf8decode(ptr, &unicodep, buflen))) {
-		utf8encode(unicodep, s, UTF_SIZ);
+		utf8encode(unicodep, s);
 		tputc(s, charsize);
 		ptr += charsize;
 		buflen -= charsize;
@@ -3741,7 +3741,7 @@ kpress(XEvent *ev) {
 		if(IS_SET(MODE_8BIT)) {
 			if(*buf < 0177) {
 				c = *buf | 0x80;
-				len = utf8encode(c, buf, UTF_SIZ);
+				len = utf8encode(c, buf);
 			}
 		} else {
 			buf[1] = buf[0];