winhlp32: Use Win32 APIs instead of strdup().
diff --git a/programs/winhlp32/macro.c b/programs/winhlp32/macro.c
index 0eeaa9b..9e6e5f8 100644
--- a/programs/winhlp32/macro.c
+++ b/programs/winhlp32/macro.c
@@ -47,6 +47,14 @@
/******* helper functions *******/
+static char* StrDup(const char* str)
+{
+ char* dst;
+ dst=HeapAlloc(GetProcessHeap(),0,strlen(str)+1);
+ strcpy(dst, str);
+ return dst;
+}
+
static WINHELP_BUTTON** MACRO_LookupButton(WINHELP_WINDOW* win, LPCSTR name)
{
WINHELP_BUTTON** b;
@@ -711,7 +719,7 @@
else if ((dll = HeapAlloc(GetProcessHeap(), 0, sizeof(*dll))))
{
dll->hLib = hLib;
- dll->name = strdup(dll_name); /* FIXME */
+ dll->name = StrDup(dll_name); /* FIXME: never freed */
dll->next = Globals.dlls;
Globals.dlls = dll;
dll->handler = (WINHELP_LDLLHandler)GetProcAddress(dll->hLib, "LDLLHandler");
@@ -731,10 +739,10 @@
size = ++MACRO_NumLoaded * sizeof(struct MacroDesc);
if (!MACRO_Loaded) MACRO_Loaded = HeapAlloc(GetProcessHeap(), 0, size);
else MACRO_Loaded = HeapReAlloc(GetProcessHeap(), 0, MACRO_Loaded, size);
- MACRO_Loaded[MACRO_NumLoaded - 1].name = strdup(proc); /* FIXME */
+ MACRO_Loaded[MACRO_NumLoaded - 1].name = StrDup(proc); /* FIXME: never freed */
MACRO_Loaded[MACRO_NumLoaded - 1].alias = NULL;
MACRO_Loaded[MACRO_NumLoaded - 1].isBool = 0;
- MACRO_Loaded[MACRO_NumLoaded - 1].arguments = strdup(args); /* FIXME */
+ MACRO_Loaded[MACRO_NumLoaded - 1].arguments = StrDup(args); /* FIXME: never freed */
MACRO_Loaded[MACRO_NumLoaded - 1].fn = fn;
WINE_TRACE("Added %s(%s) at %p\n", proc, args, fn);
}