mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 13:15:18 -05:00
Fix logf() multilines handling
Each line (of MAX_LOGF_ENTRY characters) would be marked with LOGF_TERMINATE_CONTINUE_LINE, but still be padded with a '\0' This also reverts r22250 which worked around the problem in logfdump() Flyspray: FS#10513 Author: Amaury Pouly git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22253 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
e74ba2b63d
commit
9a5174c8a3
2 changed files with 7 additions and 6 deletions
|
|
@ -190,8 +190,8 @@ bool logfdump(void)
|
||||||
ptr = buffer;
|
ptr = buffer;
|
||||||
do {
|
do {
|
||||||
tindex++;
|
tindex++;
|
||||||
memcpy(ptr, logfbuffer[tindex], MAX_LOGF_ENTRY-1);
|
memcpy(ptr, logfbuffer[tindex], MAX_LOGF_ENTRY);
|
||||||
ptr += MAX_LOGF_ENTRY-1;
|
ptr += MAX_LOGF_ENTRY;
|
||||||
if (tindex >= MAX_LOGF_LINES)
|
if (tindex >= MAX_LOGF_LINES)
|
||||||
tindex = 0;
|
tindex = 0;
|
||||||
} while(logfbuffer[tindex][MAX_LOGF_ENTRY] == LOGF_TERMINATE_CONTINUE_LINE);
|
} while(logfbuffer[tindex][MAX_LOGF_ENTRY] == LOGF_TERMINATE_CONTINUE_LINE);
|
||||||
|
|
|
||||||
|
|
@ -145,16 +145,17 @@ void _logf(const char *format, ...)
|
||||||
while(len > MAX_LOGF_ENTRY)
|
while(len > MAX_LOGF_ENTRY)
|
||||||
{
|
{
|
||||||
ptr = logfbuffer[logfindex];
|
ptr = logfbuffer[logfindex];
|
||||||
strlcpy(ptr, buf + tlen, MAX_LOGF_ENTRY);
|
memcpy(ptr, buf + tlen, MAX_LOGF_ENTRY);
|
||||||
ptr[MAX_LOGF_ENTRY] = LOGF_TERMINATE_CONTINUE_LINE;
|
ptr[MAX_LOGF_ENTRY] = LOGF_TERMINATE_CONTINUE_LINE;
|
||||||
logfindex++;
|
logfindex++;
|
||||||
check_logfindex();
|
check_logfindex();
|
||||||
len -= MAX_LOGF_ENTRY-1;
|
len -= MAX_LOGF_ENTRY;
|
||||||
tlen += MAX_LOGF_ENTRY-1;
|
tlen += MAX_LOGF_ENTRY;
|
||||||
multiline = true;
|
multiline = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr = logfbuffer[logfindex];
|
ptr = logfbuffer[logfindex];
|
||||||
strcpy(ptr, buf + tlen);
|
memcpy(ptr, buf + tlen,len-tlen);
|
||||||
|
|
||||||
if(len < MAX_LOGF_ENTRY)
|
if(len < MAX_LOGF_ENTRY)
|
||||||
/* pad with spaces up to the MAX_LOGF_ENTRY byte border */
|
/* pad with spaces up to the MAX_LOGF_ENTRY byte border */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue