mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
Fix pterm-logtype-crash
[originally from svn r5505]
This commit is contained in:
parent
b36d32b881
commit
e4520ee6c7
29
config.c
29
config.c
@ -50,6 +50,33 @@ static void protocolbuttons_handler(union control *ctrl, void *dlg,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void loggingbuttons_handler(union control *ctrl, void *dlg,
|
||||||
|
void *data, int event)
|
||||||
|
{
|
||||||
|
int button;
|
||||||
|
Config *cfg = (Config *)data;
|
||||||
|
/* This function works just like the standard radio-button handler,
|
||||||
|
* but it has to fall back to "no logging" in situations where the
|
||||||
|
* configured logging type isn't applicable.
|
||||||
|
*/
|
||||||
|
if (event == EVENT_REFRESH) {
|
||||||
|
for (button = 0; button < ctrl->radio.nbuttons; button++)
|
||||||
|
if (cfg->logtype == ctrl->radio.buttondata[button].i)
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* We fell off the end, so we lack the configured logging type */
|
||||||
|
if (button == ctrl->radio.nbuttons) {
|
||||||
|
button=0;
|
||||||
|
cfg->logtype=LGTYP_NONE;
|
||||||
|
}
|
||||||
|
dlg_radiobutton_set(ctrl, dlg, button);
|
||||||
|
} else if (event == EVENT_VALCHANGE) {
|
||||||
|
button = dlg_radiobutton_get(ctrl, dlg);
|
||||||
|
assert(button >= 0 && button < ctrl->radio.nbuttons);
|
||||||
|
cfg->logtype = ctrl->radio.buttondata[button].i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void numeric_keypad_handler(union control *ctrl, void *dlg,
|
static void numeric_keypad_handler(union control *ctrl, void *dlg,
|
||||||
void *data, int event)
|
void *data, int event)
|
||||||
{
|
{
|
||||||
@ -947,7 +974,7 @@ void setup_config_box(struct controlbox *b, struct sesslist *sesslist,
|
|||||||
sshlogname = NULL; /* this will disable the button */
|
sshlogname = NULL; /* this will disable the button */
|
||||||
ctrl_radiobuttons(s, "Session logging:", NO_SHORTCUT, 1,
|
ctrl_radiobuttons(s, "Session logging:", NO_SHORTCUT, 1,
|
||||||
HELPCTX(logging_main),
|
HELPCTX(logging_main),
|
||||||
dlg_stdradiobutton_handler,
|
loggingbuttons_handler,
|
||||||
I(offsetof(Config, logtype)),
|
I(offsetof(Config, logtype)),
|
||||||
"Logging turned off completely", 't', I(LGTYP_NONE),
|
"Logging turned off completely", 't', I(LGTYP_NONE),
|
||||||
"Log printable output only", 'p', I(LGTYP_ASCII),
|
"Log printable output only", 'p', I(LGTYP_ASCII),
|
||||||
|
Loading…
Reference in New Issue
Block a user