version 1.39, 2003/02/06 09:29:18 |
version 1.40, 2003/03/05 22:33:43 |
|
|
handles[i].use = use; |
handles[i].use = use; |
handles[i].dirp = dirp; |
handles[i].dirp = dirp; |
handles[i].fd = fd; |
handles[i].fd = fd; |
handles[i].name = name; |
handles[i].name = xstrdup(name); |
return i; |
return i; |
} |
} |
} |
} |
|
|
if (handle_is_ok(handle, HANDLE_FILE)) { |
if (handle_is_ok(handle, HANDLE_FILE)) { |
ret = close(handles[handle].fd); |
ret = close(handles[handle].fd); |
handles[handle].use = HANDLE_UNUSED; |
handles[handle].use = HANDLE_UNUSED; |
|
xfree(handles[handle].name); |
} else if (handle_is_ok(handle, HANDLE_DIR)) { |
} else if (handle_is_ok(handle, HANDLE_DIR)) { |
ret = closedir(handles[handle].dirp); |
ret = closedir(handles[handle].dirp); |
handles[handle].use = HANDLE_UNUSED; |
handles[handle].use = HANDLE_UNUSED; |
|
xfree(handles[handle].name); |
} else { |
} else { |
errno = ENOENT; |
errno = ENOENT; |
} |
} |
|
|
if (fd < 0) { |
if (fd < 0) { |
status = errno_to_portable(errno); |
status = errno_to_portable(errno); |
} else { |
} else { |
handle = handle_new(HANDLE_FILE, xstrdup(name), fd, NULL); |
handle = handle_new(HANDLE_FILE, name, fd, NULL); |
if (handle < 0) { |
if (handle < 0) { |
close(fd); |
close(fd); |
} else { |
} else { |
|
|
if (dirp == NULL) { |
if (dirp == NULL) { |
status = errno_to_portable(errno); |
status = errno_to_portable(errno); |
} else { |
} else { |
handle = handle_new(HANDLE_DIR, xstrdup(path), 0, dirp); |
handle = handle_new(HANDLE_DIR, path, 0, dirp); |
if (handle < 0) { |
if (handle < 0) { |
closedir(dirp); |
closedir(dirp); |
} else { |
} else { |