unsigned int checkblendmode(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(aiBlendMode_Default, "default"); CASE(aiBlendMode_Additive, "additive"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
unsigned int checklightsourcetype(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(aiLightSource_UNDEFINED, "undefined"); CASE(aiLightSource_DIRECTIONAL, "directional"); CASE(aiLightSource_POINT, "point"); CASE(aiLightSource_SPOT, "spot"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
unsigned int checktexturemapmode(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(aiTextureMapMode_Wrap, "wrap"); CASE(aiTextureMapMode_Clamp, "clamp"); CASE(aiTextureMapMode_Decal, "decal"); CASE(aiTextureMapMode_Mirror, "mirror"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
unsigned int checkanimbehaviour(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(aiAnimBehaviour_DEFAULT, "default"); CASE(aiAnimBehaviour_CONSTANT, "constant"); CASE(aiAnimBehaviour_LINEAR, "linear"); CASE(aiAnimBehaviour_REPEAT, "repeat"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
unsigned int checklogstream(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(0, "user"); // user Lua callback CASE(aiDefaultLogStream_FILE, "file"); CASE(aiDefaultLogStream_STDOUT, "stdout"); CASE(aiDefaultLogStream_STDERR, "stderr"); //CASE(aiDefaultLogStream_DEBUGGER, "debugger"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
unsigned int checktextureop(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(aiTextureOp_Multiply, "multiply"); CASE(aiTextureOp_Add, "add"); CASE(aiTextureOp_Subtract, "subtract"); CASE(aiTextureOp_Divide, "divide"); CASE(aiTextureOp_SmoothAdd, "smooth add"); CASE(aiTextureOp_SignedAdd, "signed add"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
unsigned int checktexturemapping(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(aiTextureMapping_UV, "uv"); CASE(aiTextureMapping_SPHERE, "sphere"); CASE(aiTextureMapping_CYLINDER, "cylinder"); CASE(aiTextureMapping_BOX, "box"); CASE(aiTextureMapping_PLANE, "plane"); CASE(aiTextureMapping_OTHER, "other"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
unsigned int checkshadingmode(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(aiShadingMode_Flat, "flat"); CASE(aiShadingMode_Gouraud, "gouraud"); CASE(aiShadingMode_Phong, "phong"); CASE(aiShadingMode_Blinn, "blinn"); CASE(aiShadingMode_Toon, "toon"); CASE(aiShadingMode_OrenNayar, "oren nayar"); CASE(aiShadingMode_Minnaert, "minnaert"); CASE(aiShadingMode_CookTorrance, "cook torrance"); CASE(aiShadingMode_NoShading, "no shading"); CASE(aiShadingMode_Fresnel, "fresnel"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
unsigned int checktexturetype(lua_State *L, int arg) { const char *s = luaL_checkstring(L, arg); #define CASE(CODE,str) if((strcmp(s, str)==0)) return CODE CASE(aiTextureType_NONE, "none"); CASE(aiTextureType_DIFFUSE, "diffuse"); CASE(aiTextureType_SPECULAR, "specular"); CASE(aiTextureType_AMBIENT, "ambient"); CASE(aiTextureType_EMISSIVE, "emissive"); CASE(aiTextureType_HEIGHT, "height"); CASE(aiTextureType_NORMALS, "normals"); CASE(aiTextureType_SHININESS, "shininess"); CASE(aiTextureType_OPACITY, "opacity"); CASE(aiTextureType_DISPLACEMENT, "displacement"); CASE(aiTextureType_LIGHTMAP, "lightmap"); CASE(aiTextureType_REFLECTION, "reflection"); CASE(aiTextureType_UNKNOWN, "unknown"); #undef CASE return (unsigned int)luaL_argerror(L, arg, badvalue(L,s)); }
static void setthetime(const char *p) { struct timeval tv; time_t new_time; struct tm *lt; const char *dot, *t; size_t len; int yearset; for (t = p, dot = NULL; *t; ++t) { if (isdigit((unsigned char)*t)) continue; if (*t == '.' && dot == NULL) { dot = t; continue; } badformat(); } lt = localtime(&tval); lt->tm_isdst = -1; /* Divine correct DST */ if (dot != NULL) { /* .ss */ len = strlen(dot); if (len != 3) badformat(); ++dot; lt->tm_sec = ATOI2(dot); if (lt->tm_sec > 61) badvalue("seconds"); } else { len = 0; lt->tm_sec = 0; } yearset = 0; switch (strlen(p) - len) { case 12: /* cc */ lt->tm_year = ATOI2(p) * 100 - TM_YEAR_BASE; if (lt->tm_year < 0) badtime(); yearset = 1; /* FALLTHROUGH */ case 10: /* yy */ if (yearset) { lt->tm_year += ATOI2(p); } else { yearset = ATOI2(p); if (yearset < 69) lt->tm_year = yearset + 2000 - TM_YEAR_BASE; else lt->tm_year = yearset + 1900 - TM_YEAR_BASE; } /* FALLTHROUGH */ case 8: /* mm */ lt->tm_mon = ATOI2(p); if (lt->tm_mon > 12 || lt->tm_mon == 0) badvalue("month"); --lt->tm_mon; /* time struct is 0 - 11 */ /* FALLTHROUGH */ case 6: /* dd */ lt->tm_mday = ATOI2(p); switch (lt->tm_mon) { case 0: case 2: case 4: case 6: case 7: case 9: case 11: if (lt->tm_mday > 31 || lt->tm_mday == 0) badvalue("day of month"); break; case 3: case 5: case 8: case 10: if (lt->tm_mday > 30 || lt->tm_mday == 0) badvalue("day of month"); break; case 1: if (lt->tm_mday > 29 || lt->tm_mday == 0 || (lt->tm_mday == 29 && !isleap(lt->tm_year + TM_YEAR_BASE))) badvalue("day of month"); break; default: badvalue("month"); break; } /* FALLTHROUGH */ case 4: /* hh */ lt->tm_hour = ATOI2(p); if (lt->tm_hour > 23) badvalue("hour"); /* FALLTHROUGH */ case 2: /* mm */ lt->tm_min = ATOI2(p); if (lt->tm_min > 59) badvalue("minute"); break; case 0: /* was just .sss */ if (len != 0) break; /* FALLTHROUGH */ default: badformat(); } /* convert broken-down time to UTC clock time */ if ((new_time = mktime(lt)) == -1) badtime(); /* if jflag is set, don't actually change the time, just return */ if (jflag) { tval = new_time; return; } /* set the time */ if (nflag || netsettime(new_time)) { logwtmp("|", "date", ""); if (aflag) { tv.tv_sec = new_time - tval; tv.tv_usec = 0; if (adjtime(&tv, NULL)) err(EXIT_FAILURE, "adjtime"); } else { tval = new_time; tv.tv_sec = tval; tv.tv_usec = 0; if (settimeofday(&tv, NULL)) err(EXIT_FAILURE, "settimeofday"); } logwtmp("{", "date", ""); } if ((p = getlogin()) == NULL) p = "???"; syslog(LOG_AUTH | LOG_NOTICE, "date set by %s", p); }