nuclear@4: #include nuclear@4: #include nuclear@31: #include nuclear@31: #include nuclear@4: #include nuclear@4: #include "log.h" nuclear@4: nuclear@4: void sgl_log(const char *fmt, ...) nuclear@4: { nuclear@31: static int first_run = 1; nuclear@4: va_list ap; nuclear@4: const char *logfile; nuclear@4: FILE *fp; nuclear@4: nuclear@31: if((logfile = getenv("SGL_LOG"))) { nuclear@31: if(first_run) { nuclear@31: remove(logfile); nuclear@31: first_run = 0; nuclear@31: } nuclear@31: if(!(fp = fopen(logfile, "a"))) { nuclear@31: fprintf(stderr, "failed to open logfile: %s: %s\n", logfile, strerror(errno)); nuclear@31: fp = stderr; nuclear@31: } nuclear@31: } else { nuclear@4: fp = stderr; nuclear@4: } nuclear@4: nuclear@4: va_start(ap, fmt); nuclear@4: vfprintf(fp, fmt, ap); nuclear@4: va_end(ap); nuclear@4: nuclear@5: if(fp != stderr) { nuclear@5: fclose(fp); nuclear@5: } nuclear@4: }