pike.git / src / modules / _Stdio / stat.c

version» Context lines:

pike.git/src/modules/_Stdio/stat.c:768:      static void stat_indices(INT32 args);   static void stat_values(INT32 args);      static void stat_cast(INT32 args)   {    if (!args)    SIMPLE_TOO_FEW_ARGS_ERROR("Stat cast",1);    if (TYPEOF(sp[-args]) == T_STRING && !sp[-args].u.string->size_shift)    { -  if (strcmp(sp[-args].u.string->str,"array")==0) +  /* NB: We only look at the prefix, and let the main cast function +  * handle any subtypes. +  */ +  if (!strncmp(sp[-args].u.string->str, "array", 5))    {    pop_n_elems(args);    push_int(0);    push_int(6);    stat_index(2);    return;    } -  if (strcmp(sp[-args].u.string->str,"mapping")==0) +  if (!strncmp(sp[-args].u.string->str, "mapping", 7))    {    stat_indices(0);    stat_values(0);    push_mapping(mkmapping(Pike_sp[-2].u.array, Pike_sp[-1].u.array));    stack_pop_n_elems_keep_top(2);    return;    }    }    SIMPLE_BAD_ARG_ERROR("Stat cast",1, -  "string(\"array\")"); +  "string(\"array\"|\"mapping\")");   }      static void stat__sprintf(INT32 args)   {    int x;       if (args<1)    SIMPLE_TOO_FEW_ARGS_ERROR("_sprintf",2);       if (TYPEOF(sp[-args]) != T_INT)