Listing 2: recls types are defined differently.
// from recls_platform_types.h
struct recls_strptrs_t
{
char const *begin;
char const *end;
};
struct recls_strptrsptrs_t
{
struct recls_strptrs_t const *begin;
struct recls_strptrs_t const *end;
};
struct recls_fileinfo_t
{
recls_uint32_t attributes;
struct recls_strptrs_t path;
#if defined(RECLS_PLATFORM_IS_WIN32)
char drive;
#endif /* RECLS_PLATFORM_IS_WIN32 */
struct recls_strptrs_t directory;
struct recls_strptrs_t fileName;
struct recls_strptrs_t fileExt;
#if defined(RECLS_PLATFORM_IS_WIN32)
struct recls_strptrs_t shortFile;
#endif /* RECLS_PLATFORM_IS_WIN32 */
struct recls_strptrsptrs_t directoryParts;
#if defined(RECLS_PLATFORM_IS_WIN32)
recls_time_t creationTime;
#endif /* RECLS_PLATFORM_IS_WIN32 */
recls_time_t modificationTime;
recls_time_t lastAccessTime;
#if defined(RECLS_PLATFORM_IS_UNIX)
recls_time_t lastStatusChangeTime;
#endif /* RECLS_PLATFORM_IS_UNIX */
recls_filesize_t size;
recls_byte_t data[1];
};