Method code for $buffer.break_lines()

[Turn on line numbering]
arg buf;
var i, sub, out;

// break a buffer by 
 or 
 but keep its sub contents as buffers
out = [];
while ((i = 10 in buf)) {
    sub = subbuf(buf, 1, i - 1);
    buf = subbuf(buf, i + 1);
    while ((i = 13 in sub)) {
        if (buflen(sub) == i)
            sub = subbuf(sub, 1, i - 1);
        else
            sub = subbuf(sub, 1, i - 1) + subbuf(sub, i + 1);
    }
    out += [sub];
}
if (buf) {
    while ((i = 13 in buf)) {
        if (buflen(buf) == i)
            buf = subbuf(buf, 1, i - 1);
        else
            buf = subbuf(buf, 1, i - 1) + subbuf(buf, i + 1);
    }
    if (buf)
        out += [buf];
}
return out;

// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit

Tlon