1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-04-10 23:58:06 -05:00

Clearing and refilling the code-pages list box can cause a

re-entrant call to its handler in config.c, which destroys the
previous value in cfg->line_codepage. Therefore, preserve the right
value in an automatic variable until all the re-entrant calls have
finished.

[originally from svn r8592]
This commit is contained in:
Simon Tatham 2009-06-10 17:42:15 +00:00
parent f8a260d59f
commit b024b57644

View File

@ -317,14 +317,14 @@ static void codepage_handler(union control *ctrl, void *dlg,
Config *cfg = (Config *)data;
if (event == EVENT_REFRESH) {
int i;
const char *cp;
const char *cp, *thiscp;
dlg_update_start(ctrl, dlg);
strcpy(cfg->line_codepage,
cp_name(decode_codepage(cfg->line_codepage)));
thiscp = cp_name(decode_codepage(cfg->line_codepage));
dlg_listbox_clear(ctrl, dlg);
for (i = 0; (cp = cp_enumerate(i)) != NULL; i++)
dlg_listbox_add(ctrl, dlg, cp);
dlg_editbox_set(ctrl, dlg, cfg->line_codepage);
dlg_editbox_set(ctrl, dlg, thiscp);
strcpy(cfg->line_codepage, thiscp);
dlg_update_done(ctrl, dlg);
} else if (event == EVENT_VALCHANGE) {
dlg_editbox_get(ctrl, dlg, cfg->line_codepage,