summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/os_win/os_dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/os_win/os_dir.c')
-rw-r--r--src/third_party/wiredtiger/src/os_win/os_dir.c38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/third_party/wiredtiger/src/os_win/os_dir.c b/src/third_party/wiredtiger/src/os_win/os_dir.c
index 69235659f04..3b78106f3b4 100644
--- a/src/third_party/wiredtiger/src/os_win/os_dir.c
+++ b/src/third_party/wiredtiger/src/os_win/os_dir.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2014-2017 MongoDB, Inc.
+ * Copyright (c) 2014-2018 MongoDB, Inc.
* Copyright (c) 2008-2014 WiredTiger, Inc.
* All rights reserved.
*
@@ -9,13 +9,13 @@
#include "wt_internal.h"
/*
- * __wt_win_directory_list --
+ * __directory_list_worker --
* Get a list of files from a directory, MSVC version.
*/
-int
-__wt_win_directory_list(WT_FILE_SYSTEM *file_system,
+static int
+__directory_list_worker(WT_FILE_SYSTEM *file_system,
WT_SESSION *wt_session, const char *directory,
- const char *prefix, char ***dirlistp, uint32_t *countp)
+ const char *prefix, char ***dirlistp, uint32_t *countp, bool single)
{
DWORD windows_error;
HANDLE findhandle;
@@ -82,7 +82,7 @@ __wt_win_directory_list(WT_FILE_SYSTEM *file_system,
WT_ERR(__wt_strdup(session, file_utf8->data, &entries[count]));
++count;
__wt_scr_free(session, &file_utf8);
- } while (FindNextFileW(findhandle, &finddata) != 0);
+ } while (!single && FindNextFileW(findhandle, &finddata) != 0);
*dirlistp = entries;
*countp = count;
@@ -116,6 +116,32 @@ err: if (findhandle != INVALID_HANDLE_VALUE)
}
/*
+ * __wt_win_directory_list --
+ * Get a list of files from a directory, MSVC version.
+ */
+int
+__wt_win_directory_list(WT_FILE_SYSTEM *file_system,
+ WT_SESSION *wt_session, const char *directory,
+ const char *prefix, char ***dirlistp, uint32_t *countp)
+{
+ return (__directory_list_worker(file_system,
+ wt_session, directory, prefix, dirlistp, countp, false));
+}
+
+/*
+ * __wt_win_directory_list_single --
+ * Get a single file from a directory, MSVC version.
+ */
+int
+__wt_win_directory_list_single(WT_FILE_SYSTEM *file_system,
+ WT_SESSION *wt_session, const char *directory,
+ const char *prefix, char ***dirlistp, uint32_t *countp)
+{
+ return (__directory_list_worker(file_system,
+ wt_session, directory, prefix, dirlistp, countp, true));
+}
+
+/*
* __wt_win_directory_list_free --
* Free memory returned by __wt_win_directory_list, Windows version.
*/