diff --git a/apps/logfdisp.c b/apps/logfdisp.c index 8547778f64..54c345faae 100644 --- a/apps/logfdisp.c +++ b/apps/logfdisp.c @@ -218,42 +218,44 @@ bool logfdisplay(void) } #endif /* HAVE_LCD_BITMAP */ -/* Store the logf log to logf.txt in the .rockbox directory. The order of the - * entries will be "reversed" so that the most recently logged entry is on the - * top of the file */ bool logfdump(void) { int fd; splashf(HZ, "Log File Dumped"); - + /* nothing to print ? */ if(logfindex == 0 && !logfwrap) /* nothing is logged just yet */ return false; - + + logfenabled = false; + fd = open(ROCKBOX_DIR "/logf.txt", O_CREAT|O_WRONLY|O_TRUNC, 0666); if(-1 != fd) { int i; - + if(logfwrap) i = logfindex; else i = 0; - + do { if(logfbuffer[i]=='\0') fdprintf(fd, "\n"); else fdprintf(fd, "%c", logfbuffer[i]); - + i++; if(i >= MAX_LOGF_SIZE) i = 0; } while(i != logfindex); - + close(fd); } + + logfenabled = true; + return false; } diff --git a/firmware/export/logf.h b/firmware/export/logf.h index e881e7e496..c8aaad06b4 100644 --- a/firmware/export/logf.h +++ b/firmware/export/logf.h @@ -34,6 +34,7 @@ extern unsigned char logfbuffer[MAX_LOGF_SIZE]; extern int logfindex; extern bool logfwrap; +extern bool logfenabled; #endif /* __PCTOOL__ */ #define logf _logf diff --git a/firmware/logf.c b/firmware/logf.c index 0f05c6590d..bdc5ad9cc0 100644 --- a/firmware/logf.c +++ b/firmware/logf.c @@ -62,6 +62,7 @@ static int logdiskfindex; unsigned char logfbuffer[MAX_LOGF_SIZE]; int logfindex; bool logfwrap; +bool logfenabled = true; #endif #ifdef HAVE_REMOTE_LCD @@ -214,6 +215,9 @@ static int logf_push(void *userp, unsigned char c) void _logf(const char *fmt, ...) { + if (!logfenabled) + return; + #ifdef USB_ENABLE_SERIAL int old_logfindex = logfindex; #endif