auxilary/os: allow appending to GALLIUM_LOG_FILE
authorBrian Paul <brianp@vmware.com>
Wed, 15 Jun 2016 02:35:53 +0000 (20:35 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 15 Jun 2016 23:16:42 +0000 (17:16 -0600)
If the log file specified by the GALLIUM_LOG_FILE begins with '+', open
the file in append mode.  This is useful to log all gallium output for
an entire piglit run, for example.

v2: put GALLIUM_LOG_FILE support inside an #ifdef DEBUG block.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/os/os_misc.c

index d6b83e90e3ddddb028d2eef94d65294dd46a7c7e..82e4957735230d704f8cc5e45a405321cfd6fa47 100644 (file)
@@ -69,10 +69,21 @@ os_log_message(const char *message)
    static FILE *fout = NULL;
 
    if (!fout) {
+#ifdef DEBUG
       /* one-time init */
       const char *filename = os_get_option("GALLIUM_LOG_FILE");
-      if (filename)
-         fout = fopen(filename, "w");
+      if (filename) {
+         const char *mode = "w";
+         if (filename[0] == '+') {
+            /* If the filename is prefixed with '+' then open the file for
+             * appending instead of normal writing.
+             */
+            mode = "a";
+            filename++; /* skip the '+' */
+         }
+         fout = fopen(filename, mode);
+      }
+#endif
       if (!fout)
          fout = stderr;
    }