if (lines) *lines = nlines;
+ sfree(pwidths);
+
return ret;
}
winctrl_add_shortcuts(dp, c);
if (actual_base_id == base_id)
base_id += num_ids;
- }
+ } else {
+ sfree(data);
+ }
if (colstart >= 0) {
/*
SetDlgItemText(dp->hwnd, c->base_id+1, text);
}
-static char *getdlgitemtext_alloc(HWND hwnd, int id)
-{
- char *ret = NULL;
- int size = 0;
-
- do {
- size = size * 4 / 3 + 512;
- ret = sresize(ret, size, char);
- GetDlgItemText(hwnd, id, ret, size);
- } while (!memchr(ret, '\0', size-1));
-
- return ret;
-}
-
char *dlg_editbox_get(union control *ctrl, void *dlg)
{
struct dlgparam *dp = (struct dlgparam *)dlg;
struct winctrl *c = dlg_findbyctrl(dp, ctrl);
assert(c && c->ctrl->generic.type == CTRL_EDITBOX);
- return getdlgitemtext_alloc(dp->hwnd, c->base_id+1);
+ return GetDlgItemText_alloc(dp->hwnd, c->base_id+1);
}
/* The `listbox' functions can also apply to combo boxes. */
char *tmp;
Filename *ret;
assert(c && c->ctrl->generic.type == CTRL_FILESELECT);
- tmp = getdlgitemtext_alloc(dp->hwnd, c->base_id+1);
+ tmp = GetDlgItemText_alloc(dp->hwnd, c->base_id+1);
ret = filename_from_str(tmp);
sfree(tmp);
return ret;
struct winctrl *c = dlg_findbyctrl(dp, ctrl);
int id;
HWND ctl;
+ if (!c)
+ return;
switch (ctrl->generic.type) {
case CTRL_EDITBOX: id = c->base_id + 1; break;
case CTRL_RADIO: