[Turn off line numbering]1: arg buf; 2: var i, sub, out; 3: 4: // break a buffer by or but keep its sub contents as buffers 5: out = []; 6: while ((i = 10 in buf)) { 7: sub = subbuf(buf, 1, i - 1); 8: buf = subbuf(buf, i + 1); 9: while ((i = 13 in sub)) { 10: if (buflen(sub) == i) 11: sub = subbuf(sub, 1, i - 1); 12: else 13: sub = subbuf(sub, 1, i - 1) + subbuf(sub, i + 1); 14: } 15: out += [sub]; 16: } 17: if (buf) { 18: while ((i = 13 in buf)) { 19: if (buflen(buf) == i) 20: buf = subbuf(buf, 1, i - 1); 21: else 22: buf = subbuf(buf, 1, i - 1) + subbuf(buf, i + 1); 23: } 24: if (buf) 25: out += [buf]; 26: } 27: return out;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit