3a5b1d2000-05-24Fredrik Hübinette (Hubbe) #include "global.h" #include "interpret.h" #include "svalue.h" #include "opcodes.h" #include "pike_macros.h" #include "object.h" #include "program.h" #include "array.h" #include "error.h" #include "constants.h" #include "mapping.h" #include "stralloc.h" #include "multiset.h" #include "pike_types.h" #include "pike_memory.h" #include "threads.h" #include <math.h> #include <ctype.h> #include "module_support.h" #include "cyclic.h" #include "bignum.h"
098c802000-05-24Fredrik Hübinette (Hubbe) #include "main.h"
3a5b1d2000-05-24Fredrik Hübinette (Hubbe)  PIKEFUN array column(array tmp, mixed val) efun; optflags OPT_TRY_OPTIMIZE; { INT32 e; struct array *a; DECLARE_CYCLIC(); /* Optimization */ if(tmp->refs == 1) { /* An array with one ref cannot possibly be cyclic */ struct svalue sval; tmp->type_field = BIT_MIXED | BIT_UNFINISHED; for(e=0;e<tmp->size;e++) { index_no_free(&sval, ITEM(tmp)+e, val); free_svalue(ITEM(tmp)+e); ITEM(tmp)[e]=sval; } pop_stack(); return; } if((a=(struct array *)BEGIN_CYCLIC(tmp,0))) { add_ref(a); }else{ push_array(a=allocate_array(tmp->size)); SET_CYCLIC_RET(a); for(e=0;e<a->size;e++) index_no_free(ITEM(a)+e, ITEM(tmp)+e, val); sp--; } END_CYCLIC(); RETURN a; } PIKEFUN multiset(1) mkmultiset(array(1=mixed) a) efun; optflags OPT_TRY_OPTIMIZE; { RETURN mkmultiset(a); }
098c802000-05-24Fredrik Hübinette (Hubbe) PIKEFUN int trace(int t) efun; optflags OPT_SIDE_EFFECT; { pop_n_elems(args); push_int(t_flag); t_flag=t; } PIKEFUN string ctime(int x) efun; optflags OPT_TRY_OPTIMIZE; { time_t i=(time_t)x; RETURN make_shared_string(ctime(&i)); } PIKEFUN mapping(1:2) mkmapping(array(1=mixed) a, array(2=mixed) b) efun; optflags OPT_TRY_OPTIMIZE; { if(a->size != b->size) bad_arg_error("mkmapping", sp-args, args, 2, "array", sp+1-args, "mkmapping called on arrays of different sizes (%d != %d)\n", a->size, b->size); RETURN mkmapping(a,b); }
3a5b1d2000-05-24Fredrik Hübinette (Hubbe)  void init_builtin(void) {
ab82822000-05-25Fredrik Hübinette (Hubbe) INIT
3a5b1d2000-05-24Fredrik Hübinette (Hubbe) }