X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=filebrowser%2Fselfile.c;h=3a597b0368e27d15440e67a8e997167cea5b735c;hb=5bcaf4baecc46eda033c3b86f753a4d85d1bcfec;hp=d3f02f3137a5eb4da961e5bbb18c8b10226f07b8;hpb=e9a0808a5551217eb4fd29d949f3c7672545c168;p=xboard.git diff --git a/filebrowser/selfile.c b/filebrowser/selfile.c index d3f02f3..3a597b0 100644 --- a/filebrowser/selfile.c +++ b/filebrowser/selfile.c @@ -60,17 +60,8 @@ extern int errno; #include #include -#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; }