]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
config: Use isspace() for checking whitespace
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 10 Feb 2025 12:00:43 +0000 (14:00 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:41:01 +0000 (12:41 +0200)
src/config/config-parser.c
src/config/config-parser.h
src/config/doveconf.c

index cfeede53dbdc77f4dd1b8f8ef797c4e1f22fe18a..2cfb3ec4cc9e3de90ea91746d12ee5cc0a29fa4e 100644 (file)
@@ -25,6 +25,7 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <time.h>
+#include <ctype.h>
 #ifdef HAVE_GLOB_H
 #  include <glob.h>
 #endif
@@ -1746,7 +1747,7 @@ config_parse_line(struct config_parser_context *ctx,
        /* @UNSAFE: line is modified */
 
        /* skip whitespace */
-       while (IS_WHITE(*line))
+       while (i_isspace(*line))
                line++;
 
        /* ignore comments or empty lines */
@@ -1766,7 +1767,7 @@ config_parse_line(struct config_parser_context *ctx,
                        if (*p == '\0')
                                break;
                } else if (*p == '#') {
-                       if (!IS_WHITE(p[-1])) {
+                       if (!i_isspace(p[-1])) {
                                i_warning("Configuration file %s line %u: "
                                          "Ambiguous '#' character in line, treating it as comment. "
                                          "Add a space before it to remove this warning.",
@@ -1781,7 +1782,7 @@ config_parse_line(struct config_parser_context *ctx,
        /* remove whitespace from end of line */
        len = strlen(line);
        while (len >= 1) {
-               if(!IS_WHITE(line[len-1]))
+               if(!i_isspace(line[len-1]))
                        break;
                len--;
        }
@@ -1791,7 +1792,7 @@ config_parse_line(struct config_parser_context *ctx,
                /* continues in next line */
                len--;
                while (len >= 1) {
-                       if(!IS_WHITE(line[len-1]))
+                       if(!i_isspace(line[len-1]))
                                break;
                        len--;
                }
@@ -1823,12 +1824,12 @@ config_parse_line(struct config_parser_context *ctx,
                                line++;
                }
        } else {
-               while (!IS_WHITE(*line) && *line != '\0' && *line != '=')
+               while (!i_isspace(*line) && *line != '\0' && *line != '=')
                        line++;
        }
-       if (IS_WHITE(*line)) {
+       if (i_isspace(*line)) {
                *line++ = '\0';
-               while (IS_WHITE(*line)) line++;
+               while (i_isspace(*line)) line++;
        }
        config_line_r->key = key;
        config_line_r->value = line;
@@ -1845,10 +1846,10 @@ config_parse_line(struct config_parser_context *ctx,
        if (*line == '=') {
                /* a) */
                *line++ = '\0';
-               while (IS_WHITE(*line)) line++;
+               while (i_isspace(*line)) line++;
 
                if (*line == '<') {
-                       while (IS_WHITE(line[1])) line++;
+                       while (i_isspace(line[1])) line++;
                        config_line_r->value = line + 1;
                        config_line_r->type = CONFIG_LINE_TYPE_KEYFILE;
                        return;
@@ -1886,7 +1887,7 @@ config_parse_line(struct config_parser_context *ctx,
        } else if (strcmp(key, "group") == 0) {
                /* group @group name { */
                config_line_r->key = line;
-               while (!IS_WHITE(*line) && *line != '\0')
+               while (!i_isspace(*line) && *line != '\0')
                        line++;
                if (*line == '\0') {
                        config_line_r->value = "Expecting group name";
@@ -1894,11 +1895,11 @@ config_parse_line(struct config_parser_context *ctx,
                        return;
                }
                *line++ = '\0';
-               while (IS_WHITE(*line))
+               while (i_isspace(*line))
                        line++;
 
                config_line_r->value = line;
-               while (!IS_WHITE(*line) && *line != '\0')
+               while (!i_isspace(*line) && *line != '\0')
                        line++;
                if (*line == '\0') {
                        config_line_r->value = "Expecting '{'";
@@ -1906,7 +1907,7 @@ config_parse_line(struct config_parser_context *ctx,
                        return;
                }
                *line++ = '\0';
-               while (IS_WHITE(*line))
+               while (i_isspace(*line))
                        line++;
                if (*line != '{') {
                        config_line_r->value = "Expecting '{'";
@@ -1919,11 +1920,11 @@ config_parse_line(struct config_parser_context *ctx,
                /* get section name */
                if (*line != '"') {
                        config_line_r->value = line;
-                       while (!IS_WHITE(*line) && *line != '\0')
+                       while (!i_isspace(*line) && *line != '\0')
                                line++;
                        if (*line != '\0') {
                                *line++ = '\0';
-                               while (IS_WHITE(*line))
+                               while (i_isspace(*line))
                                        line++;
                        }
                } else {
@@ -1932,7 +1933,7 @@ config_parse_line(struct config_parser_context *ctx,
                                line++;
                        if (*line == '"') {
                                *line++ = '\0';
-                               while (IS_WHITE(*line))
+                               while (i_isspace(*line))
                                        line++;
                                config_line_r->value = str_unescape(value);
                                config_line_r->value_quoted = TRUE;
@@ -2414,9 +2415,9 @@ static int config_write_keyvariable(struct config_parser_context *ctx,
                str_append_c(str, ' ');
 
                /* find next token */
-               while (*var_end != '\0' && IS_WHITE(*var_end)) var_end++;
+               while (*var_end != '\0' && i_isspace(*var_end)) var_end++;
                value = var_end;
-               while (*var_end != '\0' && !IS_WHITE(*var_end)) var_end++;
+               while (*var_end != '\0' && !i_isspace(*var_end)) var_end++;
        }
 
        return 0;
index 0633537d1fe9de51385296b808b65226039bd9a9..307c6ecd0d9fc6762b2d087e9ce481ccf57ebb6c 100644 (file)
@@ -5,8 +5,6 @@
 
 #define CONFIG_MODULE_DIR MODULEDIR"/settings"
 
-#define IS_WHITE(c) ((c) == ' ' || (c) == '\t')
-
 /* change_counter used for default settings created internally */
 #define CONFIG_PARSER_CHANGE_DEFAULTS 1
 /* change_counter used for settings changed by configuration file */
index 655c7a526d8d8ba4102f8d7fecbba55d89b35ce2..951656ccd672f504a90177c633ce42503e8ddde8 100644 (file)
@@ -206,7 +206,7 @@ static bool value_need_quote(const char *value)
 
        if (strchr(value, '#') != NULL)
                return TRUE;
-       if (IS_WHITE(value[0]) || IS_WHITE(value[len-1]))
+       if (i_isspace(value[0]) || i_isspace(value[len-1]))
                return TRUE;
        return FALSE;
 }