diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2001-11-25 16:38:11 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2001-11-25 16:38:11 +0000 |
| commit | c147aca0541e9f45b1bd9c8eed4ec71cb1c650ec (patch) | |
| tree | 3593beb32b551396fa369ce98e737f019a9193a9 /src/Fl_File_Chooser2.cxx | |
| parent | f6d88d27359cc24329ba728d00ede8a363640006 (diff) | |
Add flstring.h header file to include string functions, strcasecmp
definitions, and (v)snprintf function declarations...
Fix Fl_File_Chooser so it always checks for an empty directory_ (so
that is doesn't add the leading slash to drive letters and mount
points)
Make Fl_File_Icon use Fl_Shared_Image, and look in all KDE icon
directories.
Fl::error() no longer exits by default; only Fl::fatal() does...
Wasn't doing callbacks in Fl_Tabs when the current tab was changed
via the keyboard.
FLUID wasn't writing the tooltips in message files, and didn't count
tooltips when computing the message number for catgets.
Update dependencies.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1729 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_File_Chooser2.cxx')
| -rw-r--r-- | src/Fl_File_Chooser2.cxx | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/src/Fl_File_Chooser2.cxx b/src/Fl_File_Chooser2.cxx index 3276db08b..62af75003 100644 --- a/src/Fl_File_Chooser2.cxx +++ b/src/Fl_File_Chooser2.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_File_Chooser2.cxx,v 1.1.2.3 2001/10/29 21:59:14 easysw Exp $" +// "$Id: Fl_File_Chooser2.cxx,v 1.1.2.4 2001/11/25 16:38:11 easysw Exp $" // // More Fl_File_Chooser routines. // @@ -46,12 +46,11 @@ #include <stdio.h> #include <stdlib.h> +#include "flstring.h" #include <ctype.h> #include <errno.h> #include <sys/types.h> #include <sys/stat.h> -#include <string.h> -#include <ctype.h> #if defined(WIN32) && ! defined (__CYGWIN__) # include <direct.h> @@ -169,7 +168,7 @@ Fl_File_Chooser::count() // Is the file name a directory? if (directory_[0] != '\0') - sprintf(pathname, "%s/%s", directory_, filename); + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, filename); else { strncpy(pathname, filename, sizeof(pathname) - 1); @@ -188,7 +187,7 @@ Fl_File_Chooser::count() // See if this file is a directory... filename = (char *)fileList->text(i); if (directory_[0] != '\0') - sprintf(pathname, "%s/%s", directory_, filename); + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, filename); else { strncpy(pathname, filename, sizeof(pathname) - 1); @@ -222,7 +221,13 @@ Fl_File_Chooser::value(int f) // I - File number if (name[0] == '\0') return (NULL); - sprintf(pathname, "%s/%s", directory_, name); + if (directory_[0]) { + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, name); + } else { + strncpy(pathname, name, sizeof(pathname) - 1); + pathname[sizeof(pathname) - 1] = '\0'; + } + return ((const char *)pathname); } @@ -231,7 +236,13 @@ Fl_File_Chooser::value(int f) // I - File number { // See if this file is a directory... name = fileList->text(i); - sprintf(pathname, "%s/%s", directory_, name); + + if (directory_[0]) { + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, name); + } else { + strncpy(pathname, name, sizeof(pathname) - 1); + pathname[sizeof(pathname) - 1] = '\0'; + } if (!filename_isdir(pathname)) { @@ -358,7 +369,7 @@ Fl_File_Chooser::newdir() #else if (dir[0] != '/' && dir[0] != '\\') #endif /* WIN32 || __EMX__ */ - sprintf(pathname, "%s/%s", directory_, dir); + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, dir); else { strncpy(pathname, dir, sizeof(pathname) - 1); @@ -414,7 +425,7 @@ Fl_File_Chooser::fileListCB() filename = (char *)fileList->text(fileList->value()); if (directory_[0] != '\0') - sprintf(pathname, "%s/%s", directory_, filename); + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, filename); else { strncpy(pathname, filename, sizeof(pathname) - 1); @@ -485,7 +496,7 @@ Fl_File_Chooser::fileNameCB() filename[0] != '/' && filename[0] != '\\' && !(isalpha(filename[0]) && filename[1] == ':')) - sprintf(pathname, "%s/%s", directory_, filename); + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, filename); else { strncpy(pathname, filename, sizeof(pathname) - 1); @@ -520,13 +531,13 @@ Fl_File_Chooser::fileNameCB() strncat(pathname, "/", sizeof(pathname) - 1); } else - sprintf(pathname, "%s/%s", directory_, filename); + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, filename); endpwent(); } else if (directory_[0] != '\0' && filename[0] != '/') - sprintf(pathname, "%s/%s", directory_, filename); + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, filename); else { strncpy(pathname, filename, sizeof(pathname) - 1); @@ -675,7 +686,13 @@ Fl_File_Chooser::fileNameCB() } // See if we need to enable the OK button... - sprintf(pathname, "%s/%s", directory_, fileName->value()); + if (directory_[0]) { + snprintf(pathname, sizeof(pathname), "%s/%s", directory_, + fileName->value()); + } else { + strncpy(pathname, fileName->value(), sizeof(pathname) - 1); + pathname[sizeof(pathname) - 1] = '\0'; + } if ((type_ & CREATE || access(pathname, 0) == 0) && (!filename_isdir(pathname) || type_ & DIRECTORY)) @@ -687,5 +704,5 @@ Fl_File_Chooser::fileNameCB() // -// End of "$Id: Fl_File_Chooser2.cxx,v 1.1.2.3 2001/10/29 21:59:14 easysw Exp $". +// End of "$Id: Fl_File_Chooser2.cxx,v 1.1.2.4 2001/11/25 16:38:11 easysw Exp $". // |
