commit eae97caa839051061ea4c6250ffade188036ae2d
parent 43953bba6ff00fa78344633e4a194fe058afd8a4
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Tue, 7 Dec 2004 22:24:03 +0000
go back to storing multibyte characters in non-dynamically allocated
arrays of MB_LEN_MAX length, as it's less complex
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2175 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/src/nano.c b/src/nano.c
@@ -3567,13 +3567,13 @@ void do_output(int *kbinput, size_t kbinput_len)
/* Do we have to call edit_refresh(), or can we get away with
* update_line()? */
- char *key = charalloc(
+ char key[
#ifdef NANO_WIDE
- MB_CUR_MAX
+ MB_LEN_MAX
#else
1
#endif
- ); /* The current multibyte character we have. */
+ ]; /* The current multibyte character we have. */
int key_len; /* The length of the current multibyte
* character. */
@@ -3665,8 +3665,6 @@ void do_output(int *kbinput, size_t kbinput_len)
#endif
}
- free(key);
-
/* Turn constant cursor position display back on if it was on
* before. */
if (old_constupdate)
diff --git a/src/winio.c b/src/winio.c
@@ -263,18 +263,17 @@ void unget_input(buffer *input, size_t input_len)
#ifdef NANO_WIDE
if (!ISSET(NO_UTF8)) {
size_t i;
- char *key = charalloc(MB_CUR_MAX);
/* Change all invalid wide character values to -1. */
for (i = 0; i < input_len; i++) {
+ char key[MB_LEN_MAX];
+
if (!input[i].key_code) {
if (wctomb(key, input[i].key) == -1)
input[i].key = -1;
}
}
- free(key);
-
/* Save all of the non-(-1) wide characters in another
* buffer. */
for (i = 0; i < input_len; i++) {