* Bug fixes: Fix numerous char array size mismatches, signed/unsigned
[citadel.git] / citadel / tools.h
1 /* $Id$ */
2 char *safestrncpy(char *dest, const char *src, size_t n);
3 int num_tokens (const char *source, char tok);
4 void extract_token(char *dest, const char *source, unsigned long parmnum, char separator);
5 int extract_int (const char *source, unsigned long parmnum);
6 long extract_long (const char *source, unsigned long parmnum);
7 unsigned long extract_unsigned_long(const char *source, unsigned long parmnum);
8 void CtdlEncodeBase64(char *dest, const char *source, size_t sourcelen);
9 int CtdlDecodeBase64(char *dest, const char *source, size_t length);
10 void striplt(char *);
11 int haschar(const char *st, int ch);
12 int collapsed_strcmp(char *s1, char *s2);
13 void remove_token(char *source, unsigned long parmnum, char separator);
14 void fmt_date(char *buf, size_t n, time_t thetime, int seconds);
15 int is_msg_in_mset(char *mset, long msgnum);
16 char *memreadline(char *start, char *buf, int maxlen);
17
18 #ifndef HAVE_STRNCASECMP
19 int strncasecmp(char *, char *, int);
20 #endif
21 #ifndef HAVE_STRCASECMP
22 #define strcasecmp(x,y) strncasecmp(x,y,INT_MAX);
23 #endif
24
25 #define extract(dest,source,parmnum)    extract_token(dest,source,parmnum,'|')
26 #define num_parms(source)               num_tokens(source, '|')
27 void stripout(char *str, char leftboundary, char rightboundary);
28 void stripallbut(char *str, char leftboundary, char rightboundary);
29
30 char *myfgets(char *s, int size, FILE *stream);
31 void urlesc(char *outbuf, char *strbuf);
32 char *CtdlTempFileName(char *prefix1, int prefix2);
33 FILE *CtdlTempFile(void);