forked from KolibriOS/kolibrios
Quark: handle all line endings
git-svn-id: svn://kolibrios.org@8913 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
fc3c8d4ae0
commit
a4d1118b5f
@ -9,8 +9,6 @@ void Parse()
|
|||||||
{
|
{
|
||||||
dword ptr;
|
dword ptr;
|
||||||
int line_end;
|
int line_end;
|
||||||
dword line_length = 0;
|
|
||||||
dword line_start = textbuf.p;
|
|
||||||
|
|
||||||
list.count=0;
|
list.count=0;
|
||||||
selection.cancel();
|
selection.cancel();
|
||||||
@ -21,21 +19,24 @@ dword line_start = textbuf.p;
|
|||||||
|
|
||||||
for (ptr = textbuf.p; ptr < textbuf.p + textbuf.len; ptr++)
|
for (ptr = textbuf.p; ptr < textbuf.p + textbuf.len; ptr++)
|
||||||
{
|
{
|
||||||
line_length += list.font_w;
|
if (ptr - lines.get_last() * list.font_w + 16 >= list.w)
|
||||||
if (line_length + 30 >= list.w) || (ESBYTE[ptr] == '\n')
|
|
||||||
{
|
{
|
||||||
//if (ESBYTE[ptr+1] == '\r') ptr++;
|
|
||||||
|
|
||||||
//searching a 'white' for a normal word-break
|
//searching a 'white' for a normal word-break
|
||||||
for(line_end = ptr; line_end != line_start; line_end--)
|
for(line_end = ptr; line_end != lines.get_last(); line_end--) {
|
||||||
{
|
if (__isWhite(ESBYTE[line_end])) {
|
||||||
if (__isWhite(ESBYTE[line_end])) { ptr=line_end+1; break; }
|
ptr = line_end + 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
line_length = ptr - line_start * list.font_w;
|
|
||||||
list.count++;
|
list.count++;
|
||||||
lines.add(ptr);
|
lines.add(ptr);
|
||||||
line_start = ptr;
|
} else if (ESBYTE[ptr] == '\x0D') {
|
||||||
line_length = 0;
|
if (ESBYTE[ptr+1] == '\x0A') ptr++;
|
||||||
|
list.count++;
|
||||||
|
lines.add(ptr+1);
|
||||||
|
} else if (ESBYTE[ptr] == '\x0A') {
|
||||||
|
list.count++;
|
||||||
|
lines.add(ptr+1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lines.add(ptr);
|
lines.add(ptr);
|
||||||
|
Loading…
Reference in New Issue
Block a user