1 #ifndef __FILE_H
2 #define __FILE_H 1
3 
4 #include <sys/stat.h>
5 
6 #include "common.h"
7 
8 int                 __imlib_IsRealFile(const char *s);
9 char               *__imlib_FileKey(const char *file);
10 char               *__imlib_FileRealFile(const char *file);
11 
12 const char         *__imlib_FileExtension(const char *file);
13 
14 int                 __imlib_FileStat(const char *file, struct stat *st);
15 
16 static inline       time_t
__imlib_StatModDate(const struct stat * st)17 __imlib_StatModDate(const struct stat *st)
18 {
19    return (st->st_mtime > st->st_ctime) ? st->st_mtime : st->st_ctime;
20 }
21 
22 static inline int
__imlib_StatIsFile(const struct stat * st)23 __imlib_StatIsFile(const struct stat *st)
24 {
25    return S_ISREG(st->st_mode);
26 }
27 
28 static inline int
__imlib_StatIsDir(const struct stat * st)29 __imlib_StatIsDir(const struct stat *st)
30 {
31    return S_ISDIR(st->st_mode);
32 }
33 
34 int                 __imlib_FileExists(const char *s);
35 int                 __imlib_FileIsFile(const char *s);
36 int                 __imlib_FileIsDir(const char *s);
37 time_t              __imlib_FileModDate(const char *s);
38 time_t              __imlib_FileModDateFd(int fd);
39 int                 __imlib_FileCanRead(const char *s);
40 
41 char              **__imlib_FileDir(const char *dir, int *num);
42 void                __imlib_FileFreeDirList(char **l, int num);
43 
44 void                __imlib_FileDel(const char *s);
45 char               *__imlib_FileHomeDir(int uid);
46 int                 __imlib_ItemInList(char **list, int size, char *item);
47 
48 const char         *__imlib_PathToFilters(void);
49 const char         *__imlib_PathToLoaders(void);
50 char              **__imlib_ListModules(const char *path, int *num_ret);
51 
52 #endif
53