From eae97caa839051061ea4c6250ffade188036ae2d Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Tue, 7 Dec 2004 22:24:03 +0000
Subject: [PATCH] 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
---
 src/nano.c  | 8 +++-----
 src/winio.c | 5 ++---
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/nano.c b/src/nano.c
index 75a800fc..74427851 100644
--- 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
index da52d053..c2509032 100644
--- 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++) {
-- 
GitLab