summaryrefslogtreecommitdiff
path: root/src/Fl_File_Chooser2.cxx
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2001-11-25 16:38:11 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2001-11-25 16:38:11 +0000
commitc147aca0541e9f45b1bd9c8eed4ec71cb1c650ec (patch)
tree3593beb32b551396fa369ce98e737f019a9193a9 /src/Fl_File_Chooser2.cxx
parentf6d88d27359cc24329ba728d00ede8a363640006 (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.cxx45
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 $".
//