#include "terminal.h"
#include "ldisc.h"
-#define ECHOING (ldisc->cfg->localecho == LD_YES || \
- (ldisc->cfg->localecho == LD_BACKEND && \
+#define ECHOING (ldisc->cfg->localecho == FORCE_ON || \
+ (ldisc->cfg->localecho == AUTO && \
(ldisc->back->ldisc(ldisc->backhandle, LD_ECHO) || \
term_ldisc(ldisc->term, LD_ECHO))))
-#define EDITING (ldisc->cfg->localedit == LD_YES || \
- (ldisc->cfg->localedit == LD_BACKEND && \
+#define EDITING (ldisc->cfg->localedit == FORCE_ON || \
+ (ldisc->cfg->localedit == AUTO && \
(ldisc->back->ldisc(ldisc->backhandle, LD_EDIT) || \
term_ldisc(ldisc->term, LD_EDIT))))
static void c_write(Ldisc ldisc, char *buf, int len)
{
- from_backend(ldisc->term, 0, buf, len);
+ from_backend(ldisc->frontend, 0, buf, len);
}
static int plen(Ldisc ldisc, unsigned char c)
Backend *back, void *backhandle,
void *frontend)
{
- Ldisc ldisc = smalloc(sizeof(*ldisc));
+ Ldisc ldisc = snew(struct ldisc_tag);
ldisc->buf = NULL;
ldisc->buflen = 0;
bsb(ldisc, plen(ldisc, ldisc->buf[ldisc->buflen - 1]));
ldisc->buflen--;
if (ldisc->buflen > 0 &&
- isspace(ldisc->buf[ldisc->buflen - 1]) &&
- !isspace(ldisc->buf[ldisc->buflen]))
+ isspace((unsigned char)ldisc->buf[ldisc->buflen-1]) &&
+ !isspace((unsigned char)ldisc->buf[ldisc->buflen]))
break;
}
break;
default_case:
if (ldisc->buflen >= ldisc->bufsiz) {
ldisc->bufsiz = ldisc->buflen + 256;
- ldisc->buf = srealloc(ldisc->buf, ldisc->bufsiz);
+ ldisc->buf = sresize(ldisc->buf, ldisc->bufsiz, char);
}
ldisc->buf[ldisc->buflen++] = c;
if (ECHOING)