static size_t utf8decode(char *, long *, size_t);
static long utf8decodebyte(char, 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);
}
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);
siz-= n + 1;
}
*q = '\0';
- system(cmd);
+ if (system(cmd) != 0)
+ perror("Couldn't call stty");
}
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;
term.esc &= ~(ESC_STR_END|ESC_STR);
strparse();
- narg = strescseq.narg;
- par = atoi(strescseq.args[0]);
+ par = (narg = strescseq.narg) ? atoi(strescseq.args[0]) : 0;
switch(strescseq.type) {
case ']': /* OSC -- Operating System Command */
Color *cp;
if(loaded) {
- for (cp = dc.col; cp < dc.col + LEN(dc.col); ++cp)
+ for (cp = dc.col; cp < &dc.col[LEN(dc.col)]; ++cp)
XftColorFree(xw.dpy, xw.vis, xw.cmap, cp);
}
Glyph base, new;
char buf[DRAW_BUF_SIZ];
bool ena_sel = sel.ob.x != -1 && sel.alt == IS_SET(MODE_ALTSCREEN);
- long unicodep;
if(!(xw.state & WIN_VISIBLE))
return;
base = new;
}
- sl = utf8decode(new.c, &unicodep, UTF_SIZ);
+ sl = utf8len(new.c);
memcpy(buf+ib, new.c, sl);
ib += sl;
ic += (new.mode & ATTR_WIDE)? 2 : 1;
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];
if(argc > 0) {
/* eat all remaining arguments */
opt_cmd = argv;
- if(!opt_title)
+ if(!opt_title && !opt_line)
opt_title = basename(xstrdup(argv[0]));
}
setlocale(LC_CTYPE, "");