]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - windows/winutils.c
Move a recently introduced utility function out of the file in which I
[PuTTY.git] / windows / winutils.c
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