mirror of
https://github.com/fltk/fltk.git
synced 2026-05-21 22:51:41 +08:00
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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user