Make behavior of builtin executables closer to that of builtin dlls.
Fixed case sensitivity of builtin executables.

diff --git a/loader/module.c b/loader/module.c
index 19a7a8e..637c693 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -1194,7 +1194,7 @@
 	WINE_MODREF *pwm;
 	int i;
 	enum loadorder_type loadorder[LOADORDER_NTYPES];
-	LPSTR filename, p;
+	LPSTR filename;
         const char *filetype = "";
         DWORD found;
         BOOL allocated_libdir = FALSE;
@@ -1222,28 +1222,7 @@
 	/* build the modules filename */
         if (!found)
 	{
-	    if ( ! GetSystemDirectoryA ( filename, MAX_PATH ) )
-  	        goto error;
-
-	    /* if the library name contains a path and can not be found,
-	     * return an error.
-	     * exception: if the path is the system directory, proceed,
-	     * so that modules which are not PE modules can be loaded.
-	     * If the library name does not contain a path and can not
-	     * be found, assume the system directory is meant */
-
-	    if ( ! FILE_strncasecmp ( filename, libname, strlen ( filename ) ))
-	        strcpy ( filename, libname );
-	    else
-	    {
-                if (FILE_contains_path(libname)) goto error;
-                strcat ( filename, "\\" );
-                strcat ( filename, libname );
-	    }
-
-	    /* if the filename doesn't have an extension, append .DLL */
-	    if (!(p = strrchr( filename, '.')) || strchr( p, '/' ) || strchr( p, '\\'))
-	        strcat( filename, ".dll" );
+            if (!MODULE_GetBuiltinPath( libname, ".dll", filename, MAX_PATH )) goto error;
 	}
 
 	/* Check for already loaded module */