37 lines
957 B
Diff
37 lines
957 B
Diff
Oh, but I fixed it already. Patch below.
|
|
|
|
Andries
|
|
|
|
--- kbd-1.12.orig/src/findfile.c Fri Jan 16 20:45:31 2004
|
|
+++ kbd-1.12/src/findfile.c Wed Jan 28 23:29:35 2004
|
|
@@ -70,6 +70,7 @@
|
|
FILE *fp = NULL;
|
|
DIR *d;
|
|
struct dirent *de;
|
|
+ struct stat statbuf;
|
|
char *ff, *fdir, *p, *q, **sp;
|
|
struct decompressor *dc;
|
|
int secondpass = 0;
|
|
@@ -104,7 +105,6 @@
|
|
okdir = (ff && strcmp(de->d_name, fdir) == 0);
|
|
|
|
if ((secondpass && recdepth) || okdir) {
|
|
- struct stat statbuf;
|
|
char *a;
|
|
|
|
a = xmalloc(strlen(dir) + strlen(de->d_name) + 2);
|
|
@@ -137,6 +137,11 @@
|
|
|
|
sprintf(pathname, "%s/%s", dir, de->d_name);
|
|
|
|
+ /* Is this a regular file? */
|
|
+ if (stat(pathname, &statbuf) != 0 ||
|
|
+ !S_ISREG(statbuf.st_mode))
|
|
+ continue;
|
|
+
|
|
/* Does tail consist of a known suffix and possibly
|
|
a compression suffix? */
|
|
for(sp = suf; *sp; sp++) {
|
|
|
|
|
|
[pasted and cut from another window, so with whitespace damage]
|