Fix range of tourneyType spin WB
[xboard.git] / filebrowser / selfile.c
index d3f02f3..3a597b0 100644 (file)
@@ -60,17 +60,8 @@ extern int errno;
 #include <X11/Xaw/Label.h>
 #include <X11/Xaw/Cardinals.h>
 
-#include "selfile.h"
 #include "xstat.h"
-
-/* added missing prototypes */
-extern void SFdrawList(int,int);
-extern void SFinitFont();
-extern void SFcreateGC();
-extern int SFchdir(char *);
-extern void SFupdatePath();
-extern void SFsetText(char *);
-extern char SFstatChar(struct stat*);
+#include "selfile.h"
 
 #ifndef MAXPATHLEN
 #define MAXPATHLEN 1024
@@ -598,7 +589,7 @@ SFcreateWidgets(toplevel, prompt, ok, cancel)
                XtAddEventHandler(selFileLists[n], LeaveWindowMask, False,
                        SFleaveList, (XtPointer)(intptr_t) n);
                XtAddEventHandler(selFileLists[n], PointerMotionMask, False,
-                       SFmotionList, (XtPointer)(intptr_t) n);
+                       (XtEventHandler) SFmotionList, (XtPointer)(intptr_t) n);
                XtAddEventHandler(selFileLists[n], ButtonPressMask, False,
                        SFbuttonPressList, (XtPointer)(intptr_t) n);
                XtAddEventHandler(selFileLists[n], ButtonReleaseMask, False,
@@ -794,8 +785,8 @@ XsraSelFile(toplevel, prompt, ok, cancel, failed,
        XtSetArg(arglist[i], XtNstring, filter);                        i++;
        XtSetValues(filterField, arglist, i);
 
-       safeStrCpy(SFfilterBuffer, filter, MAXPATHLEN);
-       safeStrCpy(SFlastPath, SFtextBuffer, MAXPATHLEN); // remember for cancel
+       strncpy(SFfilterBuffer, filter, MAXPATHLEN-1);
+       strncpy(SFlastPath, SFtextBuffer, MAXPATHLEN-1); // remember for cancel
 
        SFpositionWidget(selFile);
        XtMapWidget(selFile);
@@ -855,8 +846,8 @@ XsraSelFile(toplevel, prompt, ok, cancel, failed,
                                SFprepareToReturn();
                                return stderr;
                        }
-                       if (fp = SFopenFile(*name_return, mode,
-                                           prompt, failed)) {
+                       if ((*name_return)[strlen(*name_return)-1] != '/' &&         // [HGM] refuse directories
+                           (fp = SFopenFile(*name_return, mode, prompt, failed))) {
                                SFprepareToReturn();
                                return fp;
                        }