shell32.shellord.c ParseFieldW function implementation

Rolf Kalbermatter rolf.kalbermatter at citeng.com
Fri Dec 6 07:40:18 CST 2002


ChangeLog:
 * dlls/shell32/shellord.c
   - Implement ParseFieldW function based on its ANSI sibling

Rolf Kalbermatter

Index: dlls/shell32/shellord.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shellord.c,v
retrieving revision 1.107
diff -u -r1.107 shellord.c
--- dlls/shell32/shellord.c	5 Dec 2002 20:33:08 -0000	1.107
+++ dlls/shell32/shellord.c	6 Dec 2002 13:27:15 -0000
@@ -107,9 +107,25 @@
  */
 DWORD WINAPI ParseFieldW(LPCWSTR src, DWORD nField, LPWSTR dst, DWORD len)
 {
-	FIXME("(%s,0x%08lx,%p,%ld) stub\n",
-	  debugstr_w(src), nField, dst, len);
-	return FALSE;
+	WARN("(%s,0x%08lx,%p,%ld) semi-stub.\n", debugstr_w(src), nField, dst, len);
+
+	if (!src || !src[0] || !dst || !len)
+	  return 0;
+
+	/* skip n fields delimited by ',' */
+	while (nField > 1)
+	{
+	  if (*src == 0x0) return FALSE;
+	  if (*src++ == ',') nField--;
+	}
+
+	/* copy part till the next ',' to dst */
+	while ( *src != 0x0 && *src != ',' && (len--)>0 ) *(dst++) = *(src++);
+
+	/* finalize the string */
+	*dst = 0x0;
+
+	return TRUE;
 }

Index: dlls/shell32/shell32_main.h
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_main.h,v
retrieving revision 1.58
diff -u -r1.58 shell32_main.h
--- dlls/shell32/shell32_main.h	21 Nov 2002 23:56:42 -0000	1.58
+++ dlls/shell32/shell32_main.h	6 Dec 2002 13:36:56 -0000
@@ -64,7 +64,8 @@
 BOOL HCR_GetFolderAttributes (REFIID riid, LPDWORD szDest);
 
 INT_PTR CALLBACK AboutDlgProc(HWND,UINT,WPARAM,LPARAM);
-DWORD WINAPI ParseFieldA(LPCSTR src,DWORD field,LPSTR dst,DWORD len);
+DWORD WINAPI ParseFieldA(LPCSTR src, DWORD nField, LPSTR dst, DWORD len);
+DWORD WINAPI ParseFieldW(LPCWSTR src, DWORD nField, LPWSTR dst, DWORD len);
 
 /****************************************************************************
  * Class constructors
 
 /*************************************************************************




More information about the wine-patches mailing list