From 71a49a1f0cc24ffd894e28f3015ef1e112c83c17 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@dovecot.fi>
Date: Tue, 14 May 2019 13:00:42 +0200
Subject: [PATCH] Fix compilation for GCC 4.

Caused by recent event API changes.
---
 src/lib-sieve/sieve-error.c       | 72 ++++++++++++++++++++-----------
 src/lib-sieve/sieve-generator.c   | 18 +++++---
 src/lib-sieve/sieve-interpreter.c | 24 +++++++----
 src/lib-sieve/sieve-lexer.c       | 12 ++++--
 src/lib-sieve/sieve-parser.c      |  6 ++-
 src/lib-sieve/sieve-result.c      | 54 +++++++++++++++--------
 src/lib-sieve/sieve-validator.c   | 12 ++++--
 7 files changed, 132 insertions(+), 66 deletions(-)

diff --git a/src/lib-sieve/sieve-error.c b/src/lib-sieve/sieve-error.c
index e128ce434..cf20b9561 100644
--- a/src/lib-sieve/sieve-error.c
+++ b/src/lib-sieve/sieve-error.c
@@ -178,8 +178,10 @@ void sieve_global_error(struct sieve_instance *svinst,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -200,8 +202,10 @@ void sieve_global_warning(struct sieve_instance *svinst,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -222,8 +226,10 @@ void sieve_global_info(struct sieve_instance *svinst,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_INFO,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -245,8 +251,10 @@ void sieve_global_info_error(struct sieve_instance *svinst,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -268,8 +276,10 @@ void sieve_global_info_warning(struct sieve_instance *svinst,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -293,8 +303,10 @@ void sieve_internal_error(struct sieve_error_handler *ehandler,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	char str[256];
@@ -348,8 +360,10 @@ void sieve_error(struct sieve_error_handler *ehandler,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -369,8 +383,10 @@ void sieve_warning(struct sieve_error_handler *ehandler,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -390,8 +406,10 @@ void sieve_info(struct sieve_error_handler *ehandler,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_INFO,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -411,8 +429,10 @@ void sieve_debug(struct sieve_error_handler *ehandler,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_DEBUG,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -434,8 +454,10 @@ void sieve_critical(struct sieve_instance *svinst,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -796,8 +818,10 @@ sieve_logfile_printf(struct sieve_logfile_ehandler *ehandler,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_INFO,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
diff --git a/src/lib-sieve/sieve-generator.c b/src/lib-sieve/sieve-generator.c
index ae47067b8..3dcab0e26 100644
--- a/src/lib-sieve/sieve-generator.c
+++ b/src/lib-sieve/sieve-generator.c
@@ -517,8 +517,10 @@ void sieve_generator_error(struct sieve_generator *gentr,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -538,8 +540,10 @@ void sieve_generator_warning(struct sieve_generator *gentr,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -559,8 +563,10 @@ void sieve_generator_critical(struct sieve_generator *gentr,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
diff --git a/src/lib-sieve/sieve-interpreter.c b/src/lib-sieve/sieve-interpreter.c
index 67a703515..cb79a7567 100644
--- a/src/lib-sieve/sieve-interpreter.c
+++ b/src/lib-sieve/sieve-interpreter.c
@@ -971,8 +971,10 @@ void sieve_runtime_error(const struct sieve_runtime_env *renv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -989,8 +991,10 @@ void sieve_runtime_warning(const struct sieve_runtime_env *renv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -1007,8 +1011,10 @@ void sieve_runtime_log(const struct sieve_runtime_env *renv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_INFO,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
@@ -1027,8 +1033,10 @@ void sieve_runtime_critical(const struct sieve_runtime_env *renv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 		.location = location,
 	};
 	va_list args;
diff --git a/src/lib-sieve/sieve-lexer.c b/src/lib-sieve/sieve-lexer.c
index 1572a455a..efc3d0644 100644
--- a/src/lib-sieve/sieve-lexer.c
+++ b/src/lib-sieve/sieve-lexer.c
@@ -128,8 +128,10 @@ sieve_lexer_error(const struct sieve_lexer *lexer,
 	struct sieve_lexical_scanner *scanner = lexer->scanner;
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -155,8 +157,10 @@ sieve_lexer_warning(const struct sieve_lexer *lexer,
 	struct sieve_lexical_scanner *scanner = lexer->scanner;
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
diff --git a/src/lib-sieve/sieve-parser.c b/src/lib-sieve/sieve-parser.c
index 71dc1f750..ee54994fe 100644
--- a/src/lib-sieve/sieve-parser.c
+++ b/src/lib-sieve/sieve-parser.c
@@ -95,8 +95,10 @@ sieve_parser_error(struct sieve_parser *parser,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
diff --git a/src/lib-sieve/sieve-result.c b/src/lib-sieve/sieve-result.c
index 7998a11ad..9cecc5a12 100644
--- a/src/lib-sieve/sieve-result.c
+++ b/src/lib-sieve/sieve-result.c
@@ -1535,8 +1535,10 @@ void sieve_result_error(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1552,8 +1554,10 @@ void sieve_result_global_error(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1569,8 +1573,10 @@ void sieve_result_warning(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1587,8 +1593,10 @@ void sieve_result_global_warning(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1604,8 +1612,10 @@ void sieve_result_log(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_INFO,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1621,8 +1631,10 @@ void sieve_result_global_log(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_INFO,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1639,8 +1651,10 @@ void sieve_result_global_log_error(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1658,8 +1672,10 @@ void sieve_result_global_log_warning(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1676,8 +1692,10 @@ void sieve_result_critical(const struct sieve_action_exec_env *aenv,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
diff --git a/src/lib-sieve/sieve-validator.c b/src/lib-sieve/sieve-validator.c
index d0c96f81a..c9e06901b 100644
--- a/src/lib-sieve/sieve-validator.c
+++ b/src/lib-sieve/sieve-validator.c
@@ -1666,8 +1666,10 @@ void sieve_validator_error(struct sieve_validator *valdtr,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_ERROR,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
@@ -1687,8 +1689,10 @@ void sieve_validator_warning(struct sieve_validator *valdtr,
 {
 	struct sieve_error_params params = {
 		.log_type = LOG_TYPE_WARNING,
-		.csrc.filename = csrc_filename,
-		.csrc.linenum = csrc_linenum,
+		.csrc = {
+			.filename = csrc_filename,
+			.linenum = csrc_linenum,
+		},
 	};
 	va_list args;
 
-- 
GitLab