inlining
[exim.git] / src / src / functions.h
index b201467b209d00e6d9cc1470e79e4d9d33bc5afe..b2f94865092bafcd57f000ffb0b1bdce2033f866 100644 (file)
@@ -103,7 +103,7 @@ extern acl_block *acl_read(uschar *(*)(void), uschar **);
 extern int     acl_check(int, const uschar *, uschar *, uschar **, uschar **);
 extern uschar *acl_current_verb(void);
 extern int     acl_eval(int, uschar *, uschar **, uschar **);
-extern uschar *acl_standalone_setvar(const uschar *);
+extern uschar *acl_standalone_setvar(const uschar *, BOOL);
 
 extern tree_node *acl_var_create(uschar *);
 extern void    acl_var_write(uschar *, uschar *, void *);
@@ -567,7 +567,6 @@ extern gstring *string_append_listele_n(gstring *, uschar, const uschar *, unsig
 extern gstring *string_append2_listele_n(gstring *, const uschar *, const uschar *, unsigned) WARN_UNUSED_RESULT;
 extern uschar *string_base62_32(unsigned long int);
 extern uschar *string_base62_64(unsigned long int);
-extern gstring *string_cat (gstring *, const uschar *     ) WARN_UNUSED_RESULT;
 extern gstring *string_catn(gstring *, const uschar *, int) WARN_UNUSED_RESULT;
 extern int     string_compare_by_pointer(const void *, const void *);
 extern uschar *string_copy_dnsdomain(uschar *);
@@ -632,7 +631,7 @@ extern void    transport_do_pass_socket(const uschar *, const uschar *,
                 const uschar *, uschar *, int);
 extern void    transport_init(void);
 extern BOOL    transport_pass_socket(const uschar *, const uschar *, const uschar *, uschar *, int
-#ifdef EXPERIMENTAL_ESMTP_LIMITS
+#ifndef DISABLE_ESMTP_LIMITS
                        , unsigned, unsigned, unsigned
 #endif
                        );
@@ -767,6 +766,12 @@ Return the next char as there's enough places using it to be useful. */
 static inline uschar skip_whitespace(const uschar ** sp)
 { while (isspace(**sp)) (*sp)++; return **sp; }
 
+/* Ditto, non-whitespace */
+
+#define Uskip_nonwhite(sp) skip_nonwhite(CUSS sp)
+static inline uschar skip_nonwhite(const uschar ** sp)
+{ while (**sp && !isspace(**sp)) (*sp)++; return **sp; }
+
 
 /******************************************************************************/
 
@@ -1044,6 +1049,18 @@ if (g) store_release_above_3(g->s + (g->size = g->ptr + 1), file, line);
 }
 
 
+/* plain string append to a growable-string */
+
+static inline gstring * string_cat(gstring * g, const uschar * s)
+ WARN_UNUSED_RESULT;
+
+static inline gstring *
+string_cat(gstring * g, const uschar * s)
+{
+return string_catn(g, s, Ustrlen(s));
+}
+
+
 /* sprintf-append to a growable-string */
 
 #define string_fmt_append(g, fmt, ...) \
@@ -1079,6 +1096,7 @@ g->s = s;
 }
 
 /* Append one gstring to another */
+
 static inline gstring *
 gstring_append(gstring * dest, gstring * item)
 {
@@ -1400,6 +1418,11 @@ HDEBUG(D_transport|D_acl|D_v) debug_printf_indent("  SMTP%c> %s\n",
     client_cmd_log = string_catn(client_cmd_log, US"|", 1); 
     (void) string_from_gstring(client_cmd_log);
     }
+  else if (mode == SCMD_MORE)
+    {
+    client_cmd_log = string_catn(client_cmd_log, US"+", 1);
+    (void) string_from_gstring(client_cmd_log);
+    }
   store_pool = old_pool;
   }
 #  endif