X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Freadconf.c;h=9de064d958f877f83b92dd7dd3b0b1e650b3b6f5;hb=66802652b8500bae10ac530b6fe4976669f5dcff;hp=9b0b26e425908adb3be18093804fd5ab6939e2c6;hpb=7a2fa0bc49edcd925d51605836f0132a130e0167;p=exim.git diff --git a/src/src/readconf.c b/src/src/readconf.c index 9b0b26e42..9de064d95 100644 --- a/src/src/readconf.c +++ b/src/src/readconf.c @@ -194,6 +194,7 @@ static optionlist optionlist_config[] = { { "bounce_message_file", opt_stringptr, &bounce_message_file }, { "bounce_message_text", opt_stringptr, &bounce_message_text }, { "bounce_return_body", opt_bool, &bounce_return_body }, + { "bounce_return_linesize_limit", opt_mkint, &bounce_return_linesize_limit }, { "bounce_return_message", opt_bool, &bounce_return_message }, { "bounce_return_size_limit", opt_mkint, &bounce_return_size_limit }, { "bounce_sender_authentication",opt_stringptr,&bounce_sender_authentication }, @@ -251,7 +252,7 @@ static optionlist optionlist_config[] = { { "envelope_to_remove", opt_bool, &envelope_to_remove }, { "errors_copy", opt_stringptr, &errors_copy }, { "errors_reply_to", opt_stringptr, &errors_reply_to }, -#ifdef EXPERIMENTAL_EVENT +#ifndef DISABLE_EVENT { "event_action", opt_stringptr, &event_action }, #endif { "exim_group", opt_gid, &exim_gid }, @@ -375,7 +376,7 @@ static optionlist optionlist_config[] = { { "recipient_unqualified_hosts", opt_stringptr, &recipient_unqualified_hosts }, { "recipients_max", opt_int, &recipients_max }, { "recipients_max_reject", opt_bool, &recipients_max_reject }, -#ifdef EXPERIMENTAL_REDIS +#ifdef LOOKUP_REDIS { "redis_servers", opt_stringptr, &redis_servers }, #endif { "remote_max_parallel", opt_int, &remote_max_parallel }, @@ -413,7 +414,7 @@ static optionlist optionlist_config[] = { { "smtp_receive_timeout", opt_func, &fn_smtp_receive_timeout }, { "smtp_reserve_hosts", opt_stringptr, &smtp_reserve_hosts }, { "smtp_return_error_details",opt_bool, &smtp_return_error_details }, -#ifdef EXPERIMENTAL_INTERNATIONAL +#ifdef SUPPORT_I18N { "smtputf8_advertise_hosts", opt_stringptr, &smtputf8_advertise_hosts }, #endif #ifdef WITH_CONTENT_SCAN @@ -4275,7 +4276,7 @@ int indent = 0; for (i = config_lines; i; i = i->next) { - const uschar *current; + uschar *current; uschar *p; /* skip over to the first non-space */ @@ -4285,48 +4286,63 @@ for (i = config_lines; i; i = i->next) if (*current == '\0') continue; - /* TODO: Collapse or insert spaces around the first '=' */ + /* Collapse runs of spaces. We stop this if we encounter one of the + * following characters: "'$, as this may indicate careful formatting */ + for (p = current; *p; ++p) + { + uschar *next; + if (!isspace(*p)) continue; + if (*p != ' ') *p = ' '; + + for (next = p; isspace(*next); ++next) + ; + + if (next - p > 1) + memmove(p+1, next, Ustrlen(next)+1); + + if (*next == '"' || *next == '\'' || *next == '$') + break; + } /* # lines */ if (current[0] == '#') - { - puts(current); - continue; - } + puts(CCS current); /* begin lines are left aligned */ - if (strncmp(current, "begin", 5) == 0 && isspace(current[5])) + else if (Ustrncmp(current, "begin", 5) == 0 && isspace(current[5])) { - puts(current); + puts(""); + puts(CCS current); indent = TS; - continue; } /* router/acl/transport block names */ - if (current[strlen(current)-1] == ':' && !strchr(current, '=')) + else if (current[Ustrlen(current)-1] == ':' && !Ustrchr(current, '=')) { - printf("%*s%s\n", TS, "", current); + printf("\n%*s%s\n", TS, "", current); indent = 2 * TS; - continue; } - /* hidden lines (MACROS or prefixed with hide) */ - if (!admin && (isupper(*current) - || (strncmp(current, "hide", 4) == 0 && isspace(current[4])))) + /* hidden lines (all MACROS or lines prefixed with "hide") */ + else if ( !admin + && ( isupper(*current) + || Ustrncmp(current, "hide", 4) == 0 && isspace(current[4]) + ) + ) { - if (p = strchr(current, '=')) + if ((p = Ustrchr(current, '='))) { *p = '\0'; - printf("%*s%s = %s\n", indent, "", current, hidden); + printf("%*s%s= %s\n", indent, "", current, hidden); } /* e.g.: hide split_spool_directory */ - else printf("%*s\n", indent, hidden); - continue; + else + printf("%*s\n", indent, hidden); } - /* rest is public */ - printf("%*s%s\n", indent, "", current); - continue; + else + /* rest is public */ + printf("%*s%s\n", indent, "", current); } }