[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