diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c index 11e7b6635f3160a989db23decd17fcaa8b103419..11f934d9a4b9967bfc237b1c7c398f468ef3960a 100644 --- a/src/lib-sieve/sieve-script.c +++ b/src/lib-sieve/sieve-script.c @@ -400,6 +400,8 @@ int sieve_script_get_stream(struct sieve_script *script, int sieve_script_cmp(const struct sieve_script *script1, const struct sieve_script *script2) { + int ret; + if (script1 == script2) return 0; if (script1 == NULL || script2 == NULL) @@ -410,7 +412,11 @@ int sieve_script_cmp(const struct sieve_script *script1, if (script1->v.cmp == NULL) { i_assert (script1->location != NULL && script2->location != NULL); - return strcmp(script1->location, script2->location); + ret = strcmp(script1->location, script2->location); + if (ret != 0) + return (ret < 0 ? -1 : 1); + + return null_strcmp(script1->name, script2->name); } return script1->v.cmp(script1, script2); diff --git a/src/lib-sieve/storage/dict/sieve-dict-script.c b/src/lib-sieve/storage/dict/sieve-dict-script.c index 4448c003fd08bb882876beec91fbdd1fbc6b81e2..6ccac8ebbc83ad8743062a420cbed50dddd238a5 100644 --- a/src/lib-sieve/storage/dict/sieve-dict-script.c +++ b/src/lib-sieve/storage/dict/sieve-dict-script.c @@ -238,26 +238,6 @@ sieve_dict_script_binary_save(struct sieve_script *script, update, 0600); } -static int -sieve_dict_script_cmp(const struct sieve_script *script, - const struct sieve_script *other) -{ - struct sieve_storage *storage = script->storage; - struct sieve_storage *sother = other->storage; - int ret; - - ret = strcmp(storage->location, sother->location); - if (ret != 0) - return (ret < 0 ? -1 : 1); - - i_assert(script->name != NULL && other->name != NULL); - - ret = strcmp(script->name, other->name); - if (ret != 0) - return (ret < 0 ? -1 : 1); - return 0; -} - const struct sieve_script sieve_dict_script = { .driver_name = SIEVE_DICT_STORAGE_DRIVER_NAME, .v = { @@ -272,8 +252,6 @@ const struct sieve_script sieve_dict_script = { .binary_dump_metadata = sieve_dict_script_binary_dump_metadata, .binary_load = sieve_dict_script_binary_load, .binary_save = sieve_dict_script_binary_save, - - .cmp = sieve_dict_script_cmp, }, }; diff --git a/src/lib-sieve/storage/file/sieve-file-script.c b/src/lib-sieve/storage/file/sieve-file-script.c index ac2b0eb46fd77f62bbafd03046e96e57cbb4c63a..cb53e3bf06e40c583978c3b3171920db820b2e35 100644 --- a/src/lib-sieve/storage/file/sieve-file-script.c +++ b/src/lib-sieve/storage/file/sieve-file-script.c @@ -824,8 +824,7 @@ sieve_file_script_cmp(const struct sieve_script *script1, if (ret != 0) return ret; - i_assert(script1->name != NULL && script2->name != NULL); - return strcmp(script1->name, script2->name); + return null_strcmp(script1->name, script2->name); } if (major(fscript1->st.st_dev) != major(fscript2->st.st_dev)) { diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-script.c b/src/lib-sieve/storage/ldap/sieve-ldap-script.c index 1ee543a5d3a7efdeb1c8d5c1181fbb78cf0325f4..f1d7b177a1216b0b820573fe9a7a65f2380dae14 100644 --- a/src/lib-sieve/storage/ldap/sieve-ldap-script.c +++ b/src/lib-sieve/storage/ldap/sieve-ldap-script.c @@ -262,20 +262,6 @@ sieve_ldap_script_binary_save(struct sieve_script *script, update, 0600); } -static int -sieve_ldap_script_cmp(const struct sieve_script *script1, - const struct sieve_script *script2) -{ - int ret; - - i_assert(script1->name != NULL && script2->name != NULL); - - ret = strcmp(script1->name, script2->name); - if (ret != 0) - return (ret > 0 ? 1 : -1); - return 0; -} - const struct sieve_script sieve_ldap_script = { .driver_name = SIEVE_LDAP_STORAGE_DRIVER_NAME, .v = { @@ -289,8 +275,6 @@ const struct sieve_script sieve_ldap_script = { .binary_dump_metadata = sieve_ldap_script_binary_dump_metadata, .binary_load = sieve_ldap_script_binary_load, .binary_save = sieve_ldap_script_binary_save, - - .cmp = sieve_ldap_script_cmp, }, };