From c67ac6db108f0953bd87e7387ecaeb119e5923f0 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Thu, 30 Oct 2008 20:07:36 +0100
Subject: [PATCH] Made lda plugin properly refer to the main script as 'main
 script' and not the basename of the sieve file (which is of no interest to
 the user for the main script).

---
 src/lib-sieve/sieve.c                    | 5 +++--
 src/lib-sieve/sieve.h                    | 4 ++--
 src/plugins/lda-sieve/lda-sieve-plugin.c | 2 +-
 src/sieve-bin/bin-common.c               | 2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c
index 39e131373..718cd09dc 100644
--- a/src/lib-sieve/sieve.c
+++ b/src/lib-sieve/sieve.c
@@ -156,14 +156,15 @@ struct sieve_binary *sieve_compile
  */
 
 struct sieve_binary *sieve_open
-(const char *script_path, struct sieve_error_handler *ehandler, bool *exists_r)
+(const char *script_path, const char *script_name,
+	struct sieve_error_handler *ehandler, bool *exists_r)
 {
 	struct sieve_script *script;
 	struct sieve_binary *sbin;
 	const char *binpath;
 	
 	/* First open the scriptfile itself */
-	script = sieve_script_create(script_path, NULL, ehandler, exists_r);
+	script = sieve_script_create(script_path, script_name, ehandler, exists_r);
 
 	if ( script == NULL ) {
 		/* Failed */
diff --git a/src/lib-sieve/sieve.h b/src/lib-sieve/sieve.h
index affd751e6..a8720357f 100644
--- a/src/lib-sieve/sieve.h
+++ b/src/lib-sieve/sieve.h
@@ -61,8 +61,8 @@ struct sieve_binary *sieve_compile
  *
  */
 struct sieve_binary *sieve_open
-	(const char *scriptpath, struct sieve_error_handler *ehandler,
-		bool *exists_r);
+	(const char *scriptpath, const char *script_name, 
+		struct sieve_error_handler *ehandler, bool *exists_r);
 
 /* sieve_save:
  *  Saves the binary as the file indicated by the path parameter.
diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c
index 43dd737a3..34f1f98a0 100644
--- a/src/plugins/lda-sieve/lda-sieve-plugin.c
+++ b/src/plugins/lda-sieve/lda-sieve-plugin.c
@@ -127,7 +127,7 @@ static int lda_sieve_run
 	if ( debug )
 		sieve_sys_info("opening script %s", script_path);
 
-	if ( (sbin=sieve_open(script_path, ehandler, &exists)) == NULL ) {
+	if ( (sbin=sieve_open(script_path, "main script", ehandler, &exists)) == NULL ) {
 
 		ret = sieve_get_errors(ehandler) > 0 ? -1 : 0;
 
diff --git a/src/sieve-bin/bin-common.c b/src/sieve-bin/bin-common.c
index 98e3b3639..866f15276 100644
--- a/src/sieve-bin/bin-common.c
+++ b/src/sieve-bin/bin-common.c
@@ -96,7 +96,7 @@ struct sieve_binary *bin_open_sieve_script(const char *filename)
 	ehandler = sieve_stderr_ehandler_create(0);
 	sieve_error_handler_accept_infolog(ehandler, TRUE);
 
-	if ( (sbin = sieve_open(filename, ehandler, NULL)) == NULL ) {
+	if ( (sbin = sieve_open(filename, NULL, ehandler, NULL)) == NULL ) {
 		sieve_error_handler_unref(&ehandler);
 		i_fatal("Failed to compile sieve script\n");
 	}
-- 
GitLab