summaryrefslogtreecommitdiffstats
path: root/imap/imaptoken.h
diff options
context:
space:
mode:
authorSam Varshavchik2013-08-19 16:39:41 -0400
committerSam Varshavchik2013-08-25 14:43:51 -0400
commit9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch)
tree7a81a04cb51efb078ee350859a64be2ebc6b8813 /imap/imaptoken.h
parenta9520698b770168d1f33d6301463bb70a19655ec (diff)
downloadcourier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2
Initial checkin
Imported from subversion report, converted to git. Updated all paths in scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'imap/imaptoken.h')
-rw-r--r--imap/imaptoken.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/imap/imaptoken.h b/imap/imaptoken.h
new file mode 100644
index 0000000..6ca1b2d
--- /dev/null
+++ b/imap/imaptoken.h
@@ -0,0 +1,88 @@
+#ifndef imaptoken_h
+#define imaptoken_h
+
+/*
+** Copyright 1998 - 2003 Double Precision, Inc.
+** See COPYING for distribution information.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+
+struct imaptoken {
+ short tokentype;
+ unsigned long tokennum;
+ char *tokenbuf;
+ size_t tokenbuf_size;
+ } ;
+
+#define IT_ATOM 0
+#define IT_NUMBER 1
+#define IT_QUOTED_STRING 2
+#define IT_LITERAL_STRING_START 3
+#define IT_LPAREN 4
+#define IT_RPAREN 5
+#define IT_NIL 6
+#define IT_ERROR 7
+#define IT_EOL 8
+#define IT_LBRACKET 9
+#define IT_RBRACKET 10
+
+struct imaptoken *nexttoken(void);
+struct imaptoken *currenttoken(void);
+struct imaptoken *nexttoken_nouc(void);
+struct imaptoken *nexttoken_noparseliteral(void);
+struct imaptoken *nexttoken_okbracket(void);
+struct imaptoken *nexttoken_nouc_okbracket(void);
+
+int ismsgset(struct imaptoken *);
+ /* See if this token is a syntactically valid message set */
+int ismsgset_str(const char *);
+ /* Ditto */
+
+void read_timeout(time_t);
+void read_eol();
+void unread(int);
+
+extern size_t doread(char *buf, size_t bufsiz);
+extern char *imap_readptr;
+extern size_t imap_readptrleft;
+extern void readfill();
+
+#define READ() ( imap_readptrleft ? \
+ (--imap_readptrleft, (int)(unsigned char)*imap_readptr++): \
+ (readfill(), --imap_readptrleft, (int)(unsigned char)*imap_readptr++))
+
+void read_string(char **, unsigned long *, unsigned long);
+
+/* Flags */
+
+struct imapflags {
+ char seen;
+ char answered;
+ char deleted;
+ char flagged;
+ char drafts;
+ char recent;
+ } ;
+
+struct imapkeywords {
+ struct imapflags flags;
+
+ struct imapkeyword *first_keyword, *last_keyword;
+};
+
+/* ATOMS have the following maximum length */
+
+#define IT_MAX_ATOM_SIZE 16384
+
+char *my_strdup(const char *s);
+
+
+/* SMAP */
+
+void smap_readline(char *buffer, size_t bufsize);
+
+#endif