int gettoks (lua_State *L) { int i; size_t k; strnumber t; int cur_cs; int texstr; char *s; i = lua_gettop(L); if (lua_type(L,i)==LUA_TSTRING) { s = (char *)lua_tolstring(L,i, &k); texstr = maketexlstring(s,k); cur_cs = string_lookup(texstr); flush_str(texstr); if (is_undefined_cs(cur_cs)) { lua_pushnil(L); return 1; } k = zget_equiv(cur_cs)-get_toks_base(); } else { k = (int)luaL_checkinteger(L,i); } check_index_range(k); t = get_tex_toks_register(k); lua_pushstring(L, makecstring(t)); flush_str(t); return 1; }
int settoks (lua_State *L) { int i,j; size_t k,len; int cur_cs; int texstr; char *s, *st; i = lua_gettop(L); if (!lua_isstring(L,i)) { lua_pushstring(L, "unsupported value type"); lua_error(L); } st = (char *)lua_tolstring(L,i,&len); if (lua_type(L,i-1)==LUA_TSTRING) { s = (char *)lua_tolstring(L,i-1, &k); texstr = maketexlstring(s,k); cur_cs = string_lookup(texstr); flush_str(texstr); k = zget_equiv(cur_cs)-get_toks_base(); } else { k = (int)luaL_checkinteger(L,i-1); } check_index_range(k); j = maketexlstring(st,len); if(zset_tex_toks_register(k,j)) { flush_str(j); lua_pushstring(L, "incorrect value"); lua_error(L); } return 0; }
int setdimen (lua_State *L) { int i,j; size_t k; int cur_cs; int texstr; char *s; i = lua_gettop(L); j = 0; /* find the value*/ if (!lua_isnumber(L,i)) if (lua_isstring(L,i)) { j = dimen_to_number(L,(char *)lua_tostring(L,i)); } else { lua_pushstring(L, "unsupported value type"); lua_error(L); } else j = (int)lua_tonumber(L,i); /* find the index*/ if (lua_type(L,i-1)==LUA_TSTRING) { s = (char *)lua_tolstring(L,i-1, &k); texstr = maketexlstring(s,k); cur_cs = string_lookup(texstr); flush_str(texstr); k = zget_equiv(cur_cs)-get_scaled_base(); } else { k = (int)luaL_checkinteger(L,i-1); } check_index_range(k); if(set_tex_dimen_register(k,j)) { lua_pushstring(L, "incorrect value"); lua_error(L); } return 0; }
void primitive_def(const char*s,size_t l,quarterword c,halfword o) { int nncs= no_new_control_sequence; no_new_control_sequence= false; cur_val= string_lookup(s,l); no_new_control_sequence= nncs; eq_level(cur_val)= level_one; eq_type(cur_val)= c; equiv(cur_val)= o; }
boolean is_primitive(str_number csname) { int n,m; char*ss; m= prim_lookup(csname); ss= makecstring(csname); n= string_lookup(ss,str_length(csname)); free(ss); return((n!=undefined_cs_cmd)&& (m!=undefined_primitive)&& (eq_type(n)==prim_eq_type(m))&&(equiv(n)==prim_equiv(m))); }
static int lua_tokenlib_is_defined(lua_State * L) { const char *s; size_t l; if (lua_type(L, -1) == LUA_TSTRING) { s = lua_tolstring(L, -1, &l); if (l > 0) { lua_pushboolean(L,string_lookup(s, l) != undefined_control_sequence); return 1; } } lua_pushnil(L); return 1; }
static int run_lookup(lua_State * L) { const char *s; size_t l; int cs, cmd, chr; if (lua_type(L, -1) == LUA_TSTRING) { s = lua_tolstring(L, -1, &l); if (l > 0) { cs = string_lookup(s, l); cmd = eq_type(cs); chr = equiv(cs); make_new_token(L, cmd, chr, cs); return 1; } } lua_pushnil(L); return 1; }
int settex (lua_State *L) { char *st; int i,j,texstr; size_t k; int cur_cs, cur_cmd; j = 0; i = lua_gettop(L); if (lua_isstring(L,(i-1))) { st = (char *)lua_tolstring(L,(i-1), &k); texstr = maketexlstring(st,k); if (zis_primitive(texstr)) { cur_cs = string_lookup(texstr); flush_str(texstr); cur_cmd = zget_eq_type(cur_cs); if (is_int_assign(cur_cmd)) { if (lua_isnumber(L,i)) { assign_internal_int(zget_equiv(cur_cs),lua_tonumber(L,i)); } else { lua_pushstring(L, "unsupported value type"); lua_error(L); } } else if (is_dim_assign(cur_cmd)) { if (!lua_isnumber(L,i)) if (lua_isstring(L,i)) { j = dimen_to_number(L,(char *)lua_tostring(L,i)); } else { lua_pushstring(L, "unsupported value type"); lua_error(L); } else j = (int)lua_tonumber(L,i); assign_internal_dim(zget_equiv(cur_cs),j); } else { lua_pushstring(L, "unsupported tex internal assignment"); lua_error(L); } } else { lua_rawset(L,(i-2)); } } else { lua_rawset(L,(i-2)); } return 0; }
static int get_box_id (lua_State *L, int i) { const char *s; integer cur_cs, cur_cmd; str_number texstr; size_t k = 0; int j = -1; if (lua_type(L,i)==LUA_TSTRING) { s = (char *)lua_tolstring(L,i, &k); texstr = maketexlstring(s,k); cur_cs = string_lookup(texstr); cur_cmd = zget_eq_type(cur_cs); flush_str(texstr); if (cur_cmd==char_given || cur_cmd==math_given || cur_cmd==omath_given) { j = zget_equiv(cur_cs); } } else { j = (int)lua_tonumber(L,(i)); } return j; }
int setattribute (lua_State *L) { int i,j; size_t k; int cur_cs; int texstr; char *s; i = lua_gettop(L); j = (int)luaL_checkinteger(L,i); if (lua_type(L,i-1)==LUA_TSTRING) { s = (char *)lua_tolstring(L,i-1, &k); texstr = maketexlstring(s,k); cur_cs = string_lookup(texstr); flush_str(texstr); k = zget_equiv(cur_cs)-get_attribute_base(); } else { k = (int)luaL_checkinteger(L,i-1); } check_index_range(k); if (set_tex_attribute_register(k,j)) { lua_pushstring(L, "incorrect value"); lua_error(L); } return 0; }
void initial_status::change_subsys() { int z, cargo_index, enable = FALSE, enable_cargo_name = FALSE; int ship_has_scannable_subsystems; ship_subsys *ptr; // Goober5000 ship_has_scannable_subsystems = Ship_info[Ships[m_ship].ship_info_index].is_huge_ship(); if (Ships[m_ship].flags[Ship::Ship_Flags::Toggle_subsystem_scanning]) ship_has_scannable_subsystems = !ship_has_scannable_subsystems; if (cur_subsys != LB_ERR) { ptr = GET_FIRST(&Ships[m_ship].subsys_list); while (cur_subsys--) { Assert(ptr != END_OF_LIST(&Ships[m_ship].subsys_list)); ptr = GET_NEXT(ptr); } MODIFY(ptr -> current_hits, 100.0f - (float) m_damage); // update cargo name if (strlen(m_cargo_name) > 0) { //-V805 cargo_index = string_lookup(m_cargo_name, Cargo_names, Num_cargo); if (cargo_index == -1) { if (Num_cargo < MAX_CARGO); cargo_index = Num_cargo++; strcpy(Cargo_names[cargo_index], m_cargo_name); ptr->subsys_cargo_name = cargo_index; } else { ptr->subsys_cargo_name = cargo_index; } } else { ptr->subsys_cargo_name = 0; } set_modified(); } cur_subsys = z = ((CListBox *) GetDlgItem(IDC_SUBSYS)) -> GetCurSel(); if (z == LB_ERR) { m_damage = 100; } else { ptr = GET_FIRST(&Ships[m_ship].subsys_list); while (z--) { Assert(ptr != END_OF_LIST(&Ships[m_ship].subsys_list)); ptr = GET_NEXT(ptr); } m_damage = 100 - (int) ptr -> current_hits; if ( ship_has_scannable_subsystems ) { enable_cargo_name = TRUE; if (ptr->subsys_cargo_name > 0) { m_cargo_name = Cargo_names[ptr->subsys_cargo_name]; } else { m_cargo_name = _T(""); } } else { m_cargo_name = _T(""); } enable = TRUE; } GetDlgItem(IDC_DAMAGE) -> EnableWindow(enable); GetDlgItem(IDC_DAMAGE_SPIN) -> EnableWindow(enable); GetDlgItem(IDC_CARGO_NAME)->EnableWindow(enable && enable_cargo_name); }