32 lines
644 B
C
32 lines
644 B
C
|
|
#include "mbiff.h"
|
||
|
|
|
||
|
|
static time_t last = 0;
|
||
|
|
static char* mailpath;
|
||
|
|
|
||
|
|
void init_mail(void){
|
||
|
|
struct stat s;
|
||
|
|
struct passwd* pwd = getpwuid(getuid());
|
||
|
|
|
||
|
|
if(getenv("MAIL") != NULL){
|
||
|
|
mailpath = malloc(strlen(getenv("MAIL")) + strlen(pwd->pw_name) + 1);
|
||
|
|
sprintf(mailpath, getenv("MAIL"), pwd->pw_name);
|
||
|
|
}else{
|
||
|
|
mailpath = malloc(strlen(_PATH_MAILDIR) + 1 + strlen(pwd->pw_name) + 1);
|
||
|
|
sprintf(mailpath, _PATH_MAILDIR "/%s", pwd->pw_name);
|
||
|
|
}
|
||
|
|
|
||
|
|
if(stat(mailpath, &s) == 0){
|
||
|
|
last = s.st_mtime;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void check_mail(void){
|
||
|
|
struct stat s;
|
||
|
|
if(stat(mailpath, &s) == 0){
|
||
|
|
if(s.st_mtime > last){
|
||
|
|
printf("!\n");
|
||
|
|
}
|
||
|
|
|
||
|
|
last = s.st_mtime;
|
||
|
|
}
|
||
|
|
}
|