summaryrefslogtreecommitdiff
path: root/src/gsystem-file-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gsystem-file-utils.h')
-rw-r--r--src/gsystem-file-utils.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/gsystem-file-utils.h b/src/gsystem-file-utils.h
index 82b7070..3895a85 100644
--- a/src/gsystem-file-utils.h
+++ b/src/gsystem-file-utils.h
@@ -30,6 +30,31 @@ const char *gs_file_get_path_cached (GFile *file);
const char *gs_file_get_basename_cached (GFile *file);
+struct GSDirFdIterator {
+ gboolean initialized;
+ int fd;
+ gpointer padding_data[4];
+};
+
+typedef struct GSDirFdIterator GSDirFdIterator;
+gboolean gs_dirfd_iterator_init_at (int dfd, const char *path,
+ gboolean follow,
+ GSDirFdIterator *dfd_iter, GError **error);
+gboolean gs_dirfd_iterator_init_take_fd (int dfd, GSDirFdIterator *dfd_iter, GError **error);
+#ifndef __GI_SCANNER__
+gboolean gs_dirfd_iterator_next_dent (GSDirFdIterator *dfd_iter,
+ struct dirent **out_dent,
+ GCancellable *cancellable,
+ GError **error);
+#endif
+gboolean gs_dirfd_iterator_next_finfo (GSDirFdIterator *dfd_iter,
+ GFileInfo **out_finfo,
+ GError **error);
+void gs_dirfd_iterator_clear (GSDirFdIterator *dfd_iter);
+
+#define gs_dirfd_iterator_cleanup __attribute__((cleanup(gs_dirfd_iterator_clear)))
+
+
gboolean gs_file_enumerator_iterate (GFileEnumerator *direnum,
GFileInfo **out_info,
GFile **out_child,