summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2016-04-10 17:56:53 +0000
committerManolo Gouy <Manolo>2016-04-10 17:56:53 +0000
commit7e20aa06f9861469d5f69f982ac34e143e0cb2e5 (patch)
treebff6d43342fdf897adba9f7a3e58a76adc88f124
parentfaaa2b6d1e73e7d32e5373b4acf15a2497ec0e74 (diff)
Fix error in WIN32 code when rewriting Fl_File_Browser.cxx for the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11572 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--FL/Fl_System_Driver.H2
-rw-r--r--src/Fl_File_Browser.cxx2
-rw-r--r--src/Fl_System_Driver.cxx4
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_System_Driver.H2
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx8
5 files changed, 9 insertions, 9 deletions
diff --git a/FL/Fl_System_Driver.H b/FL/Fl_System_Driver.H
index c5975bfed..2f52f10ba 100644
--- a/FL/Fl_System_Driver.H
+++ b/FL/Fl_System_Driver.H
@@ -135,7 +135,7 @@ public:
// implement to support Fl_File_Browser::load()
virtual int file_browser_load_filesystem(Fl_File_Browser *browser, char *filename, Fl_File_Icon *icon) {return 0;}
// the default implementation of file_browser_load_directory() should be enough
- virtual int file_browser_load_directory(const char *directory, char *filename, dirent ***pfiles, Fl_File_Sort_F *sort);
+ virtual int file_browser_load_directory(const char *directory, char *filename, size_t name_size, dirent ***pfiles, Fl_File_Sort_F *sort);
// implement to support Fl_Preferences
virtual void newUUID(char *uuidBuffer) { uuidBuffer[0] = 0; }
// implement to support Fl_Preferences
diff --git a/src/Fl_File_Browser.cxx b/src/Fl_File_Browser.cxx
index 024fa7d5b..14f64f8be 100644
--- a/src/Fl_File_Browser.cxx
+++ b/src/Fl_File_Browser.cxx
@@ -415,7 +415,7 @@ Fl_File_Browser::load(const char *directory,// I - Directory to load
//
// Build the file list...
//
- num_files = Fl::system_driver()->file_browser_load_directory(directory_, filename, &files, sort);
+ num_files = Fl::system_driver()->file_browser_load_directory(directory_, filename, sizeof(filename), &files, sort);
if (num_files <= 0)
return (0);
diff --git a/src/Fl_System_Driver.cxx b/src/Fl_System_Driver.cxx
index fa903e2bd..de8b5e363 100644
--- a/src/Fl_System_Driver.cxx
+++ b/src/Fl_System_Driver.cxx
@@ -417,8 +417,8 @@ int Fl_System_Driver::filename_expand(char *to,int tolen, const char *from) {
return ret;
}
-int Fl_System_Driver::file_browser_load_directory(const char *directory, char *filename, dirent ***pfiles,
- Fl_File_Sort_F *sort)
+int Fl_System_Driver::file_browser_load_directory(const char *directory, char *filename,
+ size_t name_size, dirent ***pfiles, Fl_File_Sort_F *sort)
{
return filename_list(directory, pfiles, sort);
}
diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H
index 2712942f8..e5bfb41b8 100644
--- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H
+++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H
@@ -78,7 +78,7 @@ public:
virtual int open_uri(const char *uri, char *msg, int msglen);
virtual int use_recent_tooltip_fix() {return 1;}
virtual int file_browser_load_filesystem(Fl_File_Browser *browser, char *filename, Fl_File_Icon *icon);
- virtual int file_browser_load_directory(const char *directory, char *filename, dirent ***pfiles, Fl_File_Sort_F *sort);
+ virtual int file_browser_load_directory(const char *directory, char *filename, size_t name_size, dirent ***pfiles, Fl_File_Sort_F *sort);
virtual void newUUID(char *uuidBuffer);
virtual char *preference_rootnode(Fl_Preferences *prefs, Fl_Preferences::Root root, const char *vendor,
const char *application);
diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
index 5c4d52421..9df5b2f71 100644
--- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
+++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx
@@ -717,16 +717,16 @@ int Fl_WinAPI_System_Driver::file_browser_load_filesystem(Fl_File_Browser *brows
return num_files;
}
-int Fl_WinAPI_System_Driver::file_browser_load_directory(const char *directory, char *filename, dirent ***pfiles,
- Fl_File_Sort_F *sort)
+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)
{
- strlcpy(filename, directory, sizeof(filename));
+ strlcpy(filename, directory, name_size);
int i = (int) (strlen(filename) - 1);
if (i == 2 && filename[1] == ':' &&
(filename[2] == '/' || filename[2] == '\\'))
filename[2] = '/';
else if (filename[i] != '/' && filename[i] != '\\')
- strlcat(filename, "/", sizeof(filename));
+ strlcat(filename, "/", name_size);
return filename_list(filename, pfiles, sort);
}