if (args) {
prog = args[0];
arg = NULL;
- } else if (scroll || utmp) {
- prog = scroll ? scroll : utmp;
- arg = scroll ? utmp : NULL;
+ } else if (scroll) {
+ prog = scroll;
+ arg = utmp ? utmp : sh;
+ } else if (utmp) {
+ prog = utmp;
+ arg = NULL;
} else {
prog = sh;
arg = NULL;
{
static char buf[BUFSIZ];
static int buflen = 0;
- int written;
- int ret;
+ int ret, written;
/* append read bytes to unprocessed bytes */
ret = read(cmdfd, buf+buflen, LEN(buf)-buflen);
switch (ret) {
case 0:
- fputs("Found EOF in input\n", stderr);
exit(0);
case -1:
die("couldn't read from shell: %s\n", strerror(errno));
buflen += ret;
written = twrite(buf, buflen, 0);
buflen -= written;
- /* keep any uncomplete utf8 char for the next call */
+ /* keep any incomplete UTF-8 byte sequence for the next call */
if (buflen > 0)
memmove(buf, buf + written, buflen);
return ret;