changeset 21628:a22181aad13a

lib-imap: imap-bodystructure: Grouped together functions relating to the conversion of BODYSTRUCTURE to BODY. This only moves code.
author Stephan Bosch <stephan.bosch@dovecot.fi>
date Sun, 23 Oct 2016 17:27:07 +0200
parents 6ced094b1759
children 4a61612dab4f
files src/lib-imap/imap-bodystructure.c
diffstat 1 files changed, 68 insertions(+), 68 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap/imap-bodystructure.c	Sun Oct 23 16:50:25 2016 +0200
+++ b/src/lib-imap/imap-bodystructure.c	Sun Oct 23 17:27:07 2016 +0200
@@ -523,74 +523,6 @@
 		part_write_body(part, dest, extended);
 }
 
-static bool str_append_nstring(string_t *str, const struct imap_arg *arg)
-{
-	const char *cstr;
-
-	if (!imap_arg_get_nstring(arg, &cstr))
-		return FALSE;
-
-	switch (arg->type) {
-	case IMAP_ARG_NIL:
-		str_append(str, "NIL");
-		break;
-	case IMAP_ARG_ATOM:
-		str_append(str, cstr);
-		break;
-	case IMAP_ARG_STRING:
-		str_append_c(str, '"');
-		/* NOTE: we're parsing with no-unescape flag,
-		   so don't double-escape it here */
-		str_append(str, cstr);
-		str_append_c(str, '"');
-		break;
-	case IMAP_ARG_LITERAL: {
-		str_printfa(str, "{%"PRIuSIZE_T"}\r\n", strlen(cstr));
-		str_append(str, cstr);
-		break;
-	}
-	default:
-		i_unreached();
-		return FALSE;
-	}
-	return TRUE;
-}
-
-static void
-imap_write_envelope_list(const struct imap_arg *args, string_t *str,
-	bool toplevel)
-{
-	const struct imap_arg *children;
-
-	/* don't do any typechecking, just write it out */
-	while (!IMAP_ARG_IS_EOL(args)) {
-		bool list = FALSE;
-
-		if (!str_append_nstring(str, args)) {
-			if (!imap_arg_get_list(args, &children)) {
-				/* everything is either nstring or list */
-				i_unreached();
-			}
-
-			str_append_c(str, '(');
-			imap_write_envelope_list(children, str, FALSE);
-			str_append_c(str, ')');
-
-			list = TRUE;
-		}
-		args++;
-
-		if ((toplevel || !list) && !IMAP_ARG_IS_EOL(args))
-			str_append_c(str, ' ');
-	}
-}
-
-static void
-imap_write_envelope(const struct imap_arg *args, string_t *str)
-{
-	imap_write_envelope_list(args, str, TRUE);
-}
-
 static int
 imap_bodystructure_strlist_parse(const struct imap_arg *arg,
 	pool_t pool, const char *const **list_r)
@@ -936,6 +868,74 @@
 	return ret;
 }
 
+static bool str_append_nstring(string_t *str, const struct imap_arg *arg)
+{
+	const char *cstr;
+
+	if (!imap_arg_get_nstring(arg, &cstr))
+		return FALSE;
+
+	switch (arg->type) {
+	case IMAP_ARG_NIL:
+		str_append(str, "NIL");
+		break;
+	case IMAP_ARG_ATOM:
+		str_append(str, cstr);
+		break;
+	case IMAP_ARG_STRING:
+		str_append_c(str, '"');
+		/* NOTE: we're parsing with no-unescape flag,
+		   so don't double-escape it here */
+		str_append(str, cstr);
+		str_append_c(str, '"');
+		break;
+	case IMAP_ARG_LITERAL: {
+		str_printfa(str, "{%"PRIuSIZE_T"}\r\n", strlen(cstr));
+		str_append(str, cstr);
+		break;
+	}
+	default:
+		i_unreached();
+		return FALSE;
+	}
+	return TRUE;
+}
+
+static void
+imap_write_envelope_list(const struct imap_arg *args, string_t *str,
+	bool toplevel)
+{
+	const struct imap_arg *children;
+
+	/* don't do any typechecking, just write it out */
+	while (!IMAP_ARG_IS_EOL(args)) {
+		bool list = FALSE;
+
+		if (!str_append_nstring(str, args)) {
+			if (!imap_arg_get_list(args, &children)) {
+				/* everything is either nstring or list */
+				i_unreached();
+			}
+
+			str_append_c(str, '(');
+			imap_write_envelope_list(children, str, FALSE);
+			str_append_c(str, ')');
+
+			list = TRUE;
+		}
+		args++;
+
+		if ((toplevel || !list) && !IMAP_ARG_IS_EOL(args))
+			str_append_c(str, ' ');
+	}
+}
+
+static void
+imap_write_envelope(const struct imap_arg *args, string_t *str)
+{
+	imap_write_envelope_list(args, str, TRUE);
+}
+
 static int imap_parse_bodystructure_args(const struct imap_arg *args,
 					 string_t *str, const char **error_r)
 {