-gio_enumerate_entries (AtomCtx *ctx, AtomEntry ***entries, size_t *len)
+gio_enumerate_entries (AtomCtx *ctx, char ***reqs, AtomEntry ***entries,
+ size_t *len)
root = atom_config_get_str (ctx, "gio", "root");
dir = g_file_new_for_path (root);
root = atom_config_get_str (ctx, "gio", "root");
dir = g_file_new_for_path (root);
- G_FILE_QUERY_INFO_NONE, NULL, NULL);
+ G_FILE_QUERY_INFO_NONE, NULL, &error);
+ if (enumerator == NULL)
+ {
+ AtomError *aerr = atom_error_new_from_gerror (error);
+ atom_error_set (ctx, aerr);
+ g_error_free (error);
+ return;
+ }
while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)) != NULL)
{
name = g_file_info_get_name (info);
filename = g_build_filename (root, name, NULL);
g_object_unref (info);
file = g_file_new_for_path (filename);
while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)) != NULL)
{
name = g_file_info_get_name (info);
filename = g_build_filename (root, name, NULL);
g_object_unref (info);
file = g_file_new_for_path (filename);
- g_ptr_array_add (array, gio_file_to_atom (ctx, file));
+ entry = gio_file_to_atom (ctx, file);
+ if (entry)
+ {
+ g_ptr_array_add (array, entry);
+ g_ptr_array_add (filenames, g_strdup (name));
+ }
+ else
+ {
+ atom_error_set (ctx, NULL);
+ }