]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Define FOREACH_DIRENT through FOREACH_DIRENT_ALL
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 7 Dec 2021 11:52:58 +0000 (12:52 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 15 Dec 2021 21:50:00 +0000 (22:50 +0100)
As in the previous commit, 'de' is used as the iterator variable name.

31 files changed:
src/basic/conf-files.c
src/basic/dirent-util.h
src/basic/fd-util.c
src/basic/locale-util.c
src/basic/os-util.c
src/basic/util.c
src/basic/virt.c
src/boot/bootctl.c
src/core/smack-setup.c
src/coredump/coredump-vacuum.c
src/coredump/coredump.c
src/home/homed-manager.c
src/journal/journald-stream.c
src/login/logind.c
src/machine/machined.c
src/mount/mount-tool.c
src/portable/portable.c
src/pstore/pstore.c
src/shared/bootspec.c
src/shared/devnode-acl.c
src/shared/efi-loader.c
src/shared/fdset.c
src/shared/install.c
src/shared/numa-util.c
src/shared/userdb.c
src/sysv-generator/sysv-generator.c
src/test/test-cgroup-util.c
src/test/test-process-util.c
src/tty-ask-password-agent/tty-ask-password-agent.c
src/userdb/userdbctl.c
src/xdg-autostart-generator/xdg-autostart-generator.c

index 9f0c97b691ae6c2888bda19199557ec4d9637d38..287428b561254abc49fa7510be1a711116a06c05 100644 (file)
@@ -30,7 +30,6 @@ static int files_add(
 
         _cleanup_closedir_ DIR *dir = NULL;
         const char *dirpath;
-        struct dirent *de;
         int r;
 
         assert(h);
index 2dc5dae1e1783c4634722ae2da572db6ee8fbf2e..5fde9043a30abd4478ca25c9ae908f647156578c 100644 (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)
 
index 2334a30e3ded2d194e282c03cf554c9c03071c1b..3866e876754ccade3d166b780f01e240691ec58b 100644 (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);
index 9a7c7795e74630745e645ec37515ed5ea65328e1..7f1a2f15f71caed6b8d1139112c90e038cf0e348 100644 (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;
 
index 69ea39345aad42e55f196b96ce9b8cd9814bcde8..75c8500e516fb82a51599975ca915aa1ce241c29 100644 (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;
 
index 43e74b773fc3f895fb36f26e1fc38131d23cdecd..3aecb22fc4dc18eb49b12c7def1d72bc6a9613c3 100644 (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");
index 9b7dbdc205fd8eda2f8c62f54689fe131596beae..617439708d06ca6bada0eb182380c19356242d4e 100644 (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;
                         }
 
index 51d304ea041ba6e12d004b17edd77605232a3f8d..1a940f946268a23b3757e21729acf4b764b0f612 100644 (file)
@@ -184,7 +184,6 @@ finish:
 
 static int enumerate_binaries(const char *esp_path, const char *path, const char *prefix) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         const char *p;
         int c = 0, r;
 
@@ -658,7 +657,6 @@ static int copy_one_file(const char *esp_path, const char *name, bool force) {
 }
 
 static int install_binaries(const char *esp_path, bool force) {
-        struct dirent *de;
         _cleanup_closedir_ DIR *d = NULL;
         int r = 0;
 
@@ -850,7 +848,6 @@ static int install_variables(const char *esp_path,
 
 static int remove_boot_efi(const char *esp_path) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         const char *p;
         int r, c = 0;
 
index 5b2671ff406c2ade70c3b4537c2b3417dd77eb19..f88cb80834334a8f42ff42757efe3d929eaac94d 100644 (file)
@@ -51,7 +51,6 @@ static int fdopen_unlocked_at(int dfd, const char *dir, const char *name, int *s
 static int write_access2_rules(const char *srcdir) {
         _cleanup_close_ int load2_fd = -1, change_fd = -1;
         _cleanup_closedir_ DIR *dir = NULL;
-        struct dirent *entry;
         int dfd = -1, r = 0;
 
         load2_fd = open("/sys/fs/smackfs/load2", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
@@ -124,7 +123,6 @@ static int write_access2_rules(const char *srcdir) {
 static int write_cipso2_rules(const char *srcdir) {
         _cleanup_close_ int cipso2_fd = -1;
         _cleanup_closedir_ DIR *dir = NULL;
-        struct dirent *entry;
         int dfd = -1, r = 0;
 
         cipso2_fd = open("/sys/fs/smackfs/cipso2", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
@@ -184,7 +182,6 @@ static int write_cipso2_rules(const char *srcdir) {
 static int write_netlabel_rules(const char *srcdir) {
         _cleanup_fclose_ FILE *dst = NULL;
         _cleanup_closedir_ DIR *dir = NULL;
-        struct dirent *entry;
         int dfd = -1, r = 0;
 
         dst = fopen("/sys/fs/smackfs/netlabel", "we");
index 0c08ab21dc44b65874822fd679bacf7ae0565b4c..dcf9cc03cd26c7661f10c3185b717363ed60f2c8 100644 (file)
@@ -142,7 +142,6 @@ int coredump_vacuum(int exclude_fd, uint64_t keep_free, uint64_t max_use) {
         for (;;) {
                 _cleanup_(vacuum_candidate_hashmap_freep) Hashmap *h = NULL;
                 VacuumCandidate *worst = NULL;
-                struct dirent *de;
                 uint64_t sum = 0;
 
                 rewinddir(d);
index cb74b34affac23e33ff1446d760f832f3520484a..9e0dafb1ce9ccf5d7682d09df6902184d16b9f5e 100644 (file)
@@ -580,7 +580,6 @@ static int compose_open_fds(pid_t pid, char **open_fds) {
         _cleanup_free_ char *buffer = NULL;
         _cleanup_fclose_ FILE *stream = NULL;
         const char *fddelim = "", *path;
-        struct dirent *dent = NULL;
         size_t size = 0;
         int r;
 
@@ -600,20 +599,20 @@ static int compose_open_fds(pid_t pid, char **open_fds) {
         if (!stream)
                 return -ENOMEM;
 
-        FOREACH_DIRENT(dent, proc_fd_dir, return -errno) {
+        FOREACH_DIRENT(de, proc_fd_dir, return -errno) {
                 _cleanup_fclose_ FILE *fdinfo = NULL;
                 _cleanup_free_ char *fdname = NULL;
                 _cleanup_close_ int fd = -1;
 
-                r = readlinkat_malloc(dirfd(proc_fd_dir), dent->d_name, &fdname);
+                r = readlinkat_malloc(dirfd(proc_fd_dir), de->d_name, &fdname);
                 if (r < 0)
                         return r;
 
-                fprintf(stream, "%s%s:%s\n", fddelim, dent->d_name, fdname);
+                fprintf(stream, "%s%s:%s\n", fddelim, de->d_name, fdname);
                 fddelim = "\n";
 
                 /* Use the directory entry from /proc/[pid]/fd with /proc/[pid]/fdinfo */
-                fd = openat(proc_fdinfo_fd, dent->d_name, O_NOFOLLOW|O_CLOEXEC|O_RDONLY);
+                fd = openat(proc_fdinfo_fd, de->d_name, O_NOFOLLOW|O_CLOEXEC|O_RDONLY);
                 if (fd < 0)
                         continue;
 
index d49fcedb57b5d7beac0faa7047d396bd499ebf08..215b4567a9a1fc28b22f1c3bbaa5c74aff04aa3f 100644 (file)
@@ -447,7 +447,6 @@ unlink_this_file:
 
 static int manager_enumerate_records(Manager *m) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
 
         assert(m);
 
@@ -919,7 +918,6 @@ static int manager_assess_image(
 
 int manager_enumerate_images(Manager *m) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
 
         assert(m);
 
index d94b1df02dc2018f403372dde11f18ca0cdf50e4..19f0799914da8b4a14473dce005049c1a607d324 100644 (file)
@@ -848,7 +848,6 @@ static int stdout_stream_restore(Server *s, const char *fname, int fd) {
 
 int server_restore_streams(Server *s, FDSet *fds) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         const char *path;
         int r;
 
index 57a8604b7f7791ce38efd453c7e38e0b4d9917cd..52b1d9503460278a689afa1ed984b972cb67e928 100644 (file)
@@ -244,7 +244,6 @@ static int manager_enumerate_buttons(Manager *m) {
 
 static int manager_enumerate_seats(Manager *m) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r = 0;
 
         assert(m);
@@ -286,7 +285,6 @@ static int manager_enumerate_seats(Manager *m) {
 
 static int manager_enumerate_linger_users(Manager *m) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r = 0;
 
         assert(m);
@@ -315,7 +313,6 @@ static int manager_enumerate_linger_users(Manager *m) {
 
 static int manager_enumerate_users(Manager *m) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r, k;
 
         assert(m);
@@ -474,7 +471,6 @@ static int manager_attach_fds(Manager *m) {
 
 static int manager_enumerate_sessions(Manager *m) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r = 0, k;
 
         assert(m);
@@ -516,7 +512,6 @@ static int manager_enumerate_sessions(Manager *m) {
 
 static int manager_enumerate_inhibitors(Manager *m) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r = 0;
 
         assert(m);
index 6ffa4191ec0da6a550277b1d727ea8650fd1bb57..a433afb1a6b1ad0148fa94e31fd776ffca962276 100644 (file)
@@ -136,7 +136,6 @@ static int manager_add_host_machine(Manager *m) {
 
 static int manager_enumerate_machines(Manager *m) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r;
 
         assert(m);
index 412ef7813a0b1a7ffd486bd0f72fe762676ee8d0..b0ea45debc27ff5b6a6ac2fdcb39df2e1632af21 100644 (file)
@@ -777,7 +777,6 @@ static int find_mount_points(const char *what, char ***list) {
 
 static int find_loop_device(const char *backing_file, char **loop_dev) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         _cleanup_free_ char *l = NULL;
 
         assert(backing_file);
index 8b088f3e32b6b980977ed1c8b410a18bd7e4a77e..be311f94c4a30806a58bfd2bcde45881c47cd241 100644 (file)
@@ -244,7 +244,6 @@ static int extract_now(
         STRV_FOREACH(i, paths.search_path) {
                 _cleanup_free_ char *resolved = NULL;
                 _cleanup_closedir_ DIR *d = NULL;
-                struct dirent *de;
 
                 r = chase_symlinks_and_opendir(*i, where, 0, &resolved, &d);
                 if (r < 0) {
@@ -1492,7 +1491,6 @@ int portable_detach(
         _cleanup_set_free_ Set *unit_files = NULL, *markers = NULL;
         _cleanup_closedir_ DIR *d = NULL;
         const char *where, *item;
-        struct dirent *de;
         int ret = 0;
         int r;
 
@@ -1662,7 +1660,6 @@ static int portable_get_state_internal(
         _cleanup_set_free_ Set *unit_files = NULL;
         _cleanup_closedir_ DIR *d = NULL;
         const char *where;
-        struct dirent *de;
         int r;
 
         assert(name_or_path);
index 81538d9cb3e1c45cff29594b51a6f1b04e92d811..d820ceb9f68c0b9b982b0f05219d2d9da319b613 100644 (file)
@@ -323,7 +323,6 @@ static void process_dmesg_files(PStoreList *list) {
 
 static int list_files(PStoreList *list, const char *sourcepath) {
         _cleanup_(closedirp) DIR *dirp = NULL;
-        struct dirent *de;
         int r;
 
         dirp = opendir(sourcepath);
index 298f3df3c7a92a4551f4641fb280eb79f8cc7c27..0076092c2ab4b1115f9c61531e0d5fbeeb445beb 100644 (file)
@@ -488,7 +488,6 @@ static int boot_entries_find_unified(
                 size_t *n_entries) {
 
         _cleanup_(closedirp) DIR *d = NULL;
-        struct dirent *de;
         int r;
 
         assert(root);
index 9ea89ee9200803f374288f557968ec7d4dd23f8b..89ff566832b933a2634c25a1f2adb6ca42530e4a 100644 (file)
@@ -166,7 +166,6 @@ int devnode_acl_all(const char *seat,
         _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
         _cleanup_set_free_free_ Set *nodes = NULL;
         _cleanup_closedir_ DIR *dir = NULL;
-        struct dirent *dent;
         sd_device *d;
         char *n;
         int r;
@@ -218,11 +217,11 @@ int devnode_acl_all(const char *seat,
          * these devices are not known to the kernel at this moment */
         dir = opendir("/run/udev/static_node-tags/uaccess");
         if (dir) {
-                FOREACH_DIRENT(dent, dir, return -errno) {
+                FOREACH_DIRENT(de, dir, return -errno) {
                         _cleanup_free_ char *unescaped_devname = NULL;
                         ssize_t l;
 
-                        l = cunescape(dent->d_name, UNESCAPE_RELAX, &unescaped_devname);
+                        l = cunescape(de->d_name, UNESCAPE_RELAX, &unescaped_devname);
                         if (l < 0)
                                 return l;
 
index f5076fc02c7a84ea5bee6f8664c9d74b4ba9ae0f..b14a2c32aa8ac471d6527c72a34c9b023c34b907 100644 (file)
@@ -485,7 +485,6 @@ static int cmp_uint16(const uint16_t *a, const uint16_t *b) {
 int efi_get_boot_options(uint16_t **options) {
         _cleanup_closedir_ DIR *dir = NULL;
         _cleanup_free_ uint16_t *list = NULL;
-        struct dirent *de;
         int count = 0;
 
         assert(options);
index 679e4aad2262e719f4c8dda83932bb3a36788f34..183fa239b6d2cd1ba00d374374eb351ad7e6747b 100644 (file)
@@ -112,7 +112,6 @@ int fdset_remove(FDSet *s, int fd) {
 
 int fdset_new_fill(FDSet **_s) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r = 0;
         FDSet *s;
 
index 6e77a72bde5f7a70e6fbe0e36f2890a42e595be6..8f1af755fa932db729365a0d09a124c380041f92 100644 (file)
@@ -549,7 +549,6 @@ static int remove_marked_symlinks_fd(
                 size_t *n_changes) {
 
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r = 0;
 
         assert(remove_symlinks_to);
@@ -729,7 +728,6 @@ static int find_symlinks_in_directory(
                 const char *config_path,
                 bool *same_name_link) {
 
-        struct dirent *de;
         int r = 0;
 
         FOREACH_DIRENT(de, dir, return -errno) {
@@ -814,7 +812,6 @@ static int find_symlinks(
                 bool *same_name_link) {
 
         _cleanup_closedir_ DIR *config_dir = NULL;
-        struct dirent *de;
         int r = 0;
 
         assert(i);
@@ -3369,7 +3366,6 @@ int unit_file_preset_all(
 
         STRV_FOREACH(i, paths.search_path) {
                 _cleanup_closedir_ DIR *d = NULL;
-                struct dirent *de;
 
                 d = opendir(*i);
                 if (!d) {
@@ -3434,7 +3430,6 @@ int unit_file_get_list(
 
         STRV_FOREACH(dirname, paths.search_path) {
                 _cleanup_closedir_ DIR *d = NULL;
-                struct dirent *de;
 
                 d = opendir(*dirname);
                 if (!d) {
index 644b0bde5bda4a254b1f1868ee593f19051aa830..4f757f0b55d8feb9c6f6257daca4bef30ff9f1ca 100644 (file)
@@ -128,7 +128,6 @@ int numa_to_cpu_set(const NUMAPolicy *policy, CPUSet *ret) {
 
 static int numa_max_node(void) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r, max_node = 0;
 
         d = opendir("/sys/devices/system/node");
index 5c2b3ddb8f23012454f56038794558d9a01d61ef..0eddd382e69aede146300f47142e35becefc61d6 100644 (file)
@@ -405,7 +405,6 @@ static int userdb_start_query(
 
         _cleanup_(strv_freep) char **except = NULL, **only = NULL;
         _cleanup_(closedirp) DIR *d = NULL;
-        struct dirent *de;
         const char *e;
         int r, ret = 0;
 
index 194766445719c4675d5131fe83fcb060a7a7ce48..e9976540b5a45a08206df8f143819201273cdbb4 100644 (file)
@@ -718,7 +718,6 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) {
 
         STRV_FOREACH(path, sysvinit_path) {
                 _cleanup_closedir_ DIR *d = NULL;
-                struct dirent *de;
 
                 d = opendir(*path);
                 if (!d) {
@@ -805,7 +804,6 @@ static int set_dependencies_from_rcnd(const LookupPaths *lp, Hashmap *all_servic
                 for (unsigned i = 0; i < ELEMENTSOF(rcnd_table); i ++) {
                         _cleanup_closedir_ DIR *d = NULL;
                         _cleanup_free_ char *path = NULL;
-                        struct dirent *de;
 
                         path = path_join(*p, rcnd_table[i].path);
                         if (!path) {
index 621e68829e79740e6110f8a4aea7e7af9db8e277..93b114b3fd8e553c4597999e1cbc2bca3867f405 100644 (file)
@@ -167,7 +167,6 @@ TEST(get_paths, .sd_booted = true) {
 
 TEST(proc) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r;
 
         d = opendir("/proc");
index ab093a7457017e47c3c5a61e8b881b300bbff869..06a640b1cc9d24624cb1a0ffe323493904bf2592 100644 (file)
@@ -135,7 +135,6 @@ static void test_get_process_cmdline_one(pid_t pid) {
 
 TEST(get_process_cmdline) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
 
         assert_se(d = opendir("/proc"));
 
index 56110ba37551d6b82bf61b2c4c5292dffbd09d45..54a03af082f4dde40d931deebc40b7d12f46fe7f 100644 (file)
@@ -295,7 +295,6 @@ static int wall_tty_block(void) {
 
 static int process_password_files(void) {
         _cleanup_closedir_ DIR *d = NULL;
-        struct dirent *de;
         int r = 0;
 
         d = opendir("/run/systemd/ask-password");
index 4dac6b0e445a88ff686db4d4999ee65dabcd6454..c2acd85742dc52cccf7894b7efcdeb19445701c2 100644 (file)
@@ -518,7 +518,6 @@ static int display_memberships(int argc, char *argv[], void *userdata) {
 static int display_services(int argc, char *argv[], void *userdata) {
         _cleanup_(table_unrefp) Table *t = NULL;
         _cleanup_(closedirp) DIR *d = NULL;
-        struct dirent *de;
         int r;
 
         d = opendir("/run/systemd/userdb/");
index 7b441a9a12b7a4ca27453681553f3f6e2480ce01..c5c6b54fdcd123ae961ff4548185d7b8245747f4 100644 (file)
@@ -43,7 +43,6 @@ static int enumerate_xdg_autostart(Hashmap *all_services) {
 
         STRV_FOREACH(path, autostart_dirs) {
                 _cleanup_closedir_ DIR *d = NULL;
-                struct dirent *de;
 
                 d = opendir(*path);
                 if (!d) {