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:
parent
f8a260d59f
commit
b024b57644
8
config.c
8
config.c
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user