#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <dirent.h>
#include "device-handler.h"
ICON_TYPE_UNKNOWN
};
+struct parser_found_file {
+ const char *filename;
+ unsigned ino;
+ struct list_item list;
+};
+
#define streq(a,b) (!strcasecmp((a),(b)))
void parser_init(void);
int parser_stat_path(struct discover_context *ctx,
struct discover_device *dev, const char *path,
struct stat *statbuf);
+/* Function used to list the files on a directory. The dirname should
+ * be relative to the discover context device mount path. It returns
+ * the number of files returned in files or a negative value on error.
+ */
+int parser_scandir(struct discover_context *ctx, const char *dirname,
+ struct dirent ***files, int (*filter)(const struct dirent *),
+ int (*comp)(const struct dirent **, const struct dirent **));
+
+/* parser_is_unique - Test a file against a list of known files.
+ * If the file @filename exists and the file is not in @found_list add the
+ * file to @found_list and return true. Use when searching case-insensitive
+ * filesystems.
+ */
+bool parser_is_unique(struct discover_context *ctx, struct discover_device *dev, const char *filename,
+ struct list *found_list);
#endif /* _PARSER_H */