#include #include #include #include #include #include #include "faces.h" static int showfd = -1; static int logfd = -1; static char *user; static char *logtag; void initplumb(void) { showfd = plumbopen("send", OWRITE); } char* value(Plumbattr *attr, char *key, char *def) { char *v; v = plumblookup(attr, key); if(v) return v; return def; } void setname(Face *f, char *sender) { char *at, *bang; char *p; /* works with UTF-8, although it's written as ASCII */ for(p=sender; *p!='\0'; p++) *p = tolower(*p); f->str[Suser] = sender; at = strchr(sender, '@'); if(at){ *at++ = '\0'; f->str[Sdomain] = estrdup(at); return; } bang = strchr(sender, '!'); if(bang){ *bang++ = '\0'; f->str[Suser] = estrdup(bang); f->str[Sdomain] = sender; return; } } int getc(void) { static uchar buf[512]; static int nbuf = 0; static int i = 0; while(i == nbuf){ i = 0; nbuf = read(logfd, buf, sizeof buf); if(nbuf == 0){ sleep(15000); continue; } if(nbuf < 0) return -1; } return buf[i++]; } char* getline(char *buf, int n) { int i, c; for(i=0; itime = mtime; f->tm = *localtime(f->time); f->str[Sshow] = estrdup(name); return f; }