summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/logfdisp.c20
-rw-r--r--firmware/export/logf.h1
-rw-r--r--firmware/logf.c4
3 files changed, 16 insertions, 9 deletions
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