general improvements
[gitweb.git] / trace2 / tr2_tgt_normal.c
index 1a07d70abd6de281fc2a865f026fbb2e426adf96..438ed05a408e627d1cee0776e22762e10a5e4a3a 100644 (file)
@@ -4,20 +4,20 @@
 #include "quote.h"
 #include "version.h"
 #include "trace2/tr2_dst.h"
+#include "trace2/tr2_sysenv.h"
 #include "trace2/tr2_tbuf.h"
 #include "trace2/tr2_tgt.h"
 #include "trace2/tr2_tls.h"
 
-static struct tr2_dst tr2dst_normal = { "GIT_TR2", 0, 0, 0 };
+static struct tr2_dst tr2dst_normal = { TR2_SYSENV_NORMAL, 0, 0, 0 };
 
 /*
- * Set this environment variable to true to omit the "<time> <file>:<line>"
+ * Use the TR2_SYSENV_NORMAL_BRIEF setting to omit the "<time> <file>:<line>"
  * fields from each line written to the builtin normal target.
  *
  * Unit tests may want to use this to help with testing.
  */
-#define TR2_ENVVAR_NORMAL_BRIEF "GIT_TR2_BRIEF"
-static int tr2env_normal_brief;
+static int tr2env_normal_be_brief;
 
 #define TR2FMT_NORMAL_FL_WIDTH (50)
 
@@ -25,15 +25,15 @@ static int fn_init(void)
 {
        int want = tr2_dst_trace_want(&tr2dst_normal);
        int want_brief;
-       char *brief;
+       const char *brief;
 
        if (!want)
                return want;
 
-       brief = getenv(TR2_ENVVAR_NORMAL_BRIEF);
+       brief = tr2_sysenv_get(TR2_SYSENV_NORMAL_BRIEF);
        if (brief && *brief &&
            ((want_brief = git_parse_maybe_bool(brief)) != -1))
-               tr2env_normal_brief = want_brief;
+               tr2env_normal_be_brief = want_brief;
 
        return want;
 }
@@ -47,7 +47,7 @@ static void normal_fmt_prepare(const char *file, int line, struct strbuf *buf)
 {
        strbuf_setlen(buf, 0);
 
-       if (!tr2env_normal_brief) {
+       if (!tr2env_normal_be_brief) {
                struct tr2_tbuf tb_now;
 
                tr2_tbuf_local_time(&tb_now);
@@ -81,12 +81,13 @@ static void fn_version_fl(const char *file, int line)
        strbuf_release(&buf_payload);
 }
 
-static void fn_start_fl(const char *file, int line, const char **argv)
+static void fn_start_fl(const char *file, int line,
+                       uint64_t us_elapsed_absolute, const char **argv)
 {
        struct strbuf buf_payload = STRBUF_INIT;
 
        strbuf_addstr(&buf_payload, "start ");
-       sq_quote_argv_pretty(&buf_payload, argv);
+       sq_append_quote_argv_pretty(&buf_payload, argv);
        normal_io_write_fl(file, line, &buf_payload);
        strbuf_release(&buf_payload);
 }
@@ -134,11 +135,6 @@ static void maybe_append_string_va(struct strbuf *buf, const char *fmt,
                va_end(copy_ap);
                return;
        }
-
-       if (fmt && *fmt) {
-               strbuf_addstr(buf, fmt);
-               return;
-       }
 }
 
 static void fn_error_va_fl(const char *file, int line, const char *fmt,
@@ -146,8 +142,11 @@ static void fn_error_va_fl(const char *file, int line, const char *fmt,
 {
        struct strbuf buf_payload = STRBUF_INIT;
 
-       strbuf_addstr(&buf_payload, "error ");
-       maybe_append_string_va(&buf_payload, fmt, ap);
+       strbuf_addstr(&buf_payload, "error");
+       if (fmt && *fmt) {
+               strbuf_addch(&buf_payload, ' ');
+               maybe_append_string_va(&buf_payload, fmt, ap);
+       }
        normal_io_write_fl(file, line, &buf_payload);
        strbuf_release(&buf_payload);
 }
@@ -187,8 +186,8 @@ static void fn_alias_fl(const char *file, int line, const char *alias,
 {
        struct strbuf buf_payload = STRBUF_INIT;
 
-       strbuf_addf(&buf_payload, "alias %s ->", alias);
-       sq_quote_argv_pretty(&buf_payload, argv);
+       strbuf_addf(&buf_payload, "alias %s -> ", alias);
+       sq_append_quote_argv_pretty(&buf_payload, argv);
        normal_io_write_fl(file, line, &buf_payload);
        strbuf_release(&buf_payload);
 }
@@ -199,12 +198,12 @@ static void fn_child_start_fl(const char *file, int line,
 {
        struct strbuf buf_payload = STRBUF_INIT;
 
-       strbuf_addf(&buf_payload, "child_start[%d] ", cmd->trace2_child_id);
+       strbuf_addf(&buf_payload, "child_start[%d]", cmd->trace2_child_id);
 
        if (cmd->dir) {
-               strbuf_addstr(&buf_payload, " cd");
+               strbuf_addstr(&buf_payload, " cd ");
                sq_quote_buf_pretty(&buf_payload, cmd->dir);
-               strbuf_addstr(&buf_payload, "; ");
+               strbuf_addstr(&buf_payload, ";");
        }
 
        /*
@@ -212,9 +211,10 @@ static void fn_child_start_fl(const char *file, int line,
         * See trace_add_env() in run-command.c as used by original trace.c
         */
 
+       strbuf_addch(&buf_payload, ' ');
        if (cmd->git_cmd)
-               strbuf_addstr(&buf_payload, "git");
-       sq_quote_argv_pretty(&buf_payload, cmd->argv);
+               strbuf_addstr(&buf_payload, "git ");
+       sq_append_quote_argv_pretty(&buf_payload, cmd->argv);
 
        normal_io_write_fl(file, line, &buf_payload);
        strbuf_release(&buf_payload);
@@ -239,9 +239,11 @@ static void fn_exec_fl(const char *file, int line, uint64_t us_elapsed_absolute,
        struct strbuf buf_payload = STRBUF_INIT;
 
        strbuf_addf(&buf_payload, "exec[%d] ", exec_id);
-       if (exe)
+       if (exe) {
                strbuf_addstr(&buf_payload, exe);
-       sq_quote_argv_pretty(&buf_payload, argv);
+               strbuf_addch(&buf_payload, ' ');
+       }
+       sq_append_quote_argv_pretty(&buf_payload, argv);
        normal_io_write_fl(file, line, &buf_payload);
        strbuf_release(&buf_payload);
 }