Commit 53cea142 authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

tweaks: use memory on the stack instead of calling malloc() and free()

Rename some variables in the process, and remove two cluttering asserts.
No related merge requests found
Showing with 12 additions and 21 deletions
+12 -21
......@@ -1812,7 +1812,7 @@ int do_mouse(void)
* TRUE. */
void do_output(char *output, size_t output_len, bool allow_cntrls)
{
char *char_buf = charalloc(mb_cur_max());
char onechar[mb_cur_max()];
int char_len;
size_t current_len = strlen(openfile->current->data);
size_t i = 0;
......@@ -1832,7 +1832,7 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
output[i] = '\n';
/* Get the next multibyte character. */
char_len = parse_mbchar(output + i, char_buf, NULL);
char_len = parse_mbchar(output + i, onechar, NULL);
i += char_len;
......@@ -1853,7 +1853,7 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
charmove(openfile->current->data + openfile->current_x + char_len,
openfile->current->data + openfile->current_x,
current_len - openfile->current_x + 1);
strncpy(openfile->current->data + openfile->current_x, char_buf,
strncpy(openfile->current->data + openfile->current_x, onechar,
char_len);
current_len += char_len;
openfile->totsize++;
......@@ -1893,8 +1893,6 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
refresh_needed = TRUE;
#endif
free(char_buf);
openfile->placewewant = xplustabs();
#ifndef DISABLE_COLOR
......
......@@ -197,7 +197,7 @@ void do_statusbar_output(int *the_input, size_t input_len,
bool filtering)
{
char *output = charalloc(input_len + 1);
char *char_buf = charalloc(mb_cur_max());
char onechar[mb_cur_max()];
int i, char_len;
/* Copy the typed stuff so it can be treated. */
......@@ -213,7 +213,7 @@ void do_statusbar_output(int *the_input, size_t input_len,
output[i] = '\n';
/* Interpret the next multibyte character. */
char_len = parse_mbchar(output + i, char_buf, NULL);
char_len = parse_mbchar(output + i, onechar, NULL);
i += char_len;
......@@ -225,12 +225,11 @@ void do_statusbar_output(int *the_input, size_t input_len,
answer = charealloc(answer, strlen(answer) + char_len + 1);
charmove(answer + statusbar_x + char_len, answer + statusbar_x,
strlen(answer) - statusbar_x + 1);
strncpy(answer + statusbar_x, char_buf, char_len);
strncpy(answer + statusbar_x, onechar, char_len);
statusbar_x += char_len;
}
free(char_buf);
free(output);
update_the_statusbar();
......
......@@ -1682,25 +1682,19 @@ ssize_t break_line(const char *line, ssize_t goal, bool snap_at_nl)
size_t indent_length(const char *line)
{
size_t len = 0;
char *blank_mb;
int blank_mb_len;
assert(line != NULL);
blank_mb = charalloc(mb_cur_max());
char onechar[mb_cur_max()];
int charlen;
while (*line != '\0') {
blank_mb_len = parse_mbchar(line, blank_mb, NULL);
charlen = parse_mbchar(line, onechar, NULL);
if (!is_blank_mbchar(blank_mb))
if (!is_blank_mbchar(onechar))
break;
line += blank_mb_len;
len += blank_mb_len;
line += charlen;
len += charlen;
}
free(blank_mb);
return len;
}
#endif /* !NANO_TINY || !DISABLE_JUSTIFY */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment