]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Move a recently introduced utility function out of the file in which I
authorSimon Tatham <anakin@pobox.com>
Sun, 2 Oct 2011 13:53:58 +0000 (13:53 +0000)
committerSimon Tatham <anakin@pobox.com>
Sun, 2 Oct 2011 13:53:58 +0000 (13:53 +0000)
declared it static, and into winutils.c where it can be more generally
accessible.

[originally from svn r9318]

windows/winctrls.c
windows/winstuff.h
windows/winutils.c

index fa79e6498f16ceaa92486c9eaf21409fde1d7912..c9300cdd82d10057c08cdda34a0a1d8d011cc407 100644 (file)
@@ -2098,26 +2098,12 @@ void dlg_editbox_set(union control *ctrl, void *dlg, char const *text)
     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. */
@@ -2312,7 +2298,7 @@ Filename *dlg_filesel_get(union control *ctrl, void *dlg)
     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;
index e8b70d4e1d1f31052c3a7b519f2aed1475e9d0c3..13ec3d8571a24d9bdcded9da978b3e3910113abe 100644 (file)
@@ -287,6 +287,7 @@ BOOL request_file(filereq *state, OPENFILENAME *of, int preserve, int save);
 filereq *filereq_new(void);
 void filereq_free(filereq *state);
 int message_box(LPCTSTR text, LPCTSTR caption, DWORD style, DWORD helpctxid);
+char *GetDlgItemText_alloc(HWND hwnd, int id);
 void split_into_argv(char *, int *, char ***, char ***);
 
 /*
index 40f1f4a7502054f6b66f9fe03a75c2edcb086c29..2e0183d37493817ae8e8bdb350a6358b02114361 100644 (file)
@@ -150,6 +150,25 @@ void pgp_fingerprints(void)
                HELPCTXID(pgp_fingerprints));
 }
 
+/*
+ * Handy wrapper around GetDlgItemText which doesn't make you invent
+ * an arbitrary length limit on the output string. Returned string is
+ * dynamically allocated; caller must free.
+ */
+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;
+}
+
 /*
  * Split a complete command line into argc/argv, attempting to do
  * it exactly the same way Windows itself would do it (so that