summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/os/os_misc.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/os/os_misc.c b/src/gallium/auxiliary/os/os_misc.c
index d6b83e90e3d..82e49577352 100644
--- a/src/gallium/auxiliary/os/os_misc.c
+++ b/src/gallium/auxiliary/os/os_misc.c
@@ -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;
}