void test_string(text &g, v, l) { integer n; n = prefix(v, l); if (~g < n) { g = cut(l, 0, n); } } longest(text u, v) { record r; text g, l, s; while (~u) { r[u] = 0; u = delete(u, 0); } while (~v) { if (rsk_lower(r, v, l)) { test_string(g, v, l); } if (rsk_upper(r, v, l)) { test_string(g, v, l); } v = delete(v, 0); } g; }