1
0
mirror of https://github.com/Tha14/toxic.git synced 2025-07-01 13:26:44 +02:00

fix memory leaks and safer way to convert strings from wc to mb

This commit is contained in:
Jfreegman
2013-12-08 04:16:49 -05:00
parent e834821348
commit df57adcc6d
5 changed files with 55 additions and 29 deletions

View File

@ -159,7 +159,11 @@ static void prompt_onKey(ToxWindow *self, Tox *m, wint_t key)
/* RETURN key: execute command */
else if (key == '\n') {
wprintw(self->window, "\n");
uint8_t *line = wcs_to_char(prt->line);
uint8_t line[MAX_STR_SIZE];
if (wcs_to_mbs_buf(line, prt->line, MAX_STR_SIZE) == -1)
memset(&line, 0, sizeof(line));
execute(self->window, self, m, line, GLOBAL_COMMAND_MODE);
reset_buf(prt->line, &prt->pos, &prt->len);
}
@ -185,7 +189,12 @@ static void prompt_onDraw(ToxWindow *self, Tox *m)
int p_ofst = px2 != x2 ? 0 : X_OFST;
if (prt->len > 0) {
mvwprintw(self->window, prt->orig_y, X_OFST, wcs_to_char(prt->line));
uint8_t line[MAX_STR_SIZE];
if (wcs_to_mbs_buf(line, prt->line, MAX_STR_SIZE) == -1)
memset(&line, 0, sizeof(line));
mvwprintw(self->window, prt->orig_y, X_OFST, line);
int k = prt->orig_y + ((prt->len + p_ofst) / px2);