Define FOREACH_DIRENT through FOREACH_DIRENT_ALL

As in the previous commit, 'de' is used as the iterator variable name.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2021-12-15 22:50:00 +01:00
parent c7f0d9e5ac
commit af3b864d76
31 changed files with 18 additions and 69 deletions
-1
View File
@@ -30,7 +30,6 @@ static int files_add(
_cleanup_closedir_ DIR *dir = NULL;
const char *dirpath;
struct dirent *de;
int r;
assert(h);
+6 -11
View File
@@ -14,17 +14,6 @@ bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix) _pu
struct dirent *readdir_ensure_type(DIR *d);
struct dirent *readdir_no_dot(DIR *dirp);
#define FOREACH_DIRENT(de, d, on_error) \
for (de = readdir_ensure_type(d);; de = readdir_ensure_type(d)) \
if (!de) { \
if (errno > 0) { \
on_error; \
} \
break; \
} else if (hidden_or_backup_file((de)->d_name)) \
continue; \
else
#define FOREACH_DIRENT_ALL(de, d, on_error) \
for (struct dirent *(de) = readdir_ensure_type(d);; (de) = readdir_ensure_type(d)) \
if (!de) { \
@@ -34,6 +23,12 @@ struct dirent *readdir_no_dot(DIR *dirp);
break; \
} else
#define FOREACH_DIRENT(de, d, on_error) \
FOREACH_DIRENT_ALL(de, d, on_error) \
if (hidden_or_backup_file((de)->d_name)) \
continue; \
else
/* Maximum space one dirent structure might require at most */
#define DIRENT_SIZE_MAX CONST_MAX(sizeof(struct dirent), offsetof(struct dirent, d_name) + NAME_MAX + 1)
-1
View File
@@ -300,7 +300,6 @@ int close_all_fds_without_malloc(const int except[], size_t n_except) {
int close_all_fds(const int except[], size_t n_except) {
_cleanup_closedir_ DIR *d = NULL;
struct dirent *de;
int r = 0;
assert(n_except == 0 || except);
+3 -4
View File
@@ -158,20 +158,19 @@ static int add_locales_from_archive(Set *locales) {
static int add_locales_from_libdir (Set *locales) {
_cleanup_closedir_ DIR *dir = NULL;
struct dirent *entry;
int r;
dir = opendir("/usr/lib/locale");
if (!dir)
return errno == ENOENT ? 0 : -errno;
FOREACH_DIRENT(entry, dir, return -errno) {
FOREACH_DIRENT(de, dir, return -errno) {
char *z;
if (entry->d_type != DT_DIR)
if (de->d_type != DT_DIR)
continue;
z = normalize_locale(entry->d_name);
z = normalize_locale(de->d_name);
if (!z)
return -ENOMEM;
-1
View File
@@ -89,7 +89,6 @@ int open_extension_release(const char *root, const char *extension, char **ret_p
return log_debug_errno(r, "Cannot open %s/usr/lib/extension-release.d/, ignoring: %m", root);
r = -ENOENT;
struct dirent *de;
FOREACH_DIRENT(de, extension_release_dir, return -errno) {
int k;
-1
View File
@@ -118,7 +118,6 @@ void in_initrd_force(bool value) {
int on_ac_power(void) {
bool found_offline = false, found_online = false;
_cleanup_closedir_ DIR *d = NULL;
struct dirent *de;
int r;
d = opendir("/sys/class/power_supply");
+3 -4
View File
@@ -98,7 +98,6 @@ static int detect_vm_device_tree(void) {
r = read_one_line_file("/proc/device-tree/hypervisor/compatible", &hvtype);
if (r == -ENOENT) {
_cleanup_closedir_ DIR *dir = NULL;
struct dirent *dent;
if (access("/proc/device-tree/ibm,partition-name", F_OK) == 0 &&
access("/proc/device-tree/hmc-managed?", F_OK) == 0 &&
@@ -114,9 +113,9 @@ static int detect_vm_device_tree(void) {
return -errno;
}
FOREACH_DIRENT(dent, dir, return -errno)
if (strstr(dent->d_name, "fw-cfg")) {
log_debug("Virtualization QEMU: \"fw-cfg\" present in /proc/device-tree/%s", dent->d_name);
FOREACH_DIRENT(de, dir, return -errno)
if (strstr(de->d_name, "fw-cfg")) {
log_debug("Virtualization QEMU: \"fw-cfg\" present in /proc/device-tree/%s", de->d_name);
return VIRTUALIZATION_QEMU;
}