]> git.netwichtig.de Git - user/henk/code/exim.git/blobdiff - src/src/readconf.c
Honour the -n for -bP config
[user/henk/code/exim.git] / src / src / readconf.c
index 3a4a4c3bfea67f9947ba24b66d2eaf2948bbf8e6..328d4955841d6515919a332d7987b0c5725f604b 100644 (file)
@@ -16,7 +16,7 @@ extern char **environ;
 static void fn_smtp_receive_timeout(const uschar * name, const uschar * str);
 static void save_config_line(const uschar* line);
 static void save_config_position(const uschar *file, int line);
-static void print_config(BOOL admin);
+static void print_config(BOOL admin, BOOL terse);
 
 
 #define CSTATE_STACK_SIZE 10
@@ -2649,7 +2649,7 @@ if (type == NULL)
 
   if (Ustrcmp(name, "config") == 0)
     {
-    print_config(admin_user);
+    print_config(admin_user, no_labels);
     return;
     }
 
@@ -2708,13 +2708,14 @@ if (type == NULL)
     {
     if (environ)
       {
-      uschar **p;
+      uschar ** p;
       for (p = USS environ; *p; p++) ;
       qsort(environ, p - USS environ, sizeof(*p), string_compare_by_pointer);
 
       for (p = USS environ; *p; p++)
         {
-        if (no_labels) *(Ustrchr(*p, '=')) = '\0';
+       uschar * q;
+        if (no_labels && (q = Ustrchr(*p, '='))) *q  = '\0';
         puts(CS *p);
         }
       }
@@ -3505,7 +3506,7 @@ if (gnutls_require_kx || gnutls_require_mac || gnutls_require_proto)
 if ((!add_environment || *add_environment == '\0') && !keep_environment)
   log_write(0, LOG_MAIN,
       "WARNING: purging the environment.\n"
-      " Suggested action: use keep_environment and add_environment.\n");
+      " Suggested action: use keep_environment and add_environment.");
 }
 
 
@@ -4302,10 +4303,10 @@ current = next;
 /* List the parsed config lines, care about nice formatting and
 hide the <hide> values unless we're the admin user */
 void
-print_config(BOOL admin)
+print_config(BOOL admin, BOOL terse)
 {
 config_line_item *i;
-const int TS = 2;
+const int TS = terse ? 0 : 2;
 int indent = 0;
 
 for (i = config_lines; i; i = i->next)
@@ -4345,7 +4346,7 @@ for (i = config_lines; i; i = i->next)
   /* begin lines are left aligned */
   else if (Ustrncmp(current, "begin", 5) == 0 && isspace(current[5]))
     {
-    puts("");
+    if (!terse) puts("");
     puts(CCS current);
     indent = TS;
     }
@@ -4353,7 +4354,8 @@ for (i = config_lines; i; i = i->next)
   /* router/acl/transport block names */
   else if (current[Ustrlen(current)-1] == ':' && !Ustrchr(current, '='))
     {
-    printf("\n%*s%s\n", TS, "", current);
+    if (!terse) puts("");
+    printf("%*s%s\n", TS, "", current);
     indent = 2 * TS;
     }