{
struct controlset *s;
union control *c;
+ char *str;
if (!midsession) {
/*
dlg_stdcheckbox_handler, I(offsetof(Config,ctrlaltkeys)));
/*
- * Windows allows an arbitrary .WAV to be played as a bell. For
- * this we must search the existing controlset for the
- * radio-button set controlling the `beep' option, and add an
- * extra button to it.
+ * Windows allows an arbitrary .WAV to be played as a bell, and
+ * also the use of the PC speaker. For this we must search the
+ * existing controlset for the radio-button set controlling the
+ * `beep' option, and add extra buttons to it.
*
* Note that although this _looks_ like a hideous hack, it's
* actually all above board. The well-defined interface to the
if (c->generic.type == CTRL_RADIO &&
c->generic.context.i == offsetof(Config, beep)) {
assert(c->generic.handler == dlg_stdradiobutton_handler);
- c->radio.nbuttons++;
+ c->radio.nbuttons += 2;
c->radio.buttons =
- srealloc(c->radio.buttons,
- c->radio.nbuttons * sizeof(*c->radio.buttons));
+ sresize(c->radio.buttons, c->radio.nbuttons, char *);
c->radio.buttons[c->radio.nbuttons-1] =
dupstr("Play a custom sound file");
+ c->radio.buttons[c->radio.nbuttons-2] =
+ dupstr("Beep using the PC speaker");
c->radio.buttondata =
- srealloc(c->radio.buttondata,
- c->radio.nbuttons * sizeof(*c->radio.buttondata));
+ sresize(c->radio.buttondata, c->radio.nbuttons, intorptr);
c->radio.buttondata[c->radio.nbuttons-1] = I(BELL_WAVEFILE);
+ c->radio.buttondata[c->radio.nbuttons-2] = I(BELL_PCSPEAKER);
if (c->radio.shortcuts) {
c->radio.shortcuts =
- srealloc(c->radio.shortcuts,
- (c->radio.nbuttons *
- sizeof(*c->radio.shortcuts)));
+ sresize(c->radio.shortcuts, c->radio.nbuttons, char);
c->radio.shortcuts[c->radio.nbuttons-1] = NO_SHORTCUT;
+ c->radio.shortcuts[c->radio.nbuttons-2] = NO_SHORTCUT;
}
break;
}
* additional options when working with line-drawing
* characters.
*/
- s = ctrl_getset(b, "Window/Translation", "linedraw",
- "Adjust how PuTTY displays line drawing characters");
+ str = dupprintf("Adjust how %s displays line drawing characters", appname);
+ s = ctrl_getset(b, "Window/Translation", "linedraw", str);
+ sfree(str);
{
int i;
for (i = 0; i < s->ncontrols; i++) {
if (c->generic.type == CTRL_RADIO &&
c->generic.context.i == offsetof(Config, vtmode)) {
assert(c->generic.handler == dlg_stdradiobutton_handler);
- c->radio.nbuttons += 2;
+ c->radio.nbuttons += 3;
c->radio.buttons =
- srealloc(c->radio.buttons,
- c->radio.nbuttons * sizeof(*c->radio.buttons));
+ sresize(c->radio.buttons, c->radio.nbuttons, char *);
+ c->radio.buttons[c->radio.nbuttons-3] =
+ dupstr("Font has XWindows encoding");
c->radio.buttons[c->radio.nbuttons-2] =
dupstr("Use font in both ANSI and OEM modes");
c->radio.buttons[c->radio.nbuttons-1] =
dupstr("Use font in OEM mode only");
c->radio.buttondata =
- srealloc(c->radio.buttondata,
- c->radio.nbuttons * sizeof(*c->radio.buttondata));
+ sresize(c->radio.buttondata, c->radio.nbuttons, intorptr);
+ c->radio.buttondata[c->radio.nbuttons-3] = I(VT_XWINDOWS);
c->radio.buttondata[c->radio.nbuttons-2] = I(VT_OEMANSI);
c->radio.buttondata[c->radio.nbuttons-1] = I(VT_OEMONLY);
if (!c->radio.shortcuts) {
int j;
- c->radio.shortcuts =
- smalloc((c->radio.nbuttons *
- sizeof(*c->radio.shortcuts)));
+ c->radio.shortcuts = snewn(c->radio.nbuttons, char);
for (j = 0; j < c->radio.nbuttons; j++)
c->radio.shortcuts[j] = NO_SHORTCUT;
} else {
- c->radio.shortcuts =
- srealloc(c->radio.shortcuts,
- (c->radio.nbuttons *
- sizeof(*c->radio.shortcuts)));
+ c->radio.shortcuts = sresize(c->radio.shortcuts,
+ c->radio.nbuttons, char);
}
+ c->radio.shortcuts[c->radio.nbuttons-3] = 'x';
c->radio.shortcuts[c->radio.nbuttons-2] = 'b';
c->radio.shortcuts[c->radio.nbuttons-1] = 'e';
break;