recurse: ignore links

This commit is contained in:
Connor Lane Smith 2011-06-04 14:30:54 +01:00
parent ad16c666dc
commit b5ff71655d
2 changed files with 8 additions and 7 deletions

View File

@ -2,7 +2,7 @@
VERSION = 0.0
#CC = gcc
#CC = musl-gcc
CC = musl-gcc
LD = $(CC)
CPPFLAGS = -D_POSIX_C_SOURCE=200112L
CFLAGS = -Os -ansi -Wall -pedantic $(CPPFLAGS)

View File

@ -4,6 +4,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include "../util.h"
void
@ -11,14 +12,14 @@ recurse(const char *path, void (*fn)(const char *))
{
char *cwd;
struct dirent *d;
struct stat st;
DIR *dp;
if(!(dp = opendir(path))) {
if(errno == ENOTDIR)
return;
else
eprintf("opendir %s:", path);
}
if(lstat(path, &st) == -1 || !S_ISDIR(st.st_mode))
return;
else if(!(dp = opendir(path)))
eprintf("opendir %s:", path);
cwd = agetcwd();
if(chdir(path) == -1)
eprintf("chdir %s:", path);