// File : /adm/simul_efun/unique_mapping.c
// Creator : Buddha@TMI-2 (01/31/93)
//
// Returns a mapping containing
//
mapping unique_mapping(mixed *arr, string func, string var) {
mapping tmp;
mixed res;
int i;
seteuid(0);
if(!arr || !pointerp(arr)) return 0;
for (i=0, tmp = ([]); i<sizeof(arr);i++) {
if (!objectp(arr[i])) continue; /* ignore things that aren't objects. */
res = (mixed)call_other(arr[i], func, var);
if (!tmp[res]) tmp[res] = ({ arr[i] });
else tmp[res] += ({ arr[i] });
}
return tmp;
}