Index: dir.c
===================================================================
RCS file: /home/wine/wine/dlls/msvcrt/dir.c,v
retrieving revision 1.17
diff -u -r1.17 dir.c
--- dir.c	19 Feb 2003 03:43:08 -0000	1.17
+++ dir.c	27 Mar 2003 02:42:01 -0000
@@ -670,6 +670,63 @@
 }
 
 /*********************************************************************
+ *		_wfullpath (MSVCRT.@)
+ */
+MSVCRT_wchar_t *_wfullpath(MSVCRT_wchar_t * absPath, const MSVCRT_wchar_t* relPath, unsigned int size)
+{
+  MSVCRT_wchar_t drive[5],dir[MAX_PATH],file[MAX_PATH],ext[MAX_PATH];
+  MSVCRT_wchar_t res[MAX_PATH];
+  static const MSVCRT_wchar_t backslashW[] = {'\\',0};
+  size_t len;
+
+  res[0] = '\0';
+
+  if (!relPath || !*relPath)
+    return _wgetcwd(absPath, size);
+
+  if (size < 4)
+  {
+    *MSVCRT__errno() = MSVCRT_ERANGE;
+    return NULL;
+  }
+
+  TRACE(":resolving relative path '%s'\n",debugstr_w(relPath));
+
+  _wsplitpath(relPath, drive, dir, file, ext);
+
+  /* Get Directory and drive into 'res' */
+  if (!dir[0] || (dir[0] != '/' && dir[0] != '\\'))
+  {
+    /* Relative or no directory given */
+    _wgetdcwd(drive[0] ? toupper(drive[0]) - 'A' + 1 :  0, res, MAX_PATH);
+    strcatW(res,backslashW);
+    if (dir[0])
+      strcatW(res,dir);
+    if (drive[0])
+      res[0] = drive[0]; /* If given a drive, preserve the letter case */
+  }
+  else
+  {
+    strcpyW(res,drive);
+    strcatW(res,dir);
+  }
+
+  strcatW(res,backslashW);
+  strcatW(res,file);
+  strcatW(res,ext);
+  /* msvcrt_fln_fix(res); */
+
+  len = strlenW(res);
+  if (len >= MAX_PATH || len >= (size_t)size)
+    return NULL; /* FIXME: errno? */
+
+  if (!absPath)
+    return _wcsdup(res);
+  strcpyW(absPath,res);
+  return absPath;
+}
+
+/*********************************************************************
  *		_makepath (MSVCRT.@)
  */
 VOID _makepath(char * path, const char * drive,
Index: msvcrt.spec
===================================================================
RCS file: /home/wine/wine/dlls/msvcrt/msvcrt.spec,v
retrieving revision 1.71
diff -u -r1.71 msvcrt.spec
--- msvcrt.spec	20 Mar 2003 23:47:25 -0000	1.71
+++ msvcrt.spec	27 Mar 2003 02:42:03 -0000
@@ -521,7 +521,7 @@
 @ cdecl _wfopen(wstr wstr)
 @ stub _wfreopen #(wstr wstr ptr)
 @ cdecl _wfsopen(wstr wstr long)
-@ stub _wfullpath #(ptr wstr long)
+@ cdecl _wfullpath (wstr wstr long)
 @ cdecl _wgetcwd(wstr long)
 @ cdecl _wgetdcwd(long wstr long)
 @ cdecl _wgetenv(wstr)
