#include <hashed_db.h>
#endif
-MODULE_ID("$Id: toe.c,v 1.48 2008/01/05 20:41:26 tom Exp $")
+MODULE_ID("$Id: toe.c,v 1.50 2008/08/03 17:12:05 tom Exp $")
#define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
for (i = 0; i < eargc; i++) {
#if USE_DATABASE
if (_nc_is_dir_path(eargv[i])) {
+ char *cwd_buf = 0;
DIR *termdir;
DIRENT *subdir;
while ((subdir = readdir(termdir)) != 0) {
size_t len = NAMLEN(subdir);
- char buf[PATH_MAX];
+ size_t cwd_len = len + strlen(eargv[i]) + 3;
char name_1[PATH_MAX];
DIR *entrydir;
DIRENT *entry;
+ cwd_buf = typeRealloc(char, cwd_len, cwd_buf);
+ if (cwd_buf == 0) {
+ perror("realloc cwd_buf");
+ continue;
+ }
+
strncpy(name_1, subdir->d_name, len)[len] = '\0';
if (isDotname(name_1))
continue;
- (void) sprintf(buf, "%s/%s/", eargv[i], name_1);
- if (chdir(buf) != 0)
+ (void) sprintf(cwd_buf, "%s/%.*s/", eargv[i], (int) len, name_1);
+ if (chdir(cwd_buf) != 0)
continue;
entrydir = opendir(".");
+ if (entrydir == 0) {
+ perror(cwd_buf);
+ continue;
+ }
while ((entry = readdir(entrydir)) != 0) {
char name_2[PATH_MAX];
TERMTYPE lterm;
closedir(entrydir);
}
closedir(termdir);
+ if (cwd_buf != 0)
+ free(cwd_buf);
}
#if USE_HASHED_DB
else {