Removed HEAP_strdupA.

diff --git a/files/drive.c b/files/drive.c
index 0c34655..b294389 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -108,6 +108,14 @@
 
 static HTASK16 DRIVE_LastTask = 0;
 
+/* strdup on the process heap */
+inline static char *heap_strdup( const char *str )
+{
+    INT len = strlen(str) + 1;
+    LPSTR p = HeapAlloc( GetProcessHeap(), 0, len );
+    if (p) memcpy( p, str, len );
+    return p;
+}
 
 /***********************************************************************
  *           DRIVE_GetDriveType
@@ -179,9 +187,9 @@
                 continue;
             }
 
-            drive->root = HEAP_strdupA( GetProcessHeap(), 0, path );
-            drive->dos_cwd  = HEAP_strdupA( GetProcessHeap(), 0, "" );
-            drive->unix_cwd = HEAP_strdupA( GetProcessHeap(), 0, "" );
+            drive->root     = heap_strdup( path );
+            drive->dos_cwd  = heap_strdup( "" );
+            drive->unix_cwd = heap_strdup( "" );
             drive->type     = DRIVE_GetDriveType( name );
             drive->device   = NULL;
             drive->flags    = 0;
@@ -212,7 +220,7 @@
                                       buffer, sizeof(buffer) );
             if (buffer[0])
 	    {
-                drive->device = HEAP_strdupA( GetProcessHeap(), 0, buffer );
+                drive->device = heap_strdup( buffer );
 		if (PROFILE_GetWineIniBool( name, "ReadVolInfo", 1))
                     drive->flags |= DRIVE_READ_VOL_INFO;
 	    }
@@ -239,9 +247,9 @@
     {
         MESSAGE("Warning: no valid DOS drive found, check your configuration file.\n" );
         /* Create a C drive pointing to Unix root dir */
-        DOSDrives[2].root     = HEAP_strdupA( GetProcessHeap(), 0, "/" );
-        DOSDrives[2].dos_cwd  = HEAP_strdupA( GetProcessHeap(), 0, "" );
-        DOSDrives[2].unix_cwd = HEAP_strdupA( GetProcessHeap(), 0, "" );
+        DOSDrives[2].root     = heap_strdup( "/" );
+        DOSDrives[2].dos_cwd  = heap_strdup( "" );
+        DOSDrives[2].unix_cwd = heap_strdup( "" );
         strcpy( DOSDrives[2].label_conf, "Drive C    " );
         DOSDrives[2].serial_conf   = 12345678;
         DOSDrives[2].type     = DRIVE_FIXED;
@@ -694,9 +702,8 @@
 
     HeapFree( GetProcessHeap(), 0, DOSDrives[drive].dos_cwd );
     HeapFree( GetProcessHeap(), 0, DOSDrives[drive].unix_cwd );
-    DOSDrives[drive].dos_cwd  = HEAP_strdupA( GetProcessHeap(), 0,
-                                              full_name.short_name + 3 );
-    DOSDrives[drive].unix_cwd = HEAP_strdupA( GetProcessHeap(), 0, unix_cwd );
+    DOSDrives[drive].dos_cwd  = heap_strdup( full_name.short_name + 3 );
+    DOSDrives[drive].unix_cwd = heap_strdup( unix_cwd );
 
     if (pTask && (pTask->curdrive & 0x80) && 
         ((pTask->curdrive & ~0x80) == drive))
@@ -771,10 +778,10 @@
 	return 0;
     }
 
-    new->root = HEAP_strdupA( GetProcessHeap(), 0, old->root );
-    new->dos_cwd = HEAP_strdupA( GetProcessHeap(), 0, old->dos_cwd );
-    new->unix_cwd = HEAP_strdupA( GetProcessHeap(), 0, old->unix_cwd );
-    new->device = HEAP_strdupA( GetProcessHeap(), 0, old->device );
+    new->root     = heap_strdup( old->root );
+    new->dos_cwd  = heap_strdup( old->dos_cwd );
+    new->unix_cwd = heap_strdup( old->unix_cwd );
+    new->device   = heap_strdup( old->device );
     memcpy ( new->label_conf, old->label_conf, 12 );
     memcpy ( new->label_read, old->label_read, 12 );
     new->serial_conf = old->serial_conf;