static int Lhint(lua_State *L) { int type = lua_type(L, 1); if (type == LUA_TNUMBER) return set_hint(L, lua_tointeger(L, 1)); else if (type == LUA_TSTRING) { size_t len; const char *s = luaL_checklstring(L, 1, &len); if (liteq(s, "reset")) { glfwDefaultWindowHints(); return 0; } return set_hint(L, find_hintcode(L, s, len)); } return lbind_typeerror(L, 1, "hint name (string/number)"); }
static Dtree *addlit(Dtree *t, Node *pat, Node *val, Node ***cap, size_t *ncap) { Dtree *sub; size_t i; if (t->any) return t->any; for (i = 0; i < t->nval; i++) { if (liteq(t->val[i]->expr.args[0], pat->expr.args[0])) return t->sub[i]; } sub = mkdtree(); sub->patexpr = pat; lappend(&t->val, &t->nval, pat); lappend(&t->load, &t->nload, val); lappend(&t->sub, &t->nsub, sub); return sub; }