val_t eic_ltoa(void) { arg_list ap = getargs(); val_t v; getptrarg(1,v.p); switch(arg(3,ap,int)) { case 1: v.p.sp = v.p.p = ltoa(arg(0,ap,long), v.p.p, arg(2,ap,int)); break; case 2: v.p.sp = v.p.p = ultoa(arg(0,ap,unsigned long), v.p.p, arg(2,ap,int)); break; } setEp( v.p, strlen(v.p.p) + 1 ); return v; }
val_t eic_malloc(void) { val_t v; v.p.sp = v.p.p = xmalloc(arg(0,getargs(),size_t)); setEp( v.p, arg(0,getargs(),size_t) ); return v; }
val_t eic_realloc(void) { val_t v; arg_list ap = getargs(); v.p.sp = v.p.p = xrealloc(arg(0,ap,ptr_t).p, arg(1,ap,size_t)); setEp( v.p, arg(1,ap,size_t) ); return v; }
val_t eic_getenv(void) { val_t v; v.p.sp = v.p.p = getenv(nextarg(getargs(),ptr_t).p); if(v.p.p) setEp( v.p, strlen(v.p.p) + 1 ); else v.p.ep = v.p.p; return v; }
val_t eic_strerror(void) { val_t v; v.p.p = strerror(arg(0,getargs(),int)); v.p.sp = v.p.p; setEp( v.p, strlen(v.p.p) + 1 ); return v; }
val_t eic_calloc(void) { val_t v; arg_list ap = getargs(); size_t s1,s2; s1 = arg(0,ap,size_t); s2 = arg(1,ap,size_t); v.p.sp = v.p.p = xcalloc(s1,s2); setEp( v.p, s1 * s2 ); return v; }
val_t eic_strdup(void) /* unsafe */ { val_t v; char *p = arg(0,getargs(),ptr_t).p; int len = strlen(p); v.p.sp = v.p.p = xmalloc(len +1); if(v.p.p) { strcpy(v.p.p,p); v.p.ep = setEp(v.p, len); } else v.p.ep = NULL; return v; }