From 088ec3e2f3ba0419612846db8f3687f5e2de1348 Mon Sep 17 00:00:00 2001 From: oy Date: Mon, 21 Feb 2011 11:23:30 +0100 Subject: made the client's map search work with sub folders. Closes #254 --- src/base/system.c | 6 ++++-- src/base/system.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/base') diff --git a/src/base/system.c b/src/base/system.c index 81c43869..0f0aaf70 100644 --- a/src/base/system.c +++ b/src/base/system.c @@ -884,7 +884,8 @@ int fs_listdir(const char *dir, FS_LISTDIR_CALLBACK cb, int type, void *user) do { str_copy(buffer+length, finddata.cFileName, (int)sizeof(buffer)-length); - cb(finddata.cFileName, fs_is_dir(buffer), type, user); + if(cb(finddata.cFileName, fs_is_dir(buffer), type, user)) + break; } while (FindNextFileA(handle, &finddata)); @@ -905,7 +906,8 @@ int fs_listdir(const char *dir, FS_LISTDIR_CALLBACK cb, int type, void *user) while((entry = readdir(d)) != NULL) { str_copy(buffer+length, entry->d_name, (int)sizeof(buffer)-length); - cb(entry->d_name, fs_is_dir(buffer), type, user); + if(cb(entry->d_name, fs_is_dir(buffer), type, user)) + break; } /* close the directory and return */ diff --git a/src/base/system.h b/src/base/system.h index b3beb056..725f3008 100644 --- a/src/base/system.h +++ b/src/base/system.h @@ -942,7 +942,7 @@ void str_timestamp(char *buffer, int buffer_size); Returns: Always returns 0. */ -typedef void (*FS_LISTDIR_CALLBACK)(const char *name, int is_dir, int dir_type, void *user); +typedef int (*FS_LISTDIR_CALLBACK)(const char *name, int is_dir, int dir_type, void *user); int fs_listdir(const char *dir, FS_LISTDIR_CALLBACK cb, int type, void *user); /* -- cgit 1.4.1