static int rpmts_set_color(rpmtsObject *s, PyObject *value, void *closure) { rpm_color_t color; if (!PyArg_Parse(value, "i", &color)) return -1; /* TODO: validate the bits */ rpmtsSetColor(s->ts, color); return 0; }
static JSBool rpmts_setprop(JSContext *cx, JSObject *obj, jsval id, jsval *vp) { void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtsClass, NULL); rpmts ts = (rpmts)ptr; jsint tiny = JSVAL_TO_INT(id); int myint; /* XXX the class has ptr == NULL, instances have ptr != NULL. */ if (ptr == NULL) return JS_TRUE; switch (tiny) { case _DEBUG: if (!JS_ValueToInt32(cx, *vp, &_debug)) break; break; case _VSFLAGS: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetVSFlags(ts, (rpmVSFlags)myint); break; case _TYPE: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetType(ts, (rpmTSType)myint); break; case _ARBGOAL: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetARBGoal(ts, (uint32_t)myint); break; case _ROOTDIR: (void) rpmtsSetRootDir(ts, JS_GetStringBytes(JS_ValueToString(cx, *vp))); break; case _CURRDIR: (void) rpmtsSetCurrDir(ts, JS_GetStringBytes(JS_ValueToString(cx, *vp))); break; case _CHROOTDONE: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetChrootDone(ts, myint); break; case _TID: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetTid(ts, (uint32_t)myint); break; case _FLAGS: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetFlags(ts, myint); break; case _DFLAGS: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetDFlags(ts, (rpmdepFlags)myint); break; case _GOAL: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetGoal(ts, (tsmStage)myint); break; case _DBMODE: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetDBMode(ts, myint); break; case _COLOR: if (!JS_ValueToInt32(cx, *vp, &myint)) break; (void) rpmtsSetColor(ts, (uint32_t)(myint & 0x0f)); break; default: break; } return JS_TRUE; }