17dd7cddfSDavid du Colombier /* 27dd7cddfSDavid du Colombier * sorted by 4,/^$/|sort -bd +1 37dd7cddfSDavid du Colombier */ 49a747e4fSDavid du Colombier int fqid(int fd, Qid *qid); 57dd7cddfSDavid du Colombier int BNList(Biobuf *b, NList *nl, char *sep); 67dd7cddfSDavid du Colombier int BSList(Biobuf *b, SList *sl, char *sep); 77dd7cddfSDavid du Colombier int BimapMimeParams(Biobuf *b, MimeHdr *mh); 87dd7cddfSDavid du Colombier int Bimapaddr(Biobuf *b, MAddr *a); 97dd7cddfSDavid du Colombier int Bimapdate(Biobuf *b, Tm *tm); 107dd7cddfSDavid du Colombier int Bimapstr(Biobuf *b, char *s); 117dd7cddfSDavid du Colombier int Brfc822date(Biobuf *b, Tm *tm); 127dd7cddfSDavid du Colombier int appendSave(char *mbox, int flags, char *head, Biobuf *b, long n); 137dd7cddfSDavid du Colombier void bye(char *fmt, ...); 147dd7cddfSDavid du Colombier int cdCreate(char *dir, char *file, int mode, ulong perm); 159a747e4fSDavid du Colombier int cdExists(char *dir, char *file); 169a747e4fSDavid du Colombier Dir *cdDirstat(char *dir, char *file); 177dd7cddfSDavid du Colombier int cdDirwstat(char *dir, char *file, Dir *d); 187dd7cddfSDavid du Colombier int cdOpen(char *dir, char *file, int mode); 197dd7cddfSDavid du Colombier int cdRemove(char *dir, char *file); 207dd7cddfSDavid du Colombier MbLock *checkBox(Box *box, int imped); 217dd7cddfSDavid du Colombier int ciisprefix(char *pre, char *s); 227dd7cddfSDavid du Colombier int cistrcmp(char*, char*); 237dd7cddfSDavid du Colombier int cistrncmp(char*, char*, int); 247dd7cddfSDavid du Colombier char *cistrstr(char *s, char *sub); 257dd7cddfSDavid du Colombier void closeBox(Box *box, int opened); 267dd7cddfSDavid du Colombier void closeImp(Box *box, MbLock *ml); 277dd7cddfSDavid du Colombier int copyBox(char *from, char *to, int doremove); 287dd7cddfSDavid du Colombier int copyCheck(Box *box, Msg *m, int uids, void *v); 297dd7cddfSDavid du Colombier int copySave(Box *box, Msg *m, int uids, void *vs); 307dd7cddfSDavid du Colombier char *cramauth(void); 317dd7cddfSDavid du Colombier int createBox(char *mbox, int dir); 327dd7cddfSDavid du Colombier Tm *date2tm(Tm *tm, char *date); 337dd7cddfSDavid du Colombier int decmutf7(char *out, int nout, char *in); 347dd7cddfSDavid du Colombier int deleteMsgs(Box *box); 359a747e4fSDavid du Colombier void debuglog(char *fmt, ...); 367dd7cddfSDavid du Colombier void *emalloc(ulong); 377dd7cddfSDavid du Colombier int emptyImp(char *mbox); 3880ee5cbfSDavid du Colombier void enableForwarding(void); 397dd7cddfSDavid du Colombier int encmutf7(char *out, int nout, char *in); 407dd7cddfSDavid du Colombier void *erealloc(void*, ulong); 417dd7cddfSDavid du Colombier char *estrdup(char*); 427dd7cddfSDavid du Colombier int expungeMsgs(Box *box, int send); 437dd7cddfSDavid du Colombier void *ezmalloc(ulong); 447dd7cddfSDavid du Colombier void fetchBodyFill(ulong n); 457dd7cddfSDavid du Colombier void fetchBody(Msg *m, Fetch *f); 467dd7cddfSDavid du Colombier Pair fetchBodyPart(Fetch *f, ulong size); 477dd7cddfSDavid du Colombier void fetchBodyStr(Fetch *f, char *buf, ulong size); 487dd7cddfSDavid du Colombier void fetchBodyStruct(Msg *m, Header *h, int extensions); 497dd7cddfSDavid du Colombier void fetchEnvelope(Msg *m); 507dd7cddfSDavid du Colombier int fetchMsg(Box *box, Msg *m, int uids, void *fetch); 517dd7cddfSDavid du Colombier Msg *fetchSect(Msg *m, Fetch *f); 527dd7cddfSDavid du Colombier int fetchSeen(Box *box, Msg *m, int uids, void *vf); 537dd7cddfSDavid du Colombier void fetchStructExt(Header *h); 547dd7cddfSDavid du Colombier Msg *findMsgSect(Msg *m, NList *sect); 557dd7cddfSDavid du Colombier int forMsgs(Box *box, MsgSet *ms, ulong max, int uids, int (*f)(Box*, Msg*, int, void*), void *rock); 567dd7cddfSDavid du Colombier void freeMsg(Msg *m); 577dd7cddfSDavid du Colombier ulong imap4DateTime(char *date); 587dd7cddfSDavid du Colombier int imap4Date(Tm *tm, char *date); 597dd7cddfSDavid du Colombier int imap4date(char *s, int n, Tm *tm); 607dd7cddfSDavid du Colombier int imapTmp(void); 617dd7cddfSDavid du Colombier char *impName(char *name); 627dd7cddfSDavid du Colombier int infoIsNil(char *s); 637dd7cddfSDavid du Colombier int isdotdot(char*); 647dd7cddfSDavid du Colombier int isprefix(char *pre, char *s); 657dd7cddfSDavid du Colombier int issuffix(char *suf, char *s); 667dd7cddfSDavid du Colombier int listBoxes(char *cmd, char *ref, char *pat); 677dd7cddfSDavid du Colombier char *loginauth(void); 687dd7cddfSDavid du Colombier int lsubBoxes(char *cmd, char *ref, char *pat); 697dd7cddfSDavid du Colombier char *maddrStr(MAddr *a); 707dd7cddfSDavid du Colombier ulong mapFlag(char *name); 717dd7cddfSDavid du Colombier ulong mapInt(NamedInt *map, char *name); 727dd7cddfSDavid du Colombier void mbLockRefresh(MbLock *ml); 737dd7cddfSDavid du Colombier int mbLocked(void); 747dd7cddfSDavid du Colombier MbLock *mbLock(void); 757dd7cddfSDavid du Colombier void mbUnlock(MbLock *ml); 767dd7cddfSDavid du Colombier char *mboxName(char*); 777dd7cddfSDavid du Colombier Fetch *mkFetch(int op, Fetch *next); 787dd7cddfSDavid du Colombier NList *mkNList(ulong n, NList *next); 797dd7cddfSDavid du Colombier SList *mkSList(char *s, SList *next); 807dd7cddfSDavid du Colombier Store *mkStore(int sign, int op, int flags); 817dd7cddfSDavid du Colombier int moveBox(char *from, char *to); 827dd7cddfSDavid du Colombier void msgDead(Msg *m); 837dd7cddfSDavid du Colombier int msgFile(Msg *m, char *f); 847dd7cddfSDavid du Colombier int msgInfo(Msg *m); 857dd7cddfSDavid du Colombier int msgIsMulti(Header *h); 867dd7cddfSDavid du Colombier int msgIsRfc822(Header *h); 877dd7cddfSDavid du Colombier int msgSeen(Box *box, Msg *m); 887dd7cddfSDavid du Colombier ulong msgSize(Msg *m); 897dd7cddfSDavid du Colombier int msgStruct(Msg *m, int top); 907dd7cddfSDavid du Colombier char *mutf7str(char*); 917dd7cddfSDavid du Colombier int myChdir(char *dir); 927dd7cddfSDavid du Colombier int okMbox(char *mbox); 937dd7cddfSDavid du Colombier Box *openBox(char *name, char *fsname, int writable); 947dd7cddfSDavid du Colombier int openLocked(char *dir, char *file, int mode); 957dd7cddfSDavid du Colombier void parseErr(char *msg); 969a747e4fSDavid du Colombier AuthInfo *passLogin(char*, char*); 977dd7cddfSDavid du Colombier char *readFile(int fd); 987dd7cddfSDavid du Colombier void resetCurDir(void); 997dd7cddfSDavid du Colombier Fetch *revFetch(Fetch *f); 1007dd7cddfSDavid du Colombier NList *revNList(NList *s); 1017dd7cddfSDavid du Colombier SList *revSList(SList *s); 1027dd7cddfSDavid du Colombier int rfc822date(char *s, int n, Tm *tm); 1037dd7cddfSDavid du Colombier int searchMsg(Msg *m, Search *s); 1047dd7cddfSDavid du Colombier long selectFields(char *dst, long n, char *hdr, SList *fields, int matches); 1057dd7cddfSDavid du Colombier void sendFlags(Box *box, int uids); 1067dd7cddfSDavid du Colombier void setFlags(Box *box, Msg *m, int f); 1079a747e4fSDavid du Colombier void setupuser(AuthInfo*); 1087dd7cddfSDavid du Colombier int storeMsg(Box *box, Msg *m, int uids, void *fetch); 1097dd7cddfSDavid du Colombier char *strmutf7(char*); 1107dd7cddfSDavid du Colombier void strrev(char *s, char *e); 1117dd7cddfSDavid du Colombier int subscribe(char *mbox, int how); 1127dd7cddfSDavid du Colombier void wrImpFlags(char *buf, int flags, int killRecent); 1137dd7cddfSDavid du Colombier void writeErr(void); 1147dd7cddfSDavid du Colombier void writeFlags(Biobuf *b, Msg *m, int recentOk); 1157dd7cddfSDavid du Colombier 116*fed0fa9eSDavid du Colombier #pragma varargck argpos bye 1 117*fed0fa9eSDavid du Colombier #pragma varargck argpos debuglog 1 118*fed0fa9eSDavid du Colombier 1197dd7cddfSDavid du Colombier #define MK(t) ((t*)emalloc(sizeof(t))) 1207dd7cddfSDavid du Colombier #define MKZ(t) ((t*)ezmalloc(sizeof(t))) 1217dd7cddfSDavid du Colombier #define MKN(t,n) ((t*)emalloc((n)*sizeof(t))) 1227dd7cddfSDavid du Colombier #define MKNZ(t,n) ((t*)ezmalloc((n)*sizeof(t))) 1237dd7cddfSDavid du Colombier #define MKNA(t,at,n) ((t*)emalloc(sizeof(t) + (n)*sizeof(at))) 1247dd7cddfSDavid du Colombier 1257dd7cddfSDavid du Colombier #define STRLEN(cs) (sizeof(cs)-1) 126