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;
|
||||
do {
|
||||
tindex++;
|
||||
memcpy(ptr, logfbuffer[tindex], MAX_LOGF_ENTRY-1);
|
||||
ptr += MAX_LOGF_ENTRY-1;
|
||||
memcpy(ptr, logfbuffer[tindex], MAX_LOGF_ENTRY);
|
||||
ptr += MAX_LOGF_ENTRY;
|
||||
if (tindex >= MAX_LOGF_LINES)
|
||||
tindex = 0;
|
||||
} while(logfbuffer[tindex][MAX_LOGF_ENTRY] == LOGF_TERMINATE_CONTINUE_LINE);
|
||||
|
|
|
@ -145,16 +145,17 @@ void _logf(const char *format, ...)
|
|||
while(len > MAX_LOGF_ENTRY)
|
||||
{
|
||||
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;
|
||||
logfindex++;
|
||||
check_logfindex();
|
||||
len -= MAX_LOGF_ENTRY-1;
|
||||
tlen += MAX_LOGF_ENTRY-1;
|
||||
len -= MAX_LOGF_ENTRY;
|
||||
tlen += MAX_LOGF_ENTRY;
|
||||
multiline = true;
|
||||
}
|
||||
|
||||
ptr = logfbuffer[logfindex];
|
||||
strcpy(ptr, buf + tlen);
|
||||
memcpy(ptr, buf + tlen,len-tlen);
|
||||
|
||||
if(len < MAX_LOGF_ENTRY)
|
||||
/* pad with spaces up to the MAX_LOGF_ENTRY byte border */
|
||||
|
|
Loading…
Reference in a new issue