summary refs log tree commit diff
path: root/imap.h
diff options
context:
space:
mode:
Diffstat (limited to 'imap.h')
-rw-r--r--imap.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/imap.h b/imap.h
index 5919b8f..a2c13bd 100644
--- a/imap.h
+++ b/imap.h
@@ -117,6 +117,13 @@ static inline struct Data dataCheck(struct Data data, enum Type type) {
 	return data;
 }
 
+static inline struct Data dataTake(struct Data *from) {
+	struct Data take = *from;
+	from->type = Atom;
+	from->atom = AtomNil;
+	return take;
+}
+
 static inline void listPush(struct List *list, struct Data data) {
 	if (list->len == list->cap) {
 		list->cap = (list->cap ? list->cap * 2 : 4);