X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=filebrowser%2Fdraw.c;h=048fa858ebb31da66446cf1be0091916256f6e0c;hb=5bcaf4baecc46eda033c3b86f753a4d85d1bcfec;hp=b21d1700fe5ab6fe5899226b3adf3a2466748897;hpb=b4c2ef53cf5a608a9488ed5cf53da908e9553d21;p=xboard.git diff --git a/filebrowser/draw.c b/filebrowser/draw.c index b21d170..048fa85 100644 --- a/filebrowser/draw.c +++ b/filebrowser/draw.c @@ -25,8 +25,8 @@ */ #include -#include "selfile.h" #include "xstat.h" +#include "selfile.h" #include #include #include @@ -38,11 +38,6 @@ #endif #define ABS(x) (((x) < 0) ? (-(x)) : (x)) -/* added missing prototypes */ -extern char SFstatChar(struct stat*); -extern int SFchdir(char *); -void SFvSliderMovedCallback(Widget, int, int); - typedef struct { char *fontname; } TextData, *textPtr; @@ -505,7 +500,7 @@ SFscrollTimer(p, id) int save; int n; - n = (int) p; + n = (int)(intptr_t) p; dir = &(SFdirs[SFdirPtr + n]); save = dir->vOrigin; @@ -535,7 +530,7 @@ SFscrollTimer(p, id) if (SFbuttonPressed) { SFscrollTimerId = XtAppAddTimeOut(SFapp, - SFscrollTimerInterval(), SFscrollTimer, (XtPointer) n); + SFscrollTimerInterval(), SFscrollTimer, (XtPointer)(intptr_t) n); } } @@ -576,7 +571,7 @@ SFnewInvertEntry(n, event) SFscrollTimerAdded = 1; SFscrollTimerId = XtAppAddTimeOut(SFapp, SFscrollTimerInterval(), SFscrollTimer, - (XtPointer) n); + (XtPointer)(intptr_t) n); } } @@ -655,7 +650,10 @@ SFvSliderMovedCallback(w, n, new) dir = &(SFdirs[SFdirPtr + n]); + old = dir->vOrigin; + if(new == -1) new = old + 1; else if(new == -2) new = old - 1; // [HGM] indicates scroll direction on mousewheel event + if(new < 0 || new > dir->nEntries - SFlistSize) return; dir->vOrigin = new; if (old == new) {