diff options
Diffstat (limited to 'src/gsystem-file-utils.h')
-rw-r--r-- | src/gsystem-file-utils.h | 25 |
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, |