pike.git / lib / modules / Array.pmod

version» Context lines:

pike.git/lib/modules/Array.pmod:1:   #define error(X) throw( ({ (X), backtrace()[0..sizeof(backtrace())-2] }) )      mixed map(mixed arr, mixed fun, mixed ... args)   {    int e;    mixed *ret;    -  if(mappingp(arr)) +  switch(sprintf("%t",fun)) +  { +  case "mapping":    return mkmapping(indices(arr),map(values(arr),fun,@args));    -  if(intp(fun)) +  case "int":    return arr(@args);    -  if(stringp(fun)) +  case "string":    return column(arr, fun)(@args);    -  if(functionp(fun)) -  { +  case "function": +  case "program": +  case "object":    ret=allocate(sizeof(arr));    for(e=0;e<sizeof(arr);e++)    ret[e]=fun(arr[e],@args);    return ret; -  } +     -  +  default:    error("Bad argument 2 to map_array().\n");    } -  + }      mixed filter(mixed arr, mixed fun, mixed ... args)   {    int e;    mixed *ret;       if(mappingp(arr))    {    mixed *i, *v, r;    i=indices(arr);