diff options
author | Pedro F. Giffuni <pfg@FreeBSD.org> | 2017-09-13 15:57:58 +0000 |
---|---|---|
committer | Pedro F. Giffuni <pfg@FreeBSD.org> | 2017-09-13 15:57:58 +0000 |
commit | 8c36b0434ca4a5ba6df2724542048eb219af7a34 (patch) | |
tree | b6315213d0c73ac7d01023a1a82d568559b68b19 /eln.c | |
parent | 70f1d4d70d0c78aa69c52d977130f4046851c4a3 (diff) |
Notes
Diffstat (limited to 'eln.c')
-rw-r--r-- | eln.c | 46 |
1 files changed, 21 insertions, 25 deletions
@@ -1,4 +1,4 @@ -/* $NetBSD: eln.c,v 1.28 2016/02/28 23:02:24 christos Exp $ */ +/* $NetBSD: eln.c,v 1.34 2016/05/09 21:37:34 christos Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: eln.c,v 1.28 2016/02/28 23:02:24 christos Exp $"); +__RCSID("$NetBSD: eln.c,v 1.34 2016/05/09 21:37:34 christos Exp $"); #endif /* not lint && not SCCSID */ #include <errno.h> @@ -37,7 +37,7 @@ __RCSID("$NetBSD: eln.c,v 1.28 2016/02/28 23:02:24 christos Exp $"); #include "el.h" -public int +int el_getc(EditLine *el, char *cp) { int num_read; @@ -47,7 +47,7 @@ el_getc(EditLine *el, char *cp) *cp = '\0'; if (num_read <= 0) return num_read; - num_read = ct_wctob(wc); + num_read = wctob(wc); if (num_read == EOF) { errno = ERANGE; return -1; @@ -58,8 +58,7 @@ el_getc(EditLine *el, char *cp) } -#ifdef WIDECHAR -public void +void el_push(EditLine *el, const char *str) { /* Using multibyte->wide string decoding works fine under single-byte @@ -68,7 +67,7 @@ el_push(EditLine *el, const char *str) } -public const char * +const char * el_gets(EditLine *el, int *nread) { const wchar_t *tmp; @@ -86,24 +85,23 @@ el_gets(EditLine *el, int *nread) } -public int +int el_parse(EditLine *el, int argc, const char *argv[]) { int ret; const wchar_t **wargv; - wargv = (const wchar_t **) - ct_decode_argv(argc, argv, &el->el_lgcyconv); + wargv = (void *)ct_decode_argv(argc, argv, &el->el_lgcyconv); if (!wargv) return -1; ret = el_wparse(el, argc, wargv); - ct_free_argv(wargv); + el_free(wargv); return ret; } -public int +int el_set(EditLine *el, int op, ...) { va_list ap; @@ -172,8 +170,7 @@ el_set(EditLine *el, int op, ...) if ((argv[i] = va_arg(ap, const char *)) == NULL) break; argv[0] = argv[i] = NULL; - wargv = (const wchar_t **) - ct_decode_argv(i + 1, argv, &el->el_lgcyconv); + wargv = (void *)ct_decode_argv(i + 1, argv, &el->el_lgcyconv); if (!wargv) { ret = -1; goto out; @@ -185,29 +182,29 @@ el_set(EditLine *el, int op, ...) */ switch (op) { case EL_BIND: - wargv[0] = STR("bind"); + wargv[0] = L"bind"; ret = map_bind(el, i, wargv); break; case EL_TELLTC: - wargv[0] = STR("telltc"); + wargv[0] = L"telltc"; ret = terminal_telltc(el, i, wargv); break; case EL_SETTC: - wargv[0] = STR("settc"); + wargv[0] = L"settc"; ret = terminal_settc(el, i, wargv); break; case EL_ECHOTC: - wargv[0] = STR("echotc"); + wargv[0] = L"echotc"; ret = terminal_echotc(el, i, wargv); break; case EL_SETTY: - wargv[0] = STR("setty"); + wargv[0] = L"setty"; ret = tty_stty(el, i, wargv); break; default: ret = -1; } - ct_free_argv(wargv); + el_free(wargv); break; } @@ -227,9 +224,9 @@ el_set(EditLine *el, int op, ...) goto out; } /* XXX: The two strdup's leak */ - ret = map_addfunc(el, Strdup(wargv[0]), Strdup(wargv[1]), + ret = map_addfunc(el, wcsdup(wargv[0]), wcsdup(wargv[1]), func); - ct_free_argv(wargv); + el_free(wargv); break; } case EL_HIST: { /* hist_fun_t, const char * */ @@ -273,7 +270,7 @@ out: } -public int +int el_get(EditLine *el, int op, ...) { va_list ap; @@ -366,7 +363,7 @@ el_line(EditLine *el) const LineInfoW *winfo = el_wline(el); LineInfo *info = &el->el_lgcylinfo; size_t offset; - const Char *p; + const wchar_t *p; info->buffer = ct_encode_string(winfo->buffer, &el->el_lgcyconv); @@ -389,4 +386,3 @@ el_insertstr(EditLine *el, const char *str) { return el_winsertstr(el, ct_decode_string(str, &el->el_lgcyconv)); } -#endif /* WIDECHAR */ |