diff options
Diffstat (limited to 'eln.c')
-rw-r--r-- | eln.c | 34 |
1 files changed, 20 insertions, 14 deletions
@@ -1,4 +1,4 @@ -/* $NetBSD: eln.c,v 1.7 2010/04/15 00:52:48 christos Exp $ */ +/* $NetBSD: eln.c,v 1.14 2012/03/11 21:15:25 christos Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: eln.c,v 1.7 2010/04/15 00:52:48 christos Exp $"); +__RCSID("$NetBSD: eln.c,v 1.14 2012/03/11 21:15:25 christos Exp $"); #endif /* not lint && not SCCSID */ #include "histedit.h" @@ -57,7 +57,7 @@ el_getc(EditLine *el, char *cp) el->el_flags &= ~IGNORE_EXTCHARS; if (num_read > 0) - *cp = (unsigned char)wc; + *cp = (char)wc; return num_read; } @@ -118,6 +118,13 @@ el_set(EditLine *el, int op, ...) break; } + case EL_RESIZE: { + el_zfunc_t p = va_arg(ap, el_zfunc_t); + void *arg = va_arg(ap, void *); + ret = ch_resizefun(el, p, arg); + break; + } + case EL_TERMINAL: /* const char * */ ret = el_wset(el, op, va_arg(ap, char *)); break; @@ -147,7 +154,7 @@ el_set(EditLine *el, int op, ...) break; argv[0] = NULL; wargv = (const wchar_t **) - ct_decode_argv(i, argv, &el->el_lgcyconv); + ct_decode_argv(i + 1, argv, &el->el_lgcyconv); if (!wargv) { ret = -1; goto out; @@ -164,15 +171,15 @@ el_set(EditLine *el, int op, ...) break; case EL_TELLTC: wargv[0] = STR("telltc"); - ret = term_telltc(el, i, wargv); + ret = terminal_telltc(el, i, wargv); break; case EL_SETTC: wargv[0] = STR("settc"); - ret = term_settc(el, i, wargv); + ret = terminal_settc(el, i, wargv); break; case EL_ECHOTC: wargv[0] = STR("echotc"); - ret = term_echotc(el, i, wargv); + ret = terminal_echotc(el, i, wargv); break; case EL_SETTY: wargv[0] = STR("setty"); @@ -208,10 +215,9 @@ el_set(EditLine *el, int op, ...) } case EL_HIST: { /* hist_fun_t, const char * */ hist_fun_t fun = va_arg(ap, hist_fun_t); - ptr_t ptr = va_arg(ap, ptr_t); + void *ptr = va_arg(ap, void *); ret = hist_set(el, fun, ptr); - if (!(el->el_flags & CHARSET_IS_UTF8)) - el->el_flags |= NARROW_HISTORY; + el->el_flags |= NARROW_HISTORY; break; } /* XXX: do we need to change el_rfunc_t? */ @@ -231,7 +237,7 @@ el_set(EditLine *el, int op, ...) case EL_PROMPT_ESC: /* el_pfunc_t, char */ case EL_RPROMPT_ESC: { el_pfunc_t p = va_arg(ap, el_pfunc_t); - char c = va_arg(ap, int); + char c = (char)va_arg(ap, int); ret = prompt_set(el, p, c, op, 0); break; } @@ -269,9 +275,9 @@ el_get(EditLine *el, int op, ...) case EL_RPROMPT_ESC: { el_pfunc_t *p = va_arg(ap, el_pfunc_t *); char *c = va_arg(ap, char *); - wchar_t wc; + wchar_t wc = 0; ret = prompt_get(el, p, &wc, op); - *c = (unsigned char)wc; + *c = (char)wc; break; } @@ -304,7 +310,7 @@ el_get(EditLine *el, int op, ...) if ((argv[i] = va_arg(ap, char *)) == NULL) break; argv[0] = gettc; - ret = term_gettc(el, i, argv); + ret = terminal_gettc(el, i, argv); break; } |