Method code for $buffer.bufsub()

[Turn off line numbering]
  1: arg buf, a, b;
  2: var i, la, lb, lt;
  3: 
  4: // do we need a builtin for this?
  5: // from Kipp's core (until I write a builtin--optimized by Brandon) 
  6: if (a == b || buflen(a) > buflen(buf) || !a || !buf)
  7:     return buf;
  8: la = buflen(a);
  9: lb = buflen(b);
 10: lt = buflen(buf);
 11: i = 1;
 12: anticipate_assignment();
 13: while (i <= buflen(buf) && (i = bufidx(buf, a, i))) {
 14:     buf = subbuf(buf, 1, i - 1) + b + subbuf(buf, i + la);
 15:     i += lb;
 16: }
 17: return buf;

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

Tlon