17dd7cddfSDavid du Colombier enum /* face strings */ 27dd7cddfSDavid du Colombier { 37dd7cddfSDavid du Colombier Suser, 47dd7cddfSDavid du Colombier Sdomain, 57dd7cddfSDavid du Colombier Sshow, 67dd7cddfSDavid du Colombier Sdigest, 77dd7cddfSDavid du Colombier Nstring 87dd7cddfSDavid du Colombier }; 97dd7cddfSDavid du Colombier 107dd7cddfSDavid du Colombier enum 117dd7cddfSDavid du Colombier { 127dd7cddfSDavid du Colombier Facesize = 48, 137dd7cddfSDavid du Colombier }; 147dd7cddfSDavid du Colombier 157dd7cddfSDavid du Colombier typedef struct Face Face; 167dd7cddfSDavid du Colombier typedef struct Facefile Facefile; 177dd7cddfSDavid du Colombier 187dd7cddfSDavid du Colombier struct Face 197dd7cddfSDavid du Colombier { 207dd7cddfSDavid du Colombier Image *bit; /* unless there's an error, this is file->image */ 217dd7cddfSDavid du Colombier Image *mask; /* unless there's an error, this is file->mask */ 227dd7cddfSDavid du Colombier char *str[Nstring]; 23d9306527SDavid du Colombier int recent; 24d9306527SDavid du Colombier ulong time; 25d9306527SDavid du Colombier Tm tm; 267dd7cddfSDavid du Colombier int unknown; 277dd7cddfSDavid du Colombier Facefile *file; 287dd7cddfSDavid du Colombier }; 297dd7cddfSDavid du Colombier 307dd7cddfSDavid du Colombier /* 317dd7cddfSDavid du Colombier * Loading the files is slow enough on a dial-up line to be worth this trouble 327dd7cddfSDavid du Colombier */ 337dd7cddfSDavid du Colombier struct Facefile 347dd7cddfSDavid du Colombier { 357dd7cddfSDavid du Colombier Image *image; 367dd7cddfSDavid du Colombier Image *mask; 377dd7cddfSDavid du Colombier ulong mtime; 387dd7cddfSDavid du Colombier ulong rdtime; 397dd7cddfSDavid du Colombier int ref; 407dd7cddfSDavid du Colombier char *file; 417dd7cddfSDavid du Colombier Facefile *next; 427dd7cddfSDavid du Colombier }; 437dd7cddfSDavid du Colombier 44*a3b78ba5SDavid du Colombier extern char date[]; 45*a3b78ba5SDavid du Colombier extern char *maildir; 46*a3b78ba5SDavid du Colombier extern char **maildirs; 47*a3b78ba5SDavid du Colombier extern int nmaildirs; 487dd7cddfSDavid du Colombier 497dd7cddfSDavid du Colombier Face* nextface(void); 507dd7cddfSDavid du Colombier void findbit(Face*); 517dd7cddfSDavid du Colombier void freeface(Face*); 527dd7cddfSDavid du Colombier void initplumb(void); 537dd7cddfSDavid du Colombier void killall(char*); 547dd7cddfSDavid du Colombier void showmail(Face*); 557dd7cddfSDavid du Colombier void delete(char*, char*); 567dd7cddfSDavid du Colombier void freefacefile(Facefile*); 577dd7cddfSDavid du Colombier Face* dirface(char*, char*); 587dd7cddfSDavid du Colombier void resized(void); 59d9306527SDavid du Colombier int alreadyseen(char*); 609a747e4fSDavid du Colombier ulong dirlen(char*); 617dd7cddfSDavid du Colombier 627dd7cddfSDavid du Colombier void *emalloc(ulong); 637dd7cddfSDavid du Colombier void *erealloc(void*, ulong); 647dd7cddfSDavid du Colombier char *estrdup(char*); 657dd7cddfSDavid du Colombier char *findfile(Face*, char*, char*); 665fab9909SDavid du Colombier void addmaildir(char*); 67