retCode g_setenv(processPo P, ptrPo a) { ptrI k = deRefI(&a[1]); ptrI v = deRefI(&a[2]); if (isvar(k) || !IsString(k) || !IsString(v)) return liberror(P, "setenv", eINVAL); else { char * key = stringVal(stringV(k)); char * val = stringVal(stringV(v)); if (setenv((char *) key, val, 1) == 0) return Ok; else return liberror(P, "setenv", eSPACE); } }
std::string Pack(const vcg::Point4f & f){ std::string s; int i; for(i = 0; i < 4; ++i) s += stringV(f[i]).append(" "); return s; }
std::string Pack(const Frame & frame){ std::string s,ds; int i,j; for(i = 0; i < 4; ++i) for(j = 0; j < 4; ++j) s += stringV(frame[i][j]).append(" "); return s; }
retCode g_getenv(processPo P, ptrPo a) { ptrI k = deRefI(&a[1]); if (isvar(k)) return liberror(P, "getenv", eINSUFARG); else if (!IsString(k)) return liberror(P, "getenv", eINVAL); else { char * key = stringVal(stringV(k)); char *val = getenv((char*)key); if (val != NULL) { ptrI L = allocateCString(&P->proc.heap, val); return equal(P, &a[3], &L); } else return equal(P, &a[2], &a[3]); } }
std::string Pack(const int & v){ return stringV(v).append(" "); }