diff options
| author | Greg Ercolano <erco@seriss.com> | 2020-07-14 11:34:18 -0700 |
|---|---|---|
| committer | Greg Ercolano <erco@seriss.com> | 2020-07-14 11:34:18 -0700 |
| commit | 54425030774eb04b29c749ffa85d224c8bbfcc34 (patch) | |
| tree | f6e8b0c9fd46f5bcf160de82d613e7799288e277 /src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | |
| parent | 58296c373a79ac404e86f8a4b20a5309db2f00de (diff) | |
| parent | da76085fe71d2271847f95f5aa0694a9373fbba0 (diff) | |
Merge branch 'issue-99a': add OS error messages to Fl_File_Chooser
Pulling in Greg & Albrecht's work on PR #99 and PR #103.
This includes supporting operating system error messages
in the user's local language, which took some extra effort.
Diffstat (limited to 'src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx')
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx index ab20cfe32..592e192e3 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx @@ -61,7 +61,8 @@ static wchar_t *wbuf1 = NULL; extern "C" { int fl_scandir(const char *dirname, struct dirent ***namelist, int (*select)(struct dirent *), - int (*compar)(struct dirent **, struct dirent **)); + int (*compar)(struct dirent **, struct dirent **), + char *errmsg, int errmsg_len); } /* @@ -488,11 +489,13 @@ int Fl_WinAPI_System_Driver::clocale_printf(FILE *output, const char *format, va return retval; } -int Fl_WinAPI_System_Driver::filename_list(const char *d, dirent ***list, int (*sort)(struct dirent **, struct dirent **) ) { +int Fl_WinAPI_System_Driver::filename_list(const char *d, dirent ***list, + int (*sort)(struct dirent **, struct dirent **), + char *errmsg, int errmsg_sz) { // For Windows we have a special scandir implementation that uses // the Win32 "wide" functions for lookup, avoiding the code page mess // entirely. It also fixes up the trailing '/'. - return fl_scandir(d, list, 0, sort); + return fl_scandir(d, list, 0, sort, errmsg, errmsg_sz); } int Fl_WinAPI_System_Driver::filename_expand(char *to, int tolen, const char *from) { @@ -749,7 +752,9 @@ int Fl_WinAPI_System_Driver::file_browser_load_filesystem(Fl_File_Browser *brows } int Fl_WinAPI_System_Driver::file_browser_load_directory(const char *directory, char *filename, - size_t name_size, dirent ***pfiles, Fl_File_Sort_F *sort) + size_t name_size, dirent ***pfiles, + Fl_File_Sort_F *sort, + char *errmsg, int errmsg_sz) { strlcpy(filename, directory, name_size); int i = (int) (strlen(filename) - 1); @@ -758,7 +763,7 @@ int Fl_WinAPI_System_Driver::file_browser_load_directory(const char *directory, filename[2] = '/'; else if (filename[i] != '/' && filename[i] != '\\') strlcat(filename, "/", name_size); - return filename_list(filename, pfiles, sort); + return filename_list(filename, pfiles, sort, errmsg, errmsg_sz); } void Fl_WinAPI_System_Driver::newUUID(char *uuidBuffer) |
