pike.git / lib / modules / Array.pmod

version» Context lines:

pike.git/lib/modules/Array.pmod:8:   constant sort = __builtin.sort;      mixed map(mixed arr, mixed fun, mixed ... args)   {    int e;    mixed *ret;       if(mappingp(arr))    return mkmapping(indices(arr),map(values(arr),fun,@args));    +  if(multisetp(arr)) +  return mkmultiset(map(indices(arr,fun,@args))); +     switch(sprintf("%t",fun))    {    case "int":    return arr(@args);       case "string":    return column(arr, fun)(@args);       case "function":    case "program":
pike.git/lib/modules/Array.pmod:43:       if(mappingp(arr))    {    mixed *i, *v, r;    i=indices(arr);    ret=map(v=values(arr),fun,@args);    r=([]);    for(e=0;e<sizeof(ret);e++) if(ret[e]) r[i[e]]=v[e];       return r; -  }else{ +  } +  if(multisetp(arr)) +  { +  return mkmultiset(filter(indices(arr,fun,@args))); +  } +  else +  {    int d;    ret=map(arr,fun,@args);    for(e=0;e<sizeof(arr);e++) if(ret[e]) ret[d++]=arr[e];       return ret[..d-1];    }   }      array shuffle(array arr)   {