| enum /* face strings */ |
| { |
| Suser, |
| Sdomain, |
| Sshow, |
| Sdigest, |
| Nstring |
| }; |
| |
| enum |
| { |
| Facesize = 48 |
| }; |
| |
| typedef struct Face Face; |
| typedef struct Facefile Facefile; |
| |
| struct Face |
| { |
| Image *bit; /* unless there's an error, this is file->image */ |
| Image *mask; /* unless there's an error, this is file->mask */ |
| char *str[Nstring]; |
| int recent; |
| ulong time; |
| Tm tm; |
| int unknown; |
| Facefile *file; |
| }; |
| |
| /* |
| * Loading the files is slow enough on a dial-up line to be worth this trouble |
| */ |
| struct Facefile |
| { |
| Image *image; |
| Image *mask; |
| ulong mtime; |
| ulong rdtime; |
| int ref; |
| char *file; |
| Facefile *next; |
| }; |
| |
| extern char date[]; |
| extern char *maildir; |
| extern char **maildirs; |
| extern int nmaildirs; |
| extern CFsys *mailfs; |
| |
| Face* nextface(void); |
| void findbit(Face*); |
| void freeface(Face*); |
| void initplumb(void); |
| void killall(char*); |
| void showmail(Face*); |
| void delete(char*, char*); |
| void freefacefile(Facefile*); |
| Face* dirface(char*, char*); |
| void resized(void); |
| int alreadyseen(char*); |
| ulong dirlen(char*); |
| ulong fsdirlen(CFsys*, char*); |
| |
| void *emalloc(ulong); |
| void *erealloc(void*, ulong); |
| char *estrdup(char*); |
| char *findfile(Face*, char*, char*); |
| void addmaildir(char*); |