Debug: Use UTF-8 linedrawing rather than ASCII lineart for grouping expansion tracing...
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 4 Mar 2017 21:53:33 +0000 (21:53 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 4 Mar 2017 23:40:05 +0000 (23:40 +0000)
src/src/expand.c
src/src/macros.h
test/stderr/0002
test/stderr/0092
test/stderr/0402
test/stderr/0544
test/stderr/3000
test/stderr/5410
test/stderr/5420
test/stdout/0574

index 1da8589..b96b289 100644 (file)
@@ -3872,7 +3872,11 @@ BOOL resetok = TRUE;
 
 expand_level++;
 DEBUG(D_expand)
-  debug_printf_indent("/%s: %s\n", skipping ? "   scanning" : "considering", string);
+  debug_printf_indent(UTF8_DOWN_RIGHT "%s: %s\n",
+    skipping
+    ? UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ "scanning"
+    : "considering",
+    string);
 
 expand_string_forcedfail = FALSE;
 expand_string_message = US"";
@@ -4119,8 +4123,13 @@ while (*s != 0)
 
       DEBUG(D_expand)
        {
-        debug_printf_indent("|__condition: %.*s\n", (int)(next_s - s), s);
-        debug_printf_indent("|_____result: %s\n", cond ? "true" : "false");
+        debug_printf_indent(UTF8_VERT_RIGHT UTF8_HORIZ UTF8_HORIZ
+         "condition: %.*s\n",
+         (int)(next_s - s), s);
+        debug_printf_indent(UTF8_VERT_RIGHT UTF8_HORIZ UTF8_HORIZ
+         UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ
+         "result: %s\n",
+         cond ? "true" : "false");
        }
 
       s = next_s;
@@ -7501,9 +7510,17 @@ else if (resetok_p) *resetok_p = FALSE;
 
 DEBUG(D_expand)
   {
-  debug_printf_indent("|__expanding: %.*s\n", (int)(s - string), string);
-  debug_printf_indent("%s_____result: %s\n", skipping ? "|" : "\\", yield);
-  if (skipping) debug_printf_indent("\\___skipping: result is not used\n");
+  debug_printf_indent(UTF8_VERT_RIGHT UTF8_HORIZ UTF8_HORIZ
+    "expanding: %.*s\n",
+    (int)(s - string), string);
+  debug_printf_indent("%s"
+    UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ
+    "result: %s\n",
+    skipping ? UTF8_VERT_RIGHT : UTF8_UP_RIGHT,
+    yield);
+  if (skipping)
+    debug_printf_indent(UTF8_UP_RIGHT UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ
+      "skipping: result is not used\n");
   }
 expand_level--;
 return yield;
@@ -7527,10 +7544,14 @@ EXPAND_FAILED:
 if (left != NULL) *left = s;
 DEBUG(D_expand)
   {
-  debug_printf_indent("|failed to expand: %s\n", string);
-  debug_printf_indent("%s___error message: %s\n",
-    expand_string_forcedfail ? "|" : "\\", expand_string_message);
-  if (expand_string_forcedfail) debug_printf_indent("\\failure was forced\n");
+  debug_printf_indent(UTF8_VERT_RIGHT "failed to expand: %s\n",
+    string);
+  debug_printf_indent("%s" UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ
+    "error message: %s\n",
+    expand_string_forcedfail ? UTF8_VERT_RIGHT : UTF8_UP_RIGHT,
+    expand_string_message);
+  if (expand_string_forcedfail)
+    debug_printf_indent(UTF8_UP_RIGHT "failure was forced\n");
   }
 if (resetok_p) *resetok_p = resetok;
 expand_level--;
index e4dcf3c..4efeee9 100644 (file)
@@ -974,5 +974,13 @@ enum { FILTER_UNSET, FILTER_FORWARD, FILTER_EXIM, FILTER_SIEVE };
 
 #define GETC_BUFFER_UNLIMITED  UINT_MAX
 
+/* UTF-8 chars for line-drawing */
+
+#define UTF8_DOWN_RIGHT                "\xE2\x94\x8c"
+#define UTF8_HORIZ             "\xE2\x94\x80"
+#define UTF8_VERT_RIGHT                "\xE2\x94\x9C"
+#define UTF8_UP_RIGHT          "\xE2\x94\x94"
+
+
 
 /* End of macros.h */
index 281e3dc..4b68f4e 100644 (file)
 Exim version x.yz ....
 configuration file is TESTSUITE/test-config
 admin user
/considering: primary_hostname: $primary_hostname
|__expanding: primary_hostname: $primary_hostname
\_____result: primary_hostname: myhost.test.ex
/considering: match:  ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
-  /considering: abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
-  |__expanding: abcd
-  \_____result: abcd
-  /considering: \N^([ab]+)(\w+)$\N}{$2$1}fail}
-  |__expanding: \N^([ab]+)(\w+)$\N
-  \_____result: ^([ab]+)(\w+)$
|__condition: match{abcd}{\N^([ab]+)(\w+)$\N}
|_____result: true
-  /considering: $2$1}fail}
-  |__expanding: $2$1
-  \_____result: cdab
|__expanding: match:  ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
\_____result: match:  cdab
/considering: match:  ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
-  /considering: wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
-  |__expanding: wxyz
-  \_____result: wxyz
-  /considering: \N^([ab]+)(\w+)$\N}{$2$1}fail}
-  |__expanding: \N^([ab]+)(\w+)$\N
-  \_____result: ^([ab]+)(\w+)$
|__condition: match{wxyz}{\N^([ab]+)(\w+)$\N}
|_____result: false
-  /   scanning: $2$1}fail}
-  |__expanding: $2$1
-  |_____result: 
-  \___skipping: result is not used
|failed to expand: match:  ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
|___error message: "if" failed and "fail" requested
\failure was forced
/considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
-  /considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
-  |__expanding: 1
-  \_____result: 1
-  /considering: 1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
-  |__expanding: 1
-  \_____result: 1
|__condition: eq {1}{1}
|_____result: true
-  /considering: yes}{${lookup{xx}lsearch{/non/exist}}}}
-  |__expanding: yes
-  \_____result: yes
-  /   scanning: ${lookup{xx}lsearch{/non/exist}}}}
-   /   scanning: xx}lsearch{/non/exist}}}}
-   |__expanding: xx
-   |_____result: xx
-   \___skipping: result is not used
-   /   scanning: /non/exist}}}}
-   |__expanding: /non/exist
-   |_____result: /non/exist
-   \___skipping: result is not used
-  |__expanding: ${lookup{xx}lsearch{/non/exist}}
-  |_____result: 
-  \___skipping: result is not used
|__expanding: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
\_____result: yes
/considering: match_address:   ${if match_address{a.b.c}{a.b.c}{yes}{no}}
-  /considering: a.b.c}{a.b.c}{yes}{no}}
-  |__expanding: a.b.c
-  \_____result: a.b.c
-  /considering: a.b.c}{yes}{no}}
-  |__expanding: a.b.c
-  \_____result: a.b.c
considering: primary_hostname: $primary_hostname
├──expanding: primary_hostname: $primary_hostname
└─────result: primary_hostname: myhost.test.ex
considering: match:  ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
+  considering: abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
+  ├──expanding: abcd
+  └─────result: abcd
+  considering: \N^([ab]+)(\w+)$\N}{$2$1}fail}
+  ├──expanding: \N^([ab]+)(\w+)$\N
+  └─────result: ^([ab]+)(\w+)$
├──condition: match{abcd}{\N^([ab]+)(\w+)$\N}
├─────result: true
+  considering: $2$1}fail}
+  ├──expanding: $2$1
+  └─────result: cdab
├──expanding: match:  ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
└─────result: match:  cdab
considering: match:  ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
+  considering: wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
+  ├──expanding: wxyz
+  └─────result: wxyz
+  considering: \N^([ab]+)(\w+)$\N}{$2$1}fail}
+  ├──expanding: \N^([ab]+)(\w+)$\N
+  └─────result: ^([ab]+)(\w+)$
├──condition: match{wxyz}{\N^([ab]+)(\w+)$\N}
├─────result: false
+  ┌───scanning: $2$1}fail}
+  ├──expanding: $2$1
+  ├─────result: 
+  └───skipping: result is not used
failed to expand: match:  ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
├───error message: "if" failed and "fail" requested
failure was forced
considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
+  considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
+  ├──expanding: 1
+  └─────result: 1
+  considering: 1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
+  ├──expanding: 1
+  └─────result: 1
├──condition: eq {1}{1}
├─────result: true
+  considering: yes}{${lookup{xx}lsearch{/non/exist}}}}
+  ├──expanding: yes
+  └─────result: yes
+  ┌───scanning: ${lookup{xx}lsearch{/non/exist}}}}
+   ┌───scanning: xx}lsearch{/non/exist}}}}
+   ├──expanding: xx
+   ├─────result: xx
+   └───skipping: result is not used
+   ┌───scanning: /non/exist}}}}
+   ├──expanding: /non/exist
+   ├─────result: /non/exist
+   └───skipping: result is not used
+  ├──expanding: ${lookup{xx}lsearch{/non/exist}}
+  ├─────result: 
+  └───skipping: result is not used
├──expanding: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
└─────result: yes
considering: match_address:   ${if match_address{a.b.c}{a.b.c}{yes}{no}}
+  considering: a.b.c}{a.b.c}{yes}{no}}
+  ├──expanding: a.b.c
+  └─────result: a.b.c
+  considering: a.b.c}{yes}{no}}
+  ├──expanding: a.b.c
+  └─────result: a.b.c
 LOG: MAIN PANIC
   no @ found in the subject of an address list match: subject="a.b.c" pattern="a.b.c"
|__condition: match_address{a.b.c}{a.b.c}
|_____result: false
-  /   scanning: yes}{no}}
-  |__expanding: yes
-  |_____result: yes
-  \___skipping: result is not used
-  /considering: no}}
-  |__expanding: no
-  \_____result: no
|__expanding: match_address:   ${if match_address{a.b.c}{a.b.c}{yes}{no}}
\_____result: match_address:   no
├──condition: match_address{a.b.c}{a.b.c}
├─────result: false
+  ┌───scanning: yes}{no}}
+  ├──expanding: yes
+  ├─────result: yes
+  └───skipping: result is not used
+  considering: no}}
+  ├──expanding: no
+  └─────result: no
├──expanding: match_address:   ${if match_address{a.b.c}{a.b.c}{yes}{no}}
└─────result: match_address:   no
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 configuration file is TESTSUITE/test-config
 admin user
/considering: -oMa  sender_host_address = $sender_host_address
|__expanding: -oMa  sender_host_address = $sender_host_address
\_____result: -oMa  sender_host_address = V4NET.0.0.1
/considering:       sender_host_port = $sender_host_port
|__expanding:       sender_host_port = $sender_host_port
\_____result:       sender_host_port = 1234
/considering: -oMaa sender_host_authenticated = $sender_host_authenticated
|__expanding: -oMaa sender_host_authenticated = $sender_host_authenticated
\_____result: -oMaa sender_host_authenticated = AAA
/considering: -oMai authenticated_id = $authenticated_id
|__expanding: -oMai authenticated_id = $authenticated_id
\_____result: -oMai authenticated_id = philip
/considering: -oMas authenticated_sender = $authenticated_sender
|__expanding: -oMas authenticated_sender = $authenticated_sender
\_____result: -oMas authenticated_sender = xx@yy.zz
/considering: -oMi  interface_address = $interface_address
|__expanding: -oMi  interface_address = $interface_address
\_____result: -oMi  interface_address = 1.1.1.1
/considering:       interface_port = $interface_port
|__expanding:       interface_port = $interface_port
\_____result:       interface_port = 99
/considering: -oMr  received_protocol = $received_protocol
|__expanding: -oMr  received_protocol = $received_protocol
\_____result: -oMr  received_protocol = special
/considering: -oMt  sender_ident = $sender_ident
|__expanding: -oMt  sender_ident = $sender_ident
\_____result: -oMt  sender_ident = me
considering: -oMa  sender_host_address = $sender_host_address
├──expanding: -oMa  sender_host_address = $sender_host_address
└─────result: -oMa  sender_host_address = V4NET.0.0.1
considering:       sender_host_port = $sender_host_port
├──expanding:       sender_host_port = $sender_host_port
└─────result:       sender_host_port = 1234
considering: -oMaa sender_host_authenticated = $sender_host_authenticated
├──expanding: -oMaa sender_host_authenticated = $sender_host_authenticated
└─────result: -oMaa sender_host_authenticated = AAA
considering: -oMai authenticated_id = $authenticated_id
├──expanding: -oMai authenticated_id = $authenticated_id
└─────result: -oMai authenticated_id = philip
considering: -oMas authenticated_sender = $authenticated_sender
├──expanding: -oMas authenticated_sender = $authenticated_sender
└─────result: -oMas authenticated_sender = xx@yy.zz
considering: -oMi  interface_address = $interface_address
├──expanding: -oMi  interface_address = $interface_address
└─────result: -oMi  interface_address = 1.1.1.1
considering:       interface_port = $interface_port
├──expanding:       interface_port = $interface_port
└─────result:       interface_port = 99
considering: -oMr  received_protocol = $received_protocol
├──expanding: -oMr  received_protocol = $received_protocol
└─────result: -oMr  received_protocol = special
considering: -oMt  sender_ident = $sender_ident
├──expanding: -oMt  sender_ident = $sender_ident
└─────result: -oMt  sender_ident = me
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
 1999-03-02 09:44:33 no host name found for IP address V4NET.11.12.13
 Exim version x.yz ....
 configuration file is TESTSUITE/test-config
 admin user
/considering: -oMa  sender_host_address = $sender_host_address
|__expanding: -oMa  sender_host_address = $sender_host_address
\_____result: -oMa  sender_host_address = V4NET.0.0.1
/considering:       sender_host_port = $sender_host_port
|__expanding:       sender_host_port = $sender_host_port
\_____result:       sender_host_port = 1234
/considering: -oMaa sender_host_authenticated = $sender_host_authenticated
|__expanding: -oMaa sender_host_authenticated = $sender_host_authenticated
\_____result: -oMaa sender_host_authenticated = AAA
/considering: -oMai authenticated_id = $authenticated_id
|__expanding: -oMai authenticated_id = $authenticated_id
\_____result: -oMai authenticated_id = philip
/considering: -oMas authenticated_sender = $authenticated_sender
|__expanding: -oMas authenticated_sender = $authenticated_sender
\_____result: -oMas authenticated_sender = xx@yy.zz
/considering: -oMi  interface_address = $interface_address
|__expanding: -oMi  interface_address = $interface_address
\_____result: -oMi  interface_address = 1.1.1.1
/considering:       interface_port = $interface_port
|__expanding:       interface_port = $interface_port
\_____result:       interface_port = 99
/considering: -oMr  received_protocol = $received_protocol
|__expanding: -oMr  received_protocol = $received_protocol
\_____result: -oMr  received_protocol = special
/considering: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}}
-  /considering: black}{white}{$sender_host_name}{No}}
-  |__expanding: black
-  \_____result: black
-  /considering: white}{$sender_host_name}{No}}
-  |__expanding: white
-  \_____result: white
|__condition: eq{black}{white}
|_____result: false
-  /   scanning: $sender_host_name}{No}}
-  |__expanding: $sender_host_name
-  |_____result: 
-  \___skipping: result is not used
-  /considering: No}}
-  |__expanding: No
-  \_____result: No
|__expanding: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}}
\_____result: ----> No lookup yet: No
/considering: -oMs  sender_host_name = $sender_host_name
considering: -oMa  sender_host_address = $sender_host_address
├──expanding: -oMa  sender_host_address = $sender_host_address
└─────result: -oMa  sender_host_address = V4NET.0.0.1
considering:       sender_host_port = $sender_host_port
├──expanding:       sender_host_port = $sender_host_port
└─────result:       sender_host_port = 1234
considering: -oMaa sender_host_authenticated = $sender_host_authenticated
├──expanding: -oMaa sender_host_authenticated = $sender_host_authenticated
└─────result: -oMaa sender_host_authenticated = AAA
considering: -oMai authenticated_id = $authenticated_id
├──expanding: -oMai authenticated_id = $authenticated_id
└─────result: -oMai authenticated_id = philip
considering: -oMas authenticated_sender = $authenticated_sender
├──expanding: -oMas authenticated_sender = $authenticated_sender
└─────result: -oMas authenticated_sender = xx@yy.zz
considering: -oMi  interface_address = $interface_address
├──expanding: -oMi  interface_address = $interface_address
└─────result: -oMi  interface_address = 1.1.1.1
considering:       interface_port = $interface_port
├──expanding:       interface_port = $interface_port
└─────result:       interface_port = 99
considering: -oMr  received_protocol = $received_protocol
├──expanding: -oMr  received_protocol = $received_protocol
└─────result: -oMr  received_protocol = special
considering: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}}
+  considering: black}{white}{$sender_host_name}{No}}
+  ├──expanding: black
+  └─────result: black
+  considering: white}{$sender_host_name}{No}}
+  ├──expanding: white
+  └─────result: white
├──condition: eq{black}{white}
├─────result: false
+  ┌───scanning: $sender_host_name}{No}}
+  ├──expanding: $sender_host_name
+  ├─────result: 
+  └───skipping: result is not used
+  considering: No}}
+  ├──expanding: No
+  └─────result: No
├──expanding: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}}
└─────result: ----> No lookup yet: No
considering: -oMs  sender_host_name = $sender_host_name
 looking up host name for V4NET.0.0.1
 IP address lookup yielded "ten-1.test.ex"
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
@@ -166,11 +166,11 @@ checking addresses for ten-1.test.ex
   V4NET.0.0.1 OK
 sender_fullhost = ten-1.test.ex [V4NET.0.0.1]
 sender_rcvhost = ten-1.test.ex ([V4NET.0.0.1] ident=me)
|__expanding: -oMs  sender_host_name = $sender_host_name
\_____result: -oMs  sender_host_name = ten-1.test.ex
/considering: -oMt  sender_ident = $sender_ident
|__expanding: -oMt  sender_ident = $sender_ident
\_____result: -oMt  sender_ident = me
├──expanding: -oMs  sender_host_name = $sender_host_name
└─────result: -oMs  sender_host_name = ten-1.test.ex
considering: -oMt  sender_ident = $sender_ident
├──expanding: -oMt  sender_ident = $sender_ident
└─────result: -oMt  sender_ident = me
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
index 3be6406..ff8d0d3 100644 (file)
@@ -50,33 +50,33 @@ LOG: smtp_connection MAIN
   SMTP connection from [V4NET.0.0.1]
 host in host_lookup? no (option unset)
 set_process_info: pppp handling incoming connection from [V4NET.0.0.1]
/considering: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s
-  /considering: V4NET.0.0.1} {$sender_host_address} {2} {30}}s
-  |__expanding: V4NET.0.0.1
-  \_____result: V4NET.0.0.1
-  /considering: $sender_host_address} {2} {30}}s
-  |__expanding: $sender_host_address
-  \_____result: V4NET.0.0.1
|__condition: eq {V4NET.0.0.1} {$sender_host_address}
|_____result: true
-  /considering: 2} {30}}s
-  |__expanding: 2
-  \_____result: 2
-  /   scanning: 30}}s
-  |__expanding: 30
-  |_____result: 30
-  \___skipping: result is not used
|__expanding: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s
\_____result: 2s
considering: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s
+  considering: V4NET.0.0.1} {$sender_host_address} {2} {30}}s
+  ├──expanding: V4NET.0.0.1
+  └─────result: V4NET.0.0.1
+  considering: $sender_host_address} {2} {30}}s
+  ├──expanding: $sender_host_address
+  └─────result: V4NET.0.0.1
├──condition: eq {V4NET.0.0.1} {$sender_host_address}
├─────result: true
+  considering: 2} {30}}s
+  ├──expanding: 2
+  └─────result: 2
+  ┌───scanning: 30}}s
+  ├──expanding: 30
+  ├─────result: 30
+  └───skipping: result is not used
├──expanding: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s
└─────result: 2s
 host in host_reject_connection? no (option unset)
 host in sender_unqualified_hosts? no (option unset)
 host in recipient_unqualified_hosts? no (option unset)
 host in helo_verify_hosts? no (option unset)
 host in helo_try_verify_hosts? no (option unset)
 host in helo_accept_junk_hosts? no (option unset)
/considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
|__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
\_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
└─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 SMTP>> 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 smtp_setup_msg entered
 SMTP<< mail from:userx@test.ex
index 99b05dd..8912136 100644 (file)
@@ -41,109 +41,109 @@ F From: CALLER_NAME <CALLER@test.ex>
 
 Data file name: TESTSUITE/spool//input//10HmaX-0005vi-00-D
 Data file written for message 10HmaX-0005vi-00
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
/considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
|__condition: def:sender_rcvhost
|_____result: false
-  /   scanning: from $sender_rcvhost
├──condition: def:sender_rcvhost
├─────result: false
+  ┌───scanning: from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: from $sender_rcvhost
+  ├──expanding: from $sender_rcvhost
        
-  |_____result: from 
+  ├─────result: from 
        
-  \___skipping: result is not used
-  /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  └───skipping: result is not used
+  considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__condition: def:sender_ident
-  |_____result: true
-   /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──condition: def:sender_ident
+  ├─────result: true
+   considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ./considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   .considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   .|__expanding: $sender_ident
-   .\_____result: CALLER
-   |__expanding: from ${quote_local_part:$sender_ident} 
-   \_____result: from CALLER 
-  |__condition: def:sender_helo_name
-  |_____result: false
-   /   scanning: (helo=$sender_helo_name)
+   .├──expanding: $sender_ident
+   .└─────result: CALLER
+   ├──expanding: from ${quote_local_part:$sender_ident} 
+   └─────result: from CALLER 
+  ├──condition: def:sender_helo_name
+  ├─────result: false
+   ┌───scanning: (helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   |__expanding: (helo=$sender_helo_name)
+   ├──expanding: (helo=$sender_helo_name)
        
-   |_____result: (helo=)
+   ├─────result: (helo=)
        
-   \___skipping: result is not used
-  |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   └───skipping: result is not used
+  ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  \_____result: from CALLER 
|__condition: def:received_protocol
|_____result: true
-  /considering: with $received_protocol}} (Exim $version_number)
+  └─────result: from CALLER 
├──condition: def:received_protocol
├─────result: true
+  considering: with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: with $received_protocol
-  \_____result: with local
|__condition: def:tls_cipher
|_____result: false
-  /   scanning: ($tls_cipher)
+  ├──expanding: with $received_protocol
+  └─────result: with local
├──condition: def:tls_cipher
├─────result: false
+  ┌───scanning: ($tls_cipher)
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: ($tls_cipher)
+  ├──expanding: ($tls_cipher)
        
-  |_____result: ()
+  ├─────result: ()
        
-  \___skipping: result is not used
|__condition: def:sender_address
|_____result: true
-  /considering: (envelope-from <$sender_address>)
+  └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
+  considering: (envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: (envelope-from <$sender_address>)
+  ├──expanding: (envelope-from <$sender_address>)
        
-  \_____result: (envelope-from <CALLER@test.ex>)
+  └─────result: (envelope-from <CALLER@test.ex>)
        
|__condition: def:received_for
|_____result: false
-  /   scanning: 
├──condition: def:received_for
├─────result: false
+  ┌───scanning: 
        for $received_for}}
-  |__expanding: 
+  ├──expanding: 
        for $received_for
-  |_____result: 
+  ├─────result: 
        for 
-  \___skipping: result is not used
|__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+  └───skipping: result is not used
├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
\_____result: Received: from CALLER by mail.test.ex with local (Exim x.yz)
└─────result: Received: from CALLER by mail.test.ex with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
        id 10HmaX-0005vi-00
 >>Generated Received: header line
@@ -152,9 +152,9 @@ P Received: from CALLER by mail.test.ex with local (Exim x.yz)
        id 10HmaX-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
 calling local_scan(); timeout=300
 local_scan() returned 0 NULL
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
 Writing spool header file: TESTSUITE/spool//input//hdr.pppp
 DSN: Write SPOOL :-dsn_envid NULL
 DSN: Write SPOOL :-dsn_ret 0
@@ -283,9 +283,9 @@ local_part=rd+usery domain=test.ex
 stripped prefix rd+
 checking local_parts
 usery in "usery"? yes (matched "usery")
/considering: /non-exist/$domain
|__expanding: /non-exist/$domain
\_____result: /non-exist/test.ex
considering: /non-exist/$domain
├──expanding: /non-exist/$domain
└─────result: /non-exist/test.ex
 calling r5 router
 rda_interpret (string): TESTSUITE/test-mail/junk
 expanded: TESTSUITE/test-mail/junk
@@ -322,9 +322,9 @@ local_part=rd+CALLER domain=test.ex
 stripped prefix rd+
 checking local_parts
 CALLER in "CALLER"? yes (matched "CALLER")
/considering: /non-exist/$local_part
|__expanding: /non-exist/$local_part
\_____result: /non-exist/CALLER
considering: /non-exist/$local_part
├──expanding: /non-exist/$local_part
└─────result: /non-exist/CALLER
 calling r4 router
 rda_interpret (string): TESTSUITE/test-mail/junk
 expanded: TESTSUITE/test-mail/junk
@@ -355,9 +355,9 @@ r2 router skipped: local_parts mismatch
 local_part=userz domain=test.ex
 checking local_parts
 userz in "userz"? yes (matched "userz")
/considering: /non-exist/$domain
|__expanding: /non-exist/$domain
\_____result: /non-exist/test.ex
considering: /non-exist/$domain
├──expanding: /non-exist/$domain
└─────result: /non-exist/test.ex
 calling r3 router
 r3 router called for userz@test.ex
   domain = test.ex
@@ -380,9 +380,9 @@ r1 router skipped: local_parts mismatch
 local_part=usery domain=test.ex
 checking local_parts
 usery in "usery"? yes (matched "usery")
/considering: /non-exist/$domain
|__expanding: /non-exist/$domain
\_____result: /non-exist/test.ex
considering: /non-exist/$domain
├──expanding: /non-exist/$domain
└─────result: /non-exist/test.ex
 calling r2 router
 r2 router called for usery@test.ex
   domain = test.ex
@@ -400,9 +400,9 @@ routing CALLER@test.ex
 local_part=CALLER domain=test.ex
 checking local_parts
 CALLER in "CALLER"? yes (matched "CALLER")
/considering: /non-exist/$local_part
|__expanding: /non-exist/$local_part
\_____result: /non-exist/CALLER
considering: /non-exist/$local_part
├──expanding: /non-exist/$local_part
└─────result: /non-exist/CALLER
 calling r1 router
 r1 router called for CALLER@test.ex
   domain = test.ex
@@ -446,18 +446,18 @@ locked  TESTSUITE/spool/db/retry.lockfile
 EXIM_DBOPEN(TESTSUITE/spool/db/retry)
 returned from EXIM_DBOPEN
 no retry data available
/considering: /non-exist/$local_part
|__expanding: /non-exist/$local_part
\_____result: /non-exist/usery
considering: /non-exist/$local_part
├──expanding: /non-exist/$local_part
└─────result: /non-exist/usery
 search_tidyup called
 changed uid/gid: local delivery to TESTSUITE/test-mail/junk <TESTSUITE/test-mail/junk> transport=ft1
   uid=CALLER_UID gid=CALLER_GID pid=pppp
   home=/non-exist/usery current=/
 set_process_info: pppp delivering 10HmaX-0005vi-00 to TESTSUITE/test-mail/junk using ft1
 appendfile transport entered
/considering: $address_file
|__expanding: $address_file
\_____result: TESTSUITE/test-mail/junk
considering: $address_file
├──expanding: $address_file
└─────result: TESTSUITE/test-mail/junk
 appendfile: mode=600 notify_comsat=0 quota=0 warning=0
   file=TESTSUITE/test-mail/junk format=unix
   message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
@@ -469,22 +469,22 @@ hitch name: TESTSUITE/test-mail/junk.lock.test.ex.dddddddd.pppppppp
 lock file created
 mailbox TESTSUITE/test-mail/junk is locked
 writing to file TESTSUITE/test-mail/junk
/considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
 
|__condition: def:return_path
|_____result: true
-  /considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
├──condition: def:return_path
├─────result: true
+  considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
 
-  |__expanding: $return_path
-  \_____result: CALLER@test.ex
-  /   scanning: MAILER-DAEMON}} ${tod_bsdinbox}
+  ├──expanding: $return_path
+  └─────result: CALLER@test.ex
+  ┌───scanning: MAILER-DAEMON}} ${tod_bsdinbox}
 
-  |__expanding: MAILER-DAEMON
-  |_____result: MAILER-DAEMON
-  \___skipping: result is not used
|__expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+  ├──expanding: MAILER-DAEMON
+  ├─────result: MAILER-DAEMON
+  └───skipping: result is not used
├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
 
\_____result: From CALLER@test.ex Tue Mar 02 09:44:33 1999
└─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999
 
 writing data block fd=dddd size=sss timeout=0
 writing data block fd=dddd size=sss timeout=0
@@ -510,9 +510,9 @@ changed uid/gid: local delivery to TESTSUITE/test-mail/junk <TESTSUITE/test-mail
   home=/non-exist/CALLER current=/
 set_process_info: pppp delivering 10HmaX-0005vi-00 to TESTSUITE/test-mail/junk using ft1
 appendfile transport entered
/considering: $address_file
|__expanding: $address_file
\_____result: TESTSUITE/test-mail/junk
considering: $address_file
├──expanding: $address_file
└─────result: TESTSUITE/test-mail/junk
 appendfile: mode=600 notify_comsat=0 quota=0 warning=0
   file=TESTSUITE/test-mail/junk format=unix
   message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
@@ -524,22 +524,22 @@ hitch name: TESTSUITE/test-mail/junk.lock.test.ex.dddddddd.pppppppp
 lock file created
 mailbox TESTSUITE/test-mail/junk is locked
 writing to file TESTSUITE/test-mail/junk
/considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
 
|__condition: def:return_path
|_____result: true
-  /considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
├──condition: def:return_path
├─────result: true
+  considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
 
-  |__expanding: $return_path
-  \_____result: CALLER@test.ex
-  /   scanning: MAILER-DAEMON}} ${tod_bsdinbox}
+  ├──expanding: $return_path
+  └─────result: CALLER@test.ex
+  ┌───scanning: MAILER-DAEMON}} ${tod_bsdinbox}
 
-  |__expanding: MAILER-DAEMON
-  |_____result: MAILER-DAEMON
-  \___skipping: result is not used
|__expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+  ├──expanding: MAILER-DAEMON
+  ├─────result: MAILER-DAEMON
+  └───skipping: result is not used
├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
 
\_____result: From CALLER@test.ex Tue Mar 02 09:44:33 1999
└─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999
 
 writing data block fd=dddd size=sss timeout=0
 writing data block fd=dddd size=sss timeout=0
@@ -584,9 +584,9 @@ locked  TESTSUITE/spool/db/retry.lockfile
 EXIM_DBOPEN(TESTSUITE/spool/db/retry)
 returned from EXIM_DBOPEN
 no retry data available
/considering: /non-exist/$local_part
|__expanding: /non-exist/$local_part
\_____result: /non-exist/usery
considering: /non-exist/$local_part
├──expanding: /non-exist/$local_part
└─────result: /non-exist/usery
 search_tidyup called
 changed uid/gid: local delivery to usery <usery@test.ex> transport=t1
   uid=CALLER_UID gid=CALLER_GID pid=pppp
@@ -612,9 +612,9 @@ locked  TESTSUITE/spool/db/retry.lockfile
 EXIM_DBOPEN(TESTSUITE/spool/db/retry)
 returned from EXIM_DBOPEN
 no retry data available
/considering: /$local_part
|__expanding: /$local_part
\_____result: /userz
considering: /$local_part
├──expanding: /$local_part
└─────result: /userz
 search_tidyup called
 changed uid/gid: local delivery to userz <userz@test.ex> transport=t2
   uid=CALLER_UID gid=CALLER_GID pid=pppp
index 00ffeb8..44582a1 100644 (file)
 Exim version x.yz ....
 configuration file is TESTSUITE/test-config
 admin user
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
/considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
|__condition: def:sender_rcvhost
|_____result: false
-  /   scanning: from $sender_rcvhost
├──condition: def:sender_rcvhost
├─────result: false
+  ┌───scanning: from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: from $sender_rcvhost
+  ├──expanding: from $sender_rcvhost
        
-  |_____result: from 
+  ├─────result: from 
        
-  \___skipping: result is not used
-  /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  └───skipping: result is not used
+  considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__condition: def:sender_ident
-  |_____result: true
-   /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──condition: def:sender_ident
+  ├─────result: true
+   considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ./considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   .considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   .|__expanding: $sender_ident
-   .\_____result: CALLER
-   |__expanding: from ${quote_local_part:$sender_ident} 
-   \_____result: from CALLER 
-  |__condition: def:sender_helo_name
-  |_____result: false
-   /   scanning: (helo=$sender_helo_name)
+   .├──expanding: $sender_ident
+   .└─────result: CALLER
+   ├──expanding: from ${quote_local_part:$sender_ident} 
+   └─────result: from CALLER 
+  ├──condition: def:sender_helo_name
+  ├─────result: false
+   ┌───scanning: (helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   |__expanding: (helo=$sender_helo_name)
+   ├──expanding: (helo=$sender_helo_name)
        
-   |_____result: (helo=)
+   ├─────result: (helo=)
        
-   \___skipping: result is not used
-  |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   └───skipping: result is not used
+  ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  \_____result: from CALLER 
|__condition: def:received_protocol
|_____result: true
-  /considering: with $received_protocol}} (Exim $version_number)
+  └─────result: from CALLER 
├──condition: def:received_protocol
├─────result: true
+  considering: with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: with $received_protocol
-  \_____result: with local
|__condition: def:tls_cipher
|_____result: false
-  /   scanning: ($tls_cipher)
+  ├──expanding: with $received_protocol
+  └─────result: with local
├──condition: def:tls_cipher
├─────result: false
+  ┌───scanning: ($tls_cipher)
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: ($tls_cipher)
+  ├──expanding: ($tls_cipher)
        
-  |_____result: ()
+  ├─────result: ()
        
-  \___skipping: result is not used
|__condition: def:sender_address
|_____result: true
-  /considering: (envelope-from <$sender_address>)
+  └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
+  considering: (envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: (envelope-from <$sender_address>)
+  ├──expanding: (envelope-from <$sender_address>)
        
-  \_____result: (envelope-from <CALLER@test.ex>)
+  └─────result: (envelope-from <CALLER@test.ex>)
        
|__condition: def:received_for
|_____result: false
-  /   scanning: 
├──condition: def:received_for
├─────result: false
+  ┌───scanning: 
        for $received_for}}
-  |__expanding: 
+  ├──expanding: 
        for $received_for
-  |_____result: 
+  ├─────result: 
        for 
-  \___skipping: result is not used
|__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+  └───skipping: result is not used
├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
\_____result: Received: from CALLER by the.local.host.name with local (Exim x.yz)
└─────result: Received: from CALLER by the.local.host.name with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
        id 10HmaX-0005vi-00
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
@@ -116,43 +116,43 @@ Exim version x.yz ....
 configuration file is TESTSUITE/test-config
 trusted user
 admin user
/considering: $domain
|__expanding: $domain
\_____result: domain1.ex
considering: $domain
├──expanding: $domain
└─────result: domain1.ex
 LOG: MAIN
   == userx@domain1.ex R=smarthost T=smtp defer (-1): domain matches queue_smtp_domains, or -odqs set
 LOG: MAIN
   == userx@domain2.ex R=smarthost T=smtp defer (-1): domain matches queue_smtp_domains, or -odqs set
/considering: ${if or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
-  /considering: $h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
-  |__expanding: $h_list-id:$h_list-post:$h_list-subscribe:
-  \_____result: 
-  /considering: } }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
-  |__expanding: 
-  \_____result: 
-  /considering: $h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
-  |__expanding: $h_precedence:
-  \_____result: 
-  /considering: (?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
-  |__expanding: (?i)bulk|list|junk
-  \_____result: (?i)bulk|list|junk
-  /considering: $h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
-  |__expanding: $h_auto-submitted:
-  \_____result: 
-  /considering: (?i)auto-generated|auto-replied} }} {no}{yes}}
-  |__expanding: (?i)auto-generated|auto-replied
-  \_____result: (?i)auto-generated|auto-replied
|__condition: or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }}
|_____result: false
-  /   scanning: no}{yes}}
-  |__expanding: no
-  |_____result: no
-  \___skipping: result is not used
-  /considering: yes}}
-  |__expanding: yes
-  \_____result: yes
|__expanding: ${if or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
\_____result: yes
considering: ${if or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
+  considering: $h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
+  ├──expanding: $h_list-id:$h_list-post:$h_list-subscribe:
+  └─────result: 
+  considering: } }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
+  ├──expanding: 
+  └─────result: 
+  considering: $h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
+  ├──expanding: $h_precedence:
+  └─────result: 
+  considering: (?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
+  ├──expanding: (?i)bulk|list|junk
+  └─────result: (?i)bulk|list|junk
+  considering: $h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
+  ├──expanding: $h_auto-submitted:
+  └─────result: 
+  considering: (?i)auto-generated|auto-replied} }} {no}{yes}}
+  ├──expanding: (?i)auto-generated|auto-replied
+  └─────result: (?i)auto-generated|auto-replied
├──condition: or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }}
├─────result: false
+  ┌───scanning: no}{yes}}
+  ├──expanding: no
+  ├─────result: no
+  └───skipping: result is not used
+  considering: yes}}
+  ├──expanding: yes
+  └─────result: yes
├──expanding: ${if or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}}
└─────result: yes
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
@@ -160,32 +160,32 @@ configuration file is TESTSUITE/test-config
 admin user
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
/considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
|__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
\_____result: the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
/considering: ${if match_domain {$sender_helo_name}{+dlist}}
-  /considering: $sender_helo_name}{+dlist}}
-  |__expanding: $sender_helo_name
-  \_____result: ehlo.domain
-  /considering: +dlist}}
-  |__expanding: +dlist
-  \_____result: +dlist
-  /considering: $domain
-  |__expanding: $domain
-  \_____result: ehlo.domain
|__condition: match_domain {$sender_helo_name}{+dlist}
|_____result: true
|__expanding: ${if match_domain {$sender_helo_name}{+dlist}}
\_____result: true
/considering: domain=$domain/sender_domain=$sender_address_domain
|__expanding: domain=$domain/sender_domain=$sender_address_domain
\_____result: domain=/sender_domain=sender.domain
/considering: domain=$domain/sender_domain=$sender_address_domain
|__expanding: domain=$domain/sender_domain=$sender_address_domain
\_____result: domain=recipient.domain/sender_domain=sender.domain
/considering: domain=$domain/sender_domain=$sender_address_domain
|__expanding: domain=$domain/sender_domain=$sender_address_domain
\_____result: domain=recipient.domain/sender_domain=sender.domain
considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
└─────result: the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
considering: ${if match_domain {$sender_helo_name}{+dlist}}
+  considering: $sender_helo_name}{+dlist}}
+  ├──expanding: $sender_helo_name
+  └─────result: ehlo.domain
+  considering: +dlist}}
+  ├──expanding: +dlist
+  └─────result: +dlist
+  considering: $domain
+  ├──expanding: $domain
+  └─────result: ehlo.domain
├──condition: match_domain {$sender_helo_name}{+dlist}
├─────result: true
├──expanding: ${if match_domain {$sender_helo_name}{+dlist}}
└─────result: true
considering: domain=$domain/sender_domain=$sender_address_domain
├──expanding: domain=$domain/sender_domain=$sender_address_domain
└─────result: domain=/sender_domain=sender.domain
considering: domain=$domain/sender_domain=$sender_address_domain
├──expanding: domain=$domain/sender_domain=$sender_address_domain
└─────result: domain=recipient.domain/sender_domain=sender.domain
considering: domain=$domain/sender_domain=$sender_address_domain
├──expanding: domain=$domain/sender_domain=$sender_address_domain
└─────result: domain=recipient.domain/sender_domain=sender.domain
 LOG: smtp_connection MAIN
   SMTP connection from CALLER closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
index b77ca89..cff64ae 100644 (file)
@@ -2,45 +2,45 @@
 Exim version x.yz ....
 configuration file is TESTSUITE/test-config
 admin user
/considering: ${perl{foo}{arg1}}
-  /considering: foo}{arg1}}
-  |__expanding: foo
-  \_____result: foo
-  /considering: arg1}}
-  |__expanding: arg1
-  \_____result: arg1
considering: ${perl{foo}{arg1}}
+  considering: foo}{arg1}}
+  ├──expanding: foo
+  └─────result: foo
+  considering: arg1}}
+  ├──expanding: arg1
+  └─────result: arg1
 Starting Perl interpreter
|__expanding: ${perl{foo}{arg1}}
\_____result: Subroutine foo called with args: arg1
/considering: ${perl{foo_undef}}
-  /considering: foo_undef}}
-  |__expanding: foo_undef
-  \_____result: foo_undef
|failed to expand: ${perl{foo_undef}}
|___error message: Perl subroutine "foo_undef" returned undef to force failure
\failure was forced
/considering: ${perl{debug_write}{debug from Perl\n}}
-  /considering: debug_write}{debug from Perl\n}}
-  |__expanding: debug_write
-  \_____result: debug_write
-  /considering: debug from Perl\n}}
-  |__expanding: debug from Perl\n
-  \_____result: debug from Perl
├──expanding: ${perl{foo}{arg1}}
└─────result: Subroutine foo called with args: arg1
considering: ${perl{foo_undef}}
+  considering: foo_undef}}
+  ├──expanding: foo_undef
+  └─────result: foo_undef
failed to expand: ${perl{foo_undef}}
├───error message: Perl subroutine "foo_undef" returned undef to force failure
failure was forced
considering: ${perl{debug_write}{debug from Perl\n}}
+  considering: debug_write}{debug from Perl\n}}
+  ├──expanding: debug_write
+  └─────result: debug_write
+  considering: debug from Perl\n}}
+  ├──expanding: debug from Perl\n
+  └─────result: debug from Perl
 
 debug from Perl
|__expanding: ${perl{debug_write}{debug from Perl\n}}
\_____result: Wrote debug
/considering: ${perl{log_write}{log from Perl}}
-  /considering: log_write}{log from Perl}}
-  |__expanding: log_write
-  \_____result: log_write
-  /considering: log from Perl}}
-  |__expanding: log from Perl
-  \_____result: log from Perl
├──expanding: ${perl{debug_write}{debug from Perl\n}}
└─────result: Wrote debug
considering: ${perl{log_write}{log from Perl}}
+  considering: log_write}{log from Perl}}
+  ├──expanding: log_write
+  └─────result: log_write
+  considering: log from Perl}}
+  ├──expanding: log from Perl
+  └─────result: log from Perl
 LOG: MAIN
   log from Perl
|__expanding: ${perl{log_write}{log from Perl}}
\_____result: Wrote log
├──expanding: ${perl{log_write}{log from Perl}}
└─────result: Wrote log
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
index 6c1f10e..29b3872 100644 (file)
@@ -4,40 +4,40 @@ admin user
  in hosts_connection_nolog? no (option unset)
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
/considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
|__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
\_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
└─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  in dsn_advertise_hosts? no (option unset)
  in pipelining_advertise_hosts? yes (matched "*")
  in chunking_advertise_hosts? no (end of list)
  in tls_advertise_hosts? yes (matched "*")
/considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
-  /considering: SERVER}{server}{queue}{cutthrough}}
-  |__expanding: SERVER
-  \_____result: SERVER
-  /considering: server}{queue}{cutthrough}}
-  |__expanding: server
-  \_____result: server
|__condition: eq {SERVER}{server}
|_____result: false
-  /   scanning: queue}{cutthrough}}
-  |__expanding: queue
-  |_____result: queue
-  \___skipping: result is not used
-  /considering: cutthrough}}
-  |__expanding: cutthrough
-  \_____result: cutthrough
|__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
\_____result: cutthrough
considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+  considering: SERVER}{server}{queue}{cutthrough}}
+  ├──expanding: SERVER
+  └─────result: SERVER
+  considering: server}{queue}{cutthrough}}
+  ├──expanding: server
+  └─────result: server
├──condition: eq {SERVER}{server}
├─────result: false
+  ┌───scanning: queue}{cutthrough}}
+  ├──expanding: queue
+  ├─────result: queue
+  └───skipping: result is not used
+  considering: cutthrough}}
+  ├──expanding: cutthrough
+  └─────result: cutthrough
├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
└─────result: cutthrough
 using ACL "cutthrough"
 processing "accept"
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: userx
considering: $local_part
├──expanding: $local_part
└─────result: userx
 domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
@@ -45,14 +45,14 @@ end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: userx
considering: $local_part
├──expanding: $local_part
└─────result: userx
 domain.com in "*"? yes (matched "*")
 Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
/considering: $primary_hostname
|__expanding: $primary_hostname
\_____result: myhost.test.ex
considering: $primary_hostname
├──expanding: $primary_hostname
└─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
   SMTP>> EHLO myhost.test.ex
@@ -63,43 +63,43 @@ cmd buf flush ddd bytes
          250-PIPELINING
          250-STARTTLS
          250 HELP
/considering: ${if eq {$address_data}{usery}{*}{:}}
-  /considering: $address_data}{usery}{*}{:}}
-  |__expanding: $address_data
-  \_____result: userx
-  /considering: usery}{*}{:}}
-  |__expanding: usery
-  \_____result: usery
|__condition: eq {$address_data}{usery}
|_____result: false
-  /   scanning: *}{:}}
-  |__expanding: *
-  |_____result: *
-  \___skipping: result is not used
-  /considering: :}}
-  |__expanding: :
-  \_____result: :
|__expanding: ${if eq {$address_data}{usery}{*}{:}}
\_____result: :
considering: ${if eq {$address_data}{usery}{*}{:}}
+  considering: $address_data}{usery}{*}{:}}
+  ├──expanding: $address_data
+  └─────result: userx
+  considering: usery}{*}{:}}
+  ├──expanding: usery
+  └─────result: usery
├──condition: eq {$address_data}{usery}
├─────result: false
+  ┌───scanning: *}{:}}
+  ├──expanding: *
+  ├─────result: *
+  └───skipping: result is not used
+  considering: :}}
+  ├──expanding: :
+  └─────result: :
├──expanding: ${if eq {$address_data}{usery}{*}{:}}
└─────result: :
 127.0.0.1 in hosts_avoid_tls? no (end of list)
/considering: ${if eq {$address_data}{userz}{*}{:}}
-  /considering: $address_data}{userz}{*}{:}}
-  |__expanding: $address_data
-  \_____result: userx
-  /considering: userz}{*}{:}}
-  |__expanding: userz
-  \_____result: userz
|__condition: eq {$address_data}{userz}
|_____result: false
-  /   scanning: *}{:}}
-  |__expanding: *
-  |_____result: *
-  \___skipping: result is not used
-  /considering: :}}
-  |__expanding: :
-  \_____result: :
|__expanding: ${if eq {$address_data}{userz}{*}{:}}
\_____result: :
considering: ${if eq {$address_data}{userz}{*}{:}}
+  considering: $address_data}{userz}{*}{:}}
+  ├──expanding: $address_data
+  └─────result: userx
+  considering: userz}{*}{:}}
+  ├──expanding: userz
+  └─────result: userz
├──condition: eq {$address_data}{userz}
├─────result: false
+  ┌───scanning: *}{:}}
+  ├──expanding: *
+  ├─────result: *
+  └───skipping: result is not used
+  considering: :}}
+  ├──expanding: :
+  └─────result: :
├──expanding: ${if eq {$address_data}{userz}{*}{:}}
└─────result: :
 127.0.0.1 in hosts_verify_avoid_tls? no (end of list)
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
@@ -131,117 +131,117 @@ accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
   SMTP<< 354 Enter message, ending with "." on a line by itself
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
/considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
|__condition: def:sender_rcvhost
|_____result: false
-  /   scanning: from $sender_rcvhost
├──condition: def:sender_rcvhost
├─────result: false
+  ┌───scanning: from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: from $sender_rcvhost
+  ├──expanding: from $sender_rcvhost
        
-  |_____result: from 
+  ├─────result: from 
        
-  \___skipping: result is not used
-  /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  └───skipping: result is not used
+  considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__condition: def:sender_ident
-  |_____result: true
-   /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──condition: def:sender_ident
+  ├─────result: true
+   considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ./considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   .considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   .|__expanding: $sender_ident
-   .\_____result: CALLER
-   |__expanding: from ${quote_local_part:$sender_ident} 
-   \_____result: from CALLER 
-  |__condition: def:sender_helo_name
-  |_____result: true
-   /considering: (helo=$sender_helo_name)
+   .├──expanding: $sender_ident
+   .└─────result: CALLER
+   ├──expanding: from ${quote_local_part:$sender_ident} 
+   └─────result: from CALLER 
+  ├──condition: def:sender_helo_name
+  ├─────result: true
+   considering: (helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   |__expanding: (helo=$sender_helo_name)
+   ├──expanding: (helo=$sender_helo_name)
        
-   \_____result: (helo=myhost.test.ex)
+   └─────result: (helo=myhost.test.ex)
        
-  |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  \_____result: from CALLER (helo=myhost.test.ex)
+  └─────result: from CALLER (helo=myhost.test.ex)
        
|__condition: def:received_protocol
|_____result: true
-  /considering: with $received_protocol}} (Exim $version_number)
├──condition: def:received_protocol
├─────result: true
+  considering: with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: with $received_protocol
-  \_____result: with local-esmtp
|__condition: def:tls_cipher
|_____result: false
-  /   scanning: ($tls_cipher)
+  ├──expanding: with $received_protocol
+  └─────result: with local-esmtp
├──condition: def:tls_cipher
├─────result: false
+  ┌───scanning: ($tls_cipher)
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: ($tls_cipher)
+  ├──expanding: ($tls_cipher)
        
-  |_____result: ()
+  ├─────result: ()
        
-  \___skipping: result is not used
|__condition: def:sender_address
|_____result: true
-  /considering: (envelope-from <$sender_address>)
+  └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
+  considering: (envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: (envelope-from <$sender_address>)
+  ├──expanding: (envelope-from <$sender_address>)
        
-  \_____result: (envelope-from <CALLER@myhost.test.ex>)
+  └─────result: (envelope-from <CALLER@myhost.test.ex>)
        
|__condition: def:received_for
|_____result: true
-  /considering: 
├──condition: def:received_for
├─────result: true
+  considering: 
        for $received_for}}
-  |__expanding: 
+  ├──expanding: 
        for $received_for
-  \_____result: 
+  └─────result: 
        for userx@domain.com
|__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
\_____result: Received: from CALLER (helo=myhost.test.ex)
└─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
        id 10HmaX-0005vi-00
        for userx@domain.com
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
   SMTP<< 250 OK id=10HmaY-0005vi-00
 LOG: MAIN
@@ -263,40 +263,40 @@ admin user
  in hosts_connection_nolog? no (option unset)
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
/considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
|__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
\_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
└─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  in dsn_advertise_hosts? no (option unset)
  in pipelining_advertise_hosts? yes (matched "*")
  in chunking_advertise_hosts? no (end of list)
  in tls_advertise_hosts? yes (matched "*")
/considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
-  /considering: SERVER}{server}{queue}{cutthrough}}
-  |__expanding: SERVER
-  \_____result: SERVER
-  /considering: server}{queue}{cutthrough}}
-  |__expanding: server
-  \_____result: server
|__condition: eq {SERVER}{server}
|_____result: false
-  /   scanning: queue}{cutthrough}}
-  |__expanding: queue
-  |_____result: queue
-  \___skipping: result is not used
-  /considering: cutthrough}}
-  |__expanding: cutthrough
-  \_____result: cutthrough
|__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
\_____result: cutthrough
considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+  considering: SERVER}{server}{queue}{cutthrough}}
+  ├──expanding: SERVER
+  └─────result: SERVER
+  considering: server}{queue}{cutthrough}}
+  ├──expanding: server
+  └─────result: server
├──condition: eq {SERVER}{server}
├─────result: false
+  ┌───scanning: queue}{cutthrough}}
+  ├──expanding: queue
+  ├─────result: queue
+  └───skipping: result is not used
+  considering: cutthrough}}
+  ├──expanding: cutthrough
+  └─────result: cutthrough
├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
└─────result: cutthrough
 using ACL "cutthrough"
 processing "accept"
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: usery
considering: $local_part
├──expanding: $local_part
└─────result: usery
 domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
@@ -304,14 +304,14 @@ end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: usery
considering: $local_part
├──expanding: $local_part
└─────result: usery
 domain.com in "*"? yes (matched "*")
 Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
/considering: $primary_hostname
|__expanding: $primary_hostname
\_____result: myhost.test.ex
considering: $primary_hostname
├──expanding: $primary_hostname
└─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
   SMTP>> EHLO myhost.test.ex
@@ -322,24 +322,24 @@ cmd buf flush ddd bytes
          250-PIPELINING
          250-STARTTLS
          250 HELP
/considering: ${if eq {$address_data}{usery}{*}{:}}
-  /considering: $address_data}{usery}{*}{:}}
-  |__expanding: $address_data
-  \_____result: usery
-  /considering: usery}{*}{:}}
-  |__expanding: usery
-  \_____result: usery
|__condition: eq {$address_data}{usery}
|_____result: true
-  /considering: *}{:}}
-  |__expanding: *
-  \_____result: *
-  /   scanning: :}}
-  |__expanding: :
-  |_____result: :
-  \___skipping: result is not used
|__expanding: ${if eq {$address_data}{usery}{*}{:}}
\_____result: *
considering: ${if eq {$address_data}{usery}{*}{:}}
+  considering: $address_data}{usery}{*}{:}}
+  ├──expanding: $address_data
+  └─────result: usery
+  considering: usery}{*}{:}}
+  ├──expanding: usery
+  └─────result: usery
├──condition: eq {$address_data}{usery}
├─────result: true
+  considering: *}{:}}
+  ├──expanding: *
+  └─────result: *
+  ┌───scanning: :}}
+  ├──expanding: :
+  ├─────result: :
+  └───skipping: result is not used
├──expanding: ${if eq {$address_data}{usery}{*}{:}}
└─────result: *
 127.0.0.1 in hosts_avoid_tls? yes (matched "*")
 127.0.0.1 in hosts_avoid_pipelining? no (option unset)
 using PIPELINING
@@ -357,117 +357,117 @@ accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
   SMTP<< 354 Enter message, ending with "." on a line by itself
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
/considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
|__condition: def:sender_rcvhost
|_____result: false
-  /   scanning: from $sender_rcvhost
├──condition: def:sender_rcvhost
├─────result: false
+  ┌───scanning: from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: from $sender_rcvhost
+  ├──expanding: from $sender_rcvhost
        
-  |_____result: from 
+  ├─────result: from 
        
-  \___skipping: result is not used
-  /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  └───skipping: result is not used
+  considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__condition: def:sender_ident
-  |_____result: true
-   /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──condition: def:sender_ident
+  ├─────result: true
+   considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ./considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   .considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   .|__expanding: $sender_ident
-   .\_____result: CALLER
-   |__expanding: from ${quote_local_part:$sender_ident} 
-   \_____result: from CALLER 
-  |__condition: def:sender_helo_name
-  |_____result: true
-   /considering: (helo=$sender_helo_name)
+   .├──expanding: $sender_ident
+   .└─────result: CALLER
+   ├──expanding: from ${quote_local_part:$sender_ident} 
+   └─────result: from CALLER 
+  ├──condition: def:sender_helo_name
+  ├─────result: true
+   considering: (helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   |__expanding: (helo=$sender_helo_name)
+   ├──expanding: (helo=$sender_helo_name)
        
-   \_____result: (helo=myhost.test.ex)
+   └─────result: (helo=myhost.test.ex)
        
-  |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  \_____result: from CALLER (helo=myhost.test.ex)
+  └─────result: from CALLER (helo=myhost.test.ex)
        
|__condition: def:received_protocol
|_____result: true
-  /considering: with $received_protocol}} (Exim $version_number)
├──condition: def:received_protocol
├─────result: true
+  considering: with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: with $received_protocol
-  \_____result: with local-esmtp
|__condition: def:tls_cipher
|_____result: false
-  /   scanning: ($tls_cipher)
+  ├──expanding: with $received_protocol
+  └─────result: with local-esmtp
├──condition: def:tls_cipher
├─────result: false
+  ┌───scanning: ($tls_cipher)
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: ($tls_cipher)
+  ├──expanding: ($tls_cipher)
        
-  |_____result: ()
+  ├─────result: ()
        
-  \___skipping: result is not used
|__condition: def:sender_address
|_____result: true
-  /considering: (envelope-from <$sender_address>)
+  └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
+  considering: (envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: (envelope-from <$sender_address>)
+  ├──expanding: (envelope-from <$sender_address>)
        
-  \_____result: (envelope-from <CALLER@myhost.test.ex>)
+  └─────result: (envelope-from <CALLER@myhost.test.ex>)
        
|__condition: def:received_for
|_____result: true
-  /considering: 
├──condition: def:received_for
├─────result: true
+  considering: 
        for $received_for}}
-  |__expanding: 
+  ├──expanding: 
        for $received_for
-  \_____result: 
+  └─────result: 
        for usery@domain.com
|__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
\_____result: Received: from CALLER (helo=myhost.test.ex)
└─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
        id 10HmaZ-0005vi-00
        for usery@domain.com
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
   SMTP<< 250 OK id=10HmbA-0005vi-00
 LOG: MAIN
@@ -489,40 +489,40 @@ admin user
  in hosts_connection_nolog? no (option unset)
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
/considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
|__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
\_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
└─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  in dsn_advertise_hosts? no (option unset)
  in pipelining_advertise_hosts? yes (matched "*")
  in chunking_advertise_hosts? no (end of list)
  in tls_advertise_hosts? yes (matched "*")
/considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
-  /considering: SERVER}{server}{queue}{cutthrough}}
-  |__expanding: SERVER
-  \_____result: SERVER
-  /considering: server}{queue}{cutthrough}}
-  |__expanding: server
-  \_____result: server
|__condition: eq {SERVER}{server}
|_____result: false
-  /   scanning: queue}{cutthrough}}
-  |__expanding: queue
-  |_____result: queue
-  \___skipping: result is not used
-  /considering: cutthrough}}
-  |__expanding: cutthrough
-  \_____result: cutthrough
|__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
\_____result: cutthrough
considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+  considering: SERVER}{server}{queue}{cutthrough}}
+  ├──expanding: SERVER
+  └─────result: SERVER
+  considering: server}{queue}{cutthrough}}
+  ├──expanding: server
+  └─────result: server
├──condition: eq {SERVER}{server}
├─────result: false
+  ┌───scanning: queue}{cutthrough}}
+  ├──expanding: queue
+  ├─────result: queue
+  └───skipping: result is not used
+  considering: cutthrough}}
+  ├──expanding: cutthrough
+  └─────result: cutthrough
├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
└─────result: cutthrough
 using ACL "cutthrough"
 processing "accept"
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: usery
considering: $local_part
├──expanding: $local_part
└─────result: usery
 domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
@@ -530,14 +530,14 @@ end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: usery
considering: $local_part
├──expanding: $local_part
└─────result: usery
 domain.com in "*"? yes (matched "*")
 Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
/considering: $primary_hostname
|__expanding: $primary_hostname
\_____result: myhost.test.ex
considering: $primary_hostname
├──expanding: $primary_hostname
└─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
   SMTP>> EHLO myhost.test.ex
@@ -548,24 +548,24 @@ cmd buf flush ddd bytes
          250-PIPELINING
          250-STARTTLS
          250 HELP
/considering: ${if eq {$address_data}{usery}{*}{:}}
-  /considering: $address_data}{usery}{*}{:}}
-  |__expanding: $address_data
-  \_____result: usery
-  /considering: usery}{*}{:}}
-  |__expanding: usery
-  \_____result: usery
|__condition: eq {$address_data}{usery}
|_____result: true
-  /considering: *}{:}}
-  |__expanding: *
-  \_____result: *
-  /   scanning: :}}
-  |__expanding: :
-  |_____result: :
-  \___skipping: result is not used
|__expanding: ${if eq {$address_data}{usery}{*}{:}}
\_____result: *
considering: ${if eq {$address_data}{usery}{*}{:}}
+  considering: $address_data}{usery}{*}{:}}
+  ├──expanding: $address_data
+  └─────result: usery
+  considering: usery}{*}{:}}
+  ├──expanding: usery
+  └─────result: usery
├──condition: eq {$address_data}{usery}
├─────result: true
+  considering: *}{:}}
+  ├──expanding: *
+  └─────result: *
+  ┌───scanning: :}}
+  ├──expanding: :
+  ├─────result: :
+  └───skipping: result is not used
├──expanding: ${if eq {$address_data}{usery}{*}{:}}
└─────result: *
 127.0.0.1 in hosts_avoid_tls? yes (matched "*")
 127.0.0.1 in hosts_avoid_pipelining? no (option unset)
 using PIPELINING
@@ -583,117 +583,117 @@ accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
   SMTP<< 354 Enter message, ending with "." on a line by itself
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
/considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
|__condition: def:sender_rcvhost
|_____result: false
-  /   scanning: from $sender_rcvhost
├──condition: def:sender_rcvhost
├─────result: false
+  ┌───scanning: from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: from $sender_rcvhost
+  ├──expanding: from $sender_rcvhost
        
-  |_____result: from 
+  ├─────result: from 
        
-  \___skipping: result is not used
-  /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  └───skipping: result is not used
+  considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__condition: def:sender_ident
-  |_____result: true
-   /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──condition: def:sender_ident
+  ├─────result: true
+   considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ./considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   .considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   .|__expanding: $sender_ident
-   .\_____result: CALLER
-   |__expanding: from ${quote_local_part:$sender_ident} 
-   \_____result: from CALLER 
-  |__condition: def:sender_helo_name
-  |_____result: true
-   /considering: (helo=$sender_helo_name)
+   .├──expanding: $sender_ident
+   .└─────result: CALLER
+   ├──expanding: from ${quote_local_part:$sender_ident} 
+   └─────result: from CALLER 
+  ├──condition: def:sender_helo_name
+  ├─────result: true
+   considering: (helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   |__expanding: (helo=$sender_helo_name)
+   ├──expanding: (helo=$sender_helo_name)
        
-   \_____result: (helo=myhost.test.ex)
+   └─────result: (helo=myhost.test.ex)
        
-  |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  \_____result: from CALLER (helo=myhost.test.ex)
+  └─────result: from CALLER (helo=myhost.test.ex)
        
|__condition: def:received_protocol
|_____result: true
-  /considering: with $received_protocol}} (Exim $version_number)
├──condition: def:received_protocol
├─────result: true
+  considering: with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: with $received_protocol
-  \_____result: with local-esmtp
|__condition: def:tls_cipher
|_____result: false
-  /   scanning: ($tls_cipher)
+  ├──expanding: with $received_protocol
+  └─────result: with local-esmtp
├──condition: def:tls_cipher
├─────result: false
+  ┌───scanning: ($tls_cipher)
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: ($tls_cipher)
+  ├──expanding: ($tls_cipher)
        
-  |_____result: ()
+  ├─────result: ()
        
-  \___skipping: result is not used
|__condition: def:sender_address
|_____result: true
-  /considering: (envelope-from <$sender_address>)
+  └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
+  considering: (envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: (envelope-from <$sender_address>)
+  ├──expanding: (envelope-from <$sender_address>)
        
-  \_____result: (envelope-from <CALLER@myhost.test.ex>)
+  └─────result: (envelope-from <CALLER@myhost.test.ex>)
        
|__condition: def:received_for
|_____result: true
-  /considering: 
├──condition: def:received_for
├─────result: true
+  considering: 
        for $received_for}}
-  |__expanding: 
+  ├──expanding: 
        for $received_for
-  \_____result: 
+  └─────result: 
        for usery@domain.com
|__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
\_____result: Received: from CALLER (helo=myhost.test.ex)
└─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
        id 10HmbB-0005vi-00
        for usery@domain.com
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
   SMTP<< 250 OK id=10HmbC-0005vi-00
 LOG: MAIN
index 0f197af..36ac19b 100644 (file)
@@ -4,40 +4,40 @@ admin user
  in hosts_connection_nolog? no (option unset)
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
/considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
|__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
\_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
└─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  in dsn_advertise_hosts? no (option unset)
  in pipelining_advertise_hosts? yes (matched "*")
  in chunking_advertise_hosts? no (end of list)
  in tls_advertise_hosts? yes (matched "*")
/considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
-  /considering: SERVER}{server}{queue}{cutthrough}}
-  |__expanding: SERVER
-  \_____result: SERVER
-  /considering: server}{queue}{cutthrough}}
-  |__expanding: server
-  \_____result: server
|__condition: eq {SERVER}{server}
|_____result: false
-  /   scanning: queue}{cutthrough}}
-  |__expanding: queue
-  |_____result: queue
-  \___skipping: result is not used
-  /considering: cutthrough}}
-  |__expanding: cutthrough
-  \_____result: cutthrough
|__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
\_____result: cutthrough
considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+  considering: SERVER}{server}{queue}{cutthrough}}
+  ├──expanding: SERVER
+  └─────result: SERVER
+  considering: server}{queue}{cutthrough}}
+  ├──expanding: server
+  └─────result: server
├──condition: eq {SERVER}{server}
├─────result: false
+  ┌───scanning: queue}{cutthrough}}
+  ├──expanding: queue
+  ├─────result: queue
+  └───skipping: result is not used
+  considering: cutthrough}}
+  ├──expanding: cutthrough
+  └─────result: cutthrough
├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
└─────result: cutthrough
 using ACL "cutthrough"
 processing "accept"
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: userx
considering: $local_part
├──expanding: $local_part
└─────result: userx
 domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
@@ -45,14 +45,14 @@ end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: userx
considering: $local_part
├──expanding: $local_part
└─────result: userx
 domain.com in "*"? yes (matched "*")
 Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
/considering: $primary_hostname
|__expanding: $primary_hostname
\_____result: myhost.test.ex
considering: $primary_hostname
├──expanding: $primary_hostname
└─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
   SMTP>> EHLO myhost.test.ex
@@ -63,43 +63,43 @@ cmd buf flush ddd bytes
          250-PIPELINING
          250-STARTTLS
          250 HELP
/considering: ${if eq {$address_data}{usery}{*}{:}}
-  /considering: $address_data}{usery}{*}{:}}
-  |__expanding: $address_data
-  \_____result: userx
-  /considering: usery}{*}{:}}
-  |__expanding: usery
-  \_____result: usery
|__condition: eq {$address_data}{usery}
|_____result: false
-  /   scanning: *}{:}}
-  |__expanding: *
-  |_____result: *
-  \___skipping: result is not used
-  /considering: :}}
-  |__expanding: :
-  \_____result: :
|__expanding: ${if eq {$address_data}{usery}{*}{:}}
\_____result: :
considering: ${if eq {$address_data}{usery}{*}{:}}
+  considering: $address_data}{usery}{*}{:}}
+  ├──expanding: $address_data
+  └─────result: userx
+  considering: usery}{*}{:}}
+  ├──expanding: usery
+  └─────result: usery
├──condition: eq {$address_data}{usery}
├─────result: false
+  ┌───scanning: *}{:}}
+  ├──expanding: *
+  ├─────result: *
+  └───skipping: result is not used
+  considering: :}}
+  ├──expanding: :
+  └─────result: :
├──expanding: ${if eq {$address_data}{usery}{*}{:}}
└─────result: :
 127.0.0.1 in hosts_avoid_tls? no (end of list)
/considering: ${if eq {$address_data}{userz}{*}{:}}
-  /considering: $address_data}{userz}{*}{:}}
-  |__expanding: $address_data
-  \_____result: userx
-  /considering: userz}{*}{:}}
-  |__expanding: userz
-  \_____result: userz
|__condition: eq {$address_data}{userz}
|_____result: false
-  /   scanning: *}{:}}
-  |__expanding: *
-  |_____result: *
-  \___skipping: result is not used
-  /considering: :}}
-  |__expanding: :
-  \_____result: :
|__expanding: ${if eq {$address_data}{userz}{*}{:}}
\_____result: :
considering: ${if eq {$address_data}{userz}{*}{:}}
+  considering: $address_data}{userz}{*}{:}}
+  ├──expanding: $address_data
+  └─────result: userx
+  considering: userz}{*}{:}}
+  ├──expanding: userz
+  └─────result: userz
├──condition: eq {$address_data}{userz}
├─────result: false
+  ┌───scanning: *}{:}}
+  ├──expanding: *
+  ├─────result: *
+  └───skipping: result is not used
+  considering: :}}
+  ├──expanding: :
+  └─────result: :
├──expanding: ${if eq {$address_data}{userz}{*}{:}}
└─────result: :
 127.0.0.1 in hosts_verify_avoid_tls? no (end of list)
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
@@ -130,117 +130,117 @@ accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
   SMTP<< 354 Enter message, ending with "." on a line by itself
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
/considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
|__condition: def:sender_rcvhost
|_____result: false
-  /   scanning: from $sender_rcvhost
├──condition: def:sender_rcvhost
├─────result: false
+  ┌───scanning: from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: from $sender_rcvhost
+  ├──expanding: from $sender_rcvhost
        
-  |_____result: from 
+  ├─────result: from 
        
-  \___skipping: result is not used
-  /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  └───skipping: result is not used
+  considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__condition: def:sender_ident
-  |_____result: true
-   /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──condition: def:sender_ident
+  ├─────result: true
+   considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ./considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   .considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   .|__expanding: $sender_ident
-   .\_____result: CALLER
-   |__expanding: from ${quote_local_part:$sender_ident} 
-   \_____result: from CALLER 
-  |__condition: def:sender_helo_name
-  |_____result: true
-   /considering: (helo=$sender_helo_name)
+   .├──expanding: $sender_ident
+   .└─────result: CALLER
+   ├──expanding: from ${quote_local_part:$sender_ident} 
+   └─────result: from CALLER 
+  ├──condition: def:sender_helo_name
+  ├─────result: true
+   considering: (helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   |__expanding: (helo=$sender_helo_name)
+   ├──expanding: (helo=$sender_helo_name)
        
-   \_____result: (helo=myhost.test.ex)
+   └─────result: (helo=myhost.test.ex)
        
-  |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  \_____result: from CALLER (helo=myhost.test.ex)
+  └─────result: from CALLER (helo=myhost.test.ex)
        
|__condition: def:received_protocol
|_____result: true
-  /considering: with $received_protocol}} (Exim $version_number)
├──condition: def:received_protocol
├─────result: true
+  considering: with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: with $received_protocol
-  \_____result: with local-esmtp
|__condition: def:tls_cipher
|_____result: false
-  /   scanning: ($tls_cipher)
+  ├──expanding: with $received_protocol
+  └─────result: with local-esmtp
├──condition: def:tls_cipher
├─────result: false
+  ┌───scanning: ($tls_cipher)
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: ($tls_cipher)
+  ├──expanding: ($tls_cipher)
        
-  |_____result: ()
+  ├─────result: ()
        
-  \___skipping: result is not used
|__condition: def:sender_address
|_____result: true
-  /considering: (envelope-from <$sender_address>)
+  └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
+  considering: (envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: (envelope-from <$sender_address>)
+  ├──expanding: (envelope-from <$sender_address>)
        
-  \_____result: (envelope-from <CALLER@myhost.test.ex>)
+  └─────result: (envelope-from <CALLER@myhost.test.ex>)
        
|__condition: def:received_for
|_____result: true
-  /considering: 
├──condition: def:received_for
├─────result: true
+  considering: 
        for $received_for}}
-  |__expanding: 
+  ├──expanding: 
        for $received_for
-  \_____result: 
+  └─────result: 
        for userx@domain.com
|__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
\_____result: Received: from CALLER (helo=myhost.test.ex)
└─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
        id 10HmaX-0005vi-00
        for userx@domain.com
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
   SMTP<< 250 OK id=10HmaY-0005vi-00
 LOG: MAIN
@@ -262,40 +262,40 @@ admin user
  in hosts_connection_nolog? no (option unset)
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
/considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
|__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
\_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
└─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  in dsn_advertise_hosts? no (option unset)
  in pipelining_advertise_hosts? yes (matched "*")
  in chunking_advertise_hosts? no (end of list)
  in tls_advertise_hosts? yes (matched "*")
/considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
-  /considering: SERVER}{server}{queue}{cutthrough}}
-  |__expanding: SERVER
-  \_____result: SERVER
-  /considering: server}{queue}{cutthrough}}
-  |__expanding: server
-  \_____result: server
|__condition: eq {SERVER}{server}
|_____result: false
-  /   scanning: queue}{cutthrough}}
-  |__expanding: queue
-  |_____result: queue
-  \___skipping: result is not used
-  /considering: cutthrough}}
-  |__expanding: cutthrough
-  \_____result: cutthrough
|__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
\_____result: cutthrough
considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+  considering: SERVER}{server}{queue}{cutthrough}}
+  ├──expanding: SERVER
+  └─────result: SERVER
+  considering: server}{queue}{cutthrough}}
+  ├──expanding: server
+  └─────result: server
├──condition: eq {SERVER}{server}
├─────result: false
+  ┌───scanning: queue}{cutthrough}}
+  ├──expanding: queue
+  ├─────result: queue
+  └───skipping: result is not used
+  considering: cutthrough}}
+  ├──expanding: cutthrough
+  └─────result: cutthrough
├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
└─────result: cutthrough
 using ACL "cutthrough"
 processing "accept"
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: usery
considering: $local_part
├──expanding: $local_part
└─────result: usery
 domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
@@ -303,14 +303,14 @@ end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: usery
considering: $local_part
├──expanding: $local_part
└─────result: usery
 domain.com in "*"? yes (matched "*")
 Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
/considering: $primary_hostname
|__expanding: $primary_hostname
\_____result: myhost.test.ex
considering: $primary_hostname
├──expanding: $primary_hostname
└─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
   SMTP>> EHLO myhost.test.ex
@@ -321,24 +321,24 @@ cmd buf flush ddd bytes
          250-PIPELINING
          250-STARTTLS
          250 HELP
/considering: ${if eq {$address_data}{usery}{*}{:}}
-  /considering: $address_data}{usery}{*}{:}}
-  |__expanding: $address_data
-  \_____result: usery
-  /considering: usery}{*}{:}}
-  |__expanding: usery
-  \_____result: usery
|__condition: eq {$address_data}{usery}
|_____result: true
-  /considering: *}{:}}
-  |__expanding: *
-  \_____result: *
-  /   scanning: :}}
-  |__expanding: :
-  |_____result: :
-  \___skipping: result is not used
|__expanding: ${if eq {$address_data}{usery}{*}{:}}
\_____result: *
considering: ${if eq {$address_data}{usery}{*}{:}}
+  considering: $address_data}{usery}{*}{:}}
+  ├──expanding: $address_data
+  └─────result: usery
+  considering: usery}{*}{:}}
+  ├──expanding: usery
+  └─────result: usery
├──condition: eq {$address_data}{usery}
├─────result: true
+  considering: *}{:}}
+  ├──expanding: *
+  └─────result: *
+  ┌───scanning: :}}
+  ├──expanding: :
+  ├─────result: :
+  └───skipping: result is not used
├──expanding: ${if eq {$address_data}{usery}{*}{:}}
└─────result: *
 127.0.0.1 in hosts_avoid_tls? yes (matched "*")
 127.0.0.1 in hosts_avoid_pipelining? no (option unset)
 using PIPELINING
@@ -356,117 +356,117 @@ accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
   SMTP<< 354 Enter message, ending with "." on a line by itself
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
/considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
|__condition: def:sender_rcvhost
|_____result: false
-  /   scanning: from $sender_rcvhost
├──condition: def:sender_rcvhost
├─────result: false
+  ┌───scanning: from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: from $sender_rcvhost
+  ├──expanding: from $sender_rcvhost
        
-  |_____result: from 
+  ├─────result: from 
        
-  \___skipping: result is not used
-  /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  └───skipping: result is not used
+  considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__condition: def:sender_ident
-  |_____result: true
-   /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──condition: def:sender_ident
+  ├─────result: true
+   considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ./considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   .considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   .|__expanding: $sender_ident
-   .\_____result: CALLER
-   |__expanding: from ${quote_local_part:$sender_ident} 
-   \_____result: from CALLER 
-  |__condition: def:sender_helo_name
-  |_____result: true
-   /considering: (helo=$sender_helo_name)
+   .├──expanding: $sender_ident
+   .└─────result: CALLER
+   ├──expanding: from ${quote_local_part:$sender_ident} 
+   └─────result: from CALLER 
+  ├──condition: def:sender_helo_name
+  ├─────result: true
+   considering: (helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   |__expanding: (helo=$sender_helo_name)
+   ├──expanding: (helo=$sender_helo_name)
        
-   \_____result: (helo=myhost.test.ex)
+   └─────result: (helo=myhost.test.ex)
        
-  |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  \_____result: from CALLER (helo=myhost.test.ex)
+  └─────result: from CALLER (helo=myhost.test.ex)
        
|__condition: def:received_protocol
|_____result: true
-  /considering: with $received_protocol}} (Exim $version_number)
├──condition: def:received_protocol
├─────result: true
+  considering: with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: with $received_protocol
-  \_____result: with local-esmtp
|__condition: def:tls_cipher
|_____result: false
-  /   scanning: ($tls_cipher)
+  ├──expanding: with $received_protocol
+  └─────result: with local-esmtp
├──condition: def:tls_cipher
├─────result: false
+  ┌───scanning: ($tls_cipher)
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: ($tls_cipher)
+  ├──expanding: ($tls_cipher)
        
-  |_____result: ()
+  ├─────result: ()
        
-  \___skipping: result is not used
|__condition: def:sender_address
|_____result: true
-  /considering: (envelope-from <$sender_address>)
+  └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
+  considering: (envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: (envelope-from <$sender_address>)
+  ├──expanding: (envelope-from <$sender_address>)
        
-  \_____result: (envelope-from <CALLER@myhost.test.ex>)
+  └─────result: (envelope-from <CALLER@myhost.test.ex>)
        
|__condition: def:received_for
|_____result: true
-  /considering: 
├──condition: def:received_for
├─────result: true
+  considering: 
        for $received_for}}
-  |__expanding: 
+  ├──expanding: 
        for $received_for
-  \_____result: 
+  └─────result: 
        for usery@domain.com
|__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
\_____result: Received: from CALLER (helo=myhost.test.ex)
└─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
        id 10HmaZ-0005vi-00
        for usery@domain.com
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
   SMTP<< 250 OK id=10HmbA-0005vi-00
 LOG: MAIN
@@ -488,40 +488,40 @@ admin user
  in hosts_connection_nolog? no (option unset)
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
/considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
|__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
\_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
└─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  in dsn_advertise_hosts? no (option unset)
  in pipelining_advertise_hosts? yes (matched "*")
  in chunking_advertise_hosts? no (end of list)
  in tls_advertise_hosts? yes (matched "*")
/considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
-  /considering: SERVER}{server}{queue}{cutthrough}}
-  |__expanding: SERVER
-  \_____result: SERVER
-  /considering: server}{queue}{cutthrough}}
-  |__expanding: server
-  \_____result: server
|__condition: eq {SERVER}{server}
|_____result: false
-  /   scanning: queue}{cutthrough}}
-  |__expanding: queue
-  |_____result: queue
-  \___skipping: result is not used
-  /considering: cutthrough}}
-  |__expanding: cutthrough
-  \_____result: cutthrough
|__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
\_____result: cutthrough
considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+  considering: SERVER}{server}{queue}{cutthrough}}
+  ├──expanding: SERVER
+  └─────result: SERVER
+  considering: server}{queue}{cutthrough}}
+  ├──expanding: server
+  └─────result: server
├──condition: eq {SERVER}{server}
├─────result: false
+  ┌───scanning: queue}{cutthrough}}
+  ├──expanding: queue
+  ├─────result: queue
+  └───skipping: result is not used
+  considering: cutthrough}}
+  ├──expanding: cutthrough
+  └─────result: cutthrough
├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
└─────result: cutthrough
 using ACL "cutthrough"
 processing "accept"
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: usery
considering: $local_part
├──expanding: $local_part
└─────result: usery
 domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
@@ -529,14 +529,14 @@ end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in "test.ex : *.test.ex"? no (end of list)
 domain.com in "! +local_domains"? yes (end of list)
/considering: $local_part
|__expanding: $local_part
\_____result: usery
considering: $local_part
├──expanding: $local_part
└─────result: usery
 domain.com in "*"? yes (matched "*")
 Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
/considering: $primary_hostname
|__expanding: $primary_hostname
\_____result: myhost.test.ex
considering: $primary_hostname
├──expanding: $primary_hostname
└─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
   SMTP>> EHLO myhost.test.ex
@@ -547,24 +547,24 @@ cmd buf flush ddd bytes
          250-PIPELINING
          250-STARTTLS
          250 HELP
/considering: ${if eq {$address_data}{usery}{*}{:}}
-  /considering: $address_data}{usery}{*}{:}}
-  |__expanding: $address_data
-  \_____result: usery
-  /considering: usery}{*}{:}}
-  |__expanding: usery
-  \_____result: usery
|__condition: eq {$address_data}{usery}
|_____result: true
-  /considering: *}{:}}
-  |__expanding: *
-  \_____result: *
-  /   scanning: :}}
-  |__expanding: :
-  |_____result: :
-  \___skipping: result is not used
|__expanding: ${if eq {$address_data}{usery}{*}{:}}
\_____result: *
considering: ${if eq {$address_data}{usery}{*}{:}}
+  considering: $address_data}{usery}{*}{:}}
+  ├──expanding: $address_data
+  └─────result: usery
+  considering: usery}{*}{:}}
+  ├──expanding: usery
+  └─────result: usery
├──condition: eq {$address_data}{usery}
├─────result: true
+  considering: *}{:}}
+  ├──expanding: *
+  └─────result: *
+  ┌───scanning: :}}
+  ├──expanding: :
+  ├─────result: :
+  └───skipping: result is not used
├──expanding: ${if eq {$address_data}{usery}{*}{:}}
└─────result: *
 127.0.0.1 in hosts_avoid_tls? yes (matched "*")
 127.0.0.1 in hosts_avoid_pipelining? no (option unset)
 using PIPELINING
@@ -582,117 +582,117 @@ accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
   SMTP<< 354 Enter message, ending with "." on a line by itself
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
/considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
|__condition: def:sender_rcvhost
|_____result: false
-  /   scanning: from $sender_rcvhost
├──condition: def:sender_rcvhost
├─────result: false
+  ┌───scanning: from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: from $sender_rcvhost
+  ├──expanding: from $sender_rcvhost
        
-  |_____result: from 
+  ├─────result: from 
        
-  \___skipping: result is not used
-  /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  └───skipping: result is not used
+  considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__condition: def:sender_ident
-  |_____result: true
-   /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──condition: def:sender_ident
+  ├─────result: true
+   considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ./considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   .considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   .|__expanding: $sender_ident
-   .\_____result: CALLER
-   |__expanding: from ${quote_local_part:$sender_ident} 
-   \_____result: from CALLER 
-  |__condition: def:sender_helo_name
-  |_____result: true
-   /considering: (helo=$sender_helo_name)
+   .├──expanding: $sender_ident
+   .└─────result: CALLER
+   ├──expanding: from ${quote_local_part:$sender_ident} 
+   └─────result: from CALLER 
+  ├──condition: def:sender_helo_name
+  ├─────result: true
+   considering: (helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   |__expanding: (helo=$sender_helo_name)
+   ├──expanding: (helo=$sender_helo_name)
        
-   \_____result: (helo=myhost.test.ex)
+   └─────result: (helo=myhost.test.ex)
        
-  |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+  ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  \_____result: from CALLER (helo=myhost.test.ex)
+  └─────result: from CALLER (helo=myhost.test.ex)
        
|__condition: def:received_protocol
|_____result: true
-  /considering: with $received_protocol}} (Exim $version_number)
├──condition: def:received_protocol
├─────result: true
+  considering: with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: with $received_protocol
-  \_____result: with local-esmtp
|__condition: def:tls_cipher
|_____result: false
-  /   scanning: ($tls_cipher)
+  ├──expanding: with $received_protocol
+  └─────result: with local-esmtp
├──condition: def:tls_cipher
├─────result: false
+  ┌───scanning: ($tls_cipher)
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: ($tls_cipher)
+  ├──expanding: ($tls_cipher)
        
-  |_____result: ()
+  ├─────result: ()
        
-  \___skipping: result is not used
|__condition: def:sender_address
|_____result: true
-  /considering: (envelope-from <$sender_address>)
+  └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
+  considering: (envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  |__expanding: (envelope-from <$sender_address>)
+  ├──expanding: (envelope-from <$sender_address>)
        
-  \_____result: (envelope-from <CALLER@myhost.test.ex>)
+  └─────result: (envelope-from <CALLER@myhost.test.ex>)
        
|__condition: def:received_for
|_____result: true
-  /considering: 
├──condition: def:received_for
├─────result: true
+  considering: 
        for $received_for}}
-  |__expanding: 
+  ├──expanding: 
        for $received_for
-  \_____result: 
+  └─────result: 
        for usery@domain.com
|__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
\_____result: Received: from CALLER (helo=myhost.test.ex)
└─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
        id 10HmbB-0005vi-00
        for usery@domain.com
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
   SMTP<< 250 OK id=10HmbC-0005vi-00
 LOG: MAIN
index 2c909e5..a9d9cd9 100644 (file)
@@ -35,9 +35,9 @@ accept: condition test succeeded in ACL "chk_data"
 end of ACL "chk_data": ACCEPT
 calling local_scan(); timeout=300
 local_scan() returned 0 NULL
/considering: ${tod_full}
|__expanding: ${tod_full}
\_____result: Tue, 2 Mar 1999 09:44:33 +0000
considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
 Writing spool header file: TESTSUITE/spool//input//hdr.pppp
 DSN: Write SPOOL :-dsn_envid NULL
 DSN: Write SPOOL :-dsn_ret 0