X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=windows%2Fwinctrls.c;h=c9300cdd82d10057c08cdda34a0a1d8d011cc407;hb=615455a913d5d28c1368406474ae4bb06697bf44;hp=4afd3d0149e74c8cbedcdfa7417d614f6f6fd0f7;hpb=9c75fe9a3fa5e6b709f1c210795d1140ca1be2e8;p=PuTTY.git diff --git a/windows/winctrls.c b/windows/winctrls.c index 4afd3d01..c9300cdd 100644 --- a/windows/winctrls.c +++ b/windows/winctrls.c @@ -2102,19 +2102,8 @@ char *dlg_editbox_get(union control *ctrl, void *dlg) { struct dlgparam *dp = (struct dlgparam *)dlg; struct winctrl *c = dlg_findbyctrl(dp, ctrl); - char *ret; - int size; assert(c && c->ctrl->generic.type == CTRL_EDITBOX); - - size = 0; - ret = NULL; - do { - size = size * 4 / 3 + 512; - ret = sresize(ret, size, char); - GetDlgItemText(dp->hwnd, c->base_id+1, ret, size); - } while (!memchr(ret, '\0', size-1)); - - return ret; + return GetDlgItemText_alloc(dp->hwnd, c->base_id+1); } /* The `listbox' functions can also apply to combo boxes. */ @@ -2294,21 +2283,25 @@ void dlg_label_change(union control *ctrl, void *dlg, char const *text) } } -void dlg_filesel_set(union control *ctrl, void *dlg, Filename fn) +void dlg_filesel_set(union control *ctrl, void *dlg, Filename *fn) { struct dlgparam *dp = (struct dlgparam *)dlg; struct winctrl *c = dlg_findbyctrl(dp, ctrl); assert(c && c->ctrl->generic.type == CTRL_FILESELECT); - SetDlgItemText(dp->hwnd, c->base_id+1, fn.path); + SetDlgItemText(dp->hwnd, c->base_id+1, fn->path); } -void dlg_filesel_get(union control *ctrl, void *dlg, Filename *fn) +Filename *dlg_filesel_get(union control *ctrl, void *dlg) { struct dlgparam *dp = (struct dlgparam *)dlg; struct winctrl *c = dlg_findbyctrl(dp, ctrl); + char *tmp; + Filename *ret; assert(c && c->ctrl->generic.type == CTRL_FILESELECT); - GetDlgItemText(dp->hwnd, c->base_id+1, fn->path, lenof(fn->path)); - fn->path[lenof(fn->path)-1] = '\0'; + tmp = GetDlgItemText_alloc(dp->hwnd, c->base_id+1); + ret = filename_from_str(tmp); + sfree(tmp); + return ret; } void dlg_fontsel_set(union control *ctrl, void *dlg, FontSpec *fs)