You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/08/17 18:18:07 UTC
svn commit: r805028 - in /commons/sandbox/runtime/trunk/src/main/native:
include/arch/windows/acr_arch.h os/win32/dirent.c
Author: mturk
Date: Mon Aug 17 16:18:07 2009
New Revision: 805028
URL: http://svn.apache.org/viewvc?rev=805028&view=rev
Log:
Append star only on find itself and revert immediately after
Modified:
commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_arch.h
commons/sandbox/runtime/trunk/src/main/native/os/win32/dirent.c
Modified: commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_arch.h
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_arch.h?rev=805028&r1=805027&r2=805028&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_arch.h (original)
+++ commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_arch.h Mon Aug 17 16:18:07 2009
@@ -382,6 +382,9 @@
struct dirent d_dir;
wchar_t d_name[8192];
+ size_t d_star; /* internal position where star is
+ * inserted during readdir
+ */
} DIR;
#define _NSIG 32 /* counting 0; could be 33 (mask is 1-32) */
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/dirent.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/dirent.c?rev=805028&r1=805027&r2=805028&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/dirent.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/dirent.c Mon Aug 17 16:18:07 2009
@@ -69,7 +69,8 @@
len = wcslen(dir->d_name);
if (dir->d_name[len-1] != L'\\')
dir->d_name[len++] = L'\\';
- dir->d_name[len++] = L'*';
+ dir->d_star = len;
+ dir->d_name[len++] = 0;
dir->d_name[len++] = 0;
dir->d_find = INVALID_HANDLE_VALUE;
@@ -140,7 +141,9 @@
else if (dir->d_stat == 0) {
/* Start the search
*/
+ dir->d_name[dir->d_star] = L'*';
dir->d_find = FindFirstFileW(dir->d_name, &wfind);
+ dir->d_name[dir->d_star] = 0;
if (dir->d_find == INVALID_HANDLE_VALUE) {
/* No files in the dir?
*/
@@ -174,8 +177,8 @@
/* Fill in the dirent structure
*/
mblen = WideCharToMultiByte(CP_UTF8, 0, wfind.cFileName, -1,
- entry->d_name, 1023, NULL, 0);
- if (mblen == 0 || mblen > 1023)
+ entry->d_name, 1024, NULL, 0);
+ if (mblen == 0 || mblen > 1024)
return GetLastError();
entry->d_ino = 0;
entry->d_type = 0;
@@ -277,3 +280,4 @@
}
#endif
+