new object $buffer: $libraries; var $root inited = 1; public method .break_lines() { arg buf; var i, sub, out; // break a buffer by \r or \n 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; }; public method .from_list() { arg list; var buf, x; buf = `[]; for x in [1 .. list.length()] buf = buf.add(list[x]); return buf; }; public method .to_list() { arg buf; var idx, list; list = []; for idx in [1 .. buf.length()] list = list + [buf[idx]]; return list; };