diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/lua/luatex-api.h')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/lua/luatex-api.h | 320 |
1 files changed, 318 insertions, 2 deletions
diff --git a/Build/source/texk/web2c/luatexdir/lua/luatex-api.h b/Build/source/texk/web2c/luatexdir/lua/luatex-api.h index 075c2882e90..3a88eaf54d7 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luatex-api.h +++ b/Build/source/texk/web2c/luatexdir/lua/luatex-api.h @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: luatex-api.h 4718 2014-01-02 15:35:31Z taco $ */ +/* $Id: luatex-api.h 4877 2014-03-14 01:26:05Z luigi $ */ #ifndef LUATEX_API_H # define LUATEX_API_H 1 @@ -43,7 +43,7 @@ typedef struct LoadS { extern lua_State *Luas; -extern void make_table(lua_State * L, const char *tab, const char *getfunc, +extern void make_table(lua_State * L, const char *tab, const char *mttab, const char *getfunc, const char *setfunc); extern int luac_main(int argc, char *argv[]); @@ -71,6 +71,7 @@ extern int luaopen_zlib(lua_State * L); extern int luaopen_gzip(lua_State * L); extern int luaopen_ff(lua_State * L); extern int luaopen_profiler(lua_State * L); +extern int luaopen_bit32(lua_State * L); extern int luaopen_socket_core(lua_State * L); extern int luaopen_mime_core(lua_State * L); @@ -131,8 +132,18 @@ extern void undump_luac_registers(void); extern int lua_only; #ifdef LuajitTeX extern int luajiton; +extern char *jithash_hashname ; +LUA_API int luajittex_choose_hash_function ; #endif + +#ifdef LuajitTeX +#define LUAJITTEX_HASHCHARS 6 /* todo: It must be like that one on lj_str.c */ +#else +#define LUATEX_HASHCHARS 6 /* todo: It must be LUAI_HASHLIMIT! */ +#endif +extern unsigned char show_luahashchars ; + extern void unhide_lua_table(lua_State * lua, const char *name, int r); extern int hide_lua_table(lua_State * lua, const char *name); @@ -217,4 +228,309 @@ extern char **environ; #ifdef __cplusplus } #endif + +/* + Same as in lnodelib.c, but with prefix G_ for now. + These macros create and access pointers (indices) to keys which is faster. The + shortcuts are created as part of the initialization. + +*/ + +/*#define init_luaS_index(a) do { */ +#define init_lua_key(a) do { \ + lua_pushliteral(Luas,#a); \ + luaS_##a##_ptr = lua_tostring(Luas,-1); \ + luaS_##a##_index = luaL_ref (Luas,LUA_REGISTRYINDEX); \ +} while (0) + + /*#define init_luaS_index_s(a,b) do { */ +#define init_lua_key_alias(a,b) do { \ + lua_pushliteral(Luas,b); \ + luaS_##a##_ptr = lua_tostring(Luas,-1); \ + luaS_##a##_index = luaL_ref (Luas,LUA_REGISTRYINDEX); \ +} while (0) + + /*#define make_luaS_index(a) */ +#define make_lua_key(a) \ + int luaS_##a##_index = 0; \ + const char * luaS_##a##_ptr = NULL + + +/*#define luaS_ptr_eq(a,b) (a==luaS_##b##_ptr)*/ +#define lua_key_eq(a,b) (a==luaS_##b##_ptr) + +#define luaS_index(a) luaS_##a##_index +#define lua_key_index(a) luaS_##a##_index +#define lua_key(a) luaS_##a##_ptr +#define use_lua_key(a) \ + extern int luaS_##a##_index ; \ + extern const char * luaS_##a##_ptr + + +#define lua_key_rawgeti(a) \ + lua_rawgeti(L, LUA_REGISTRYINDEX, luaS_##a##_index);\ + lua_rawget(L, -2) + + +#define lua_roundnumber(a,b) (int)floor((double)lua_tonumber(L,-1)+0.5) +extern int lua_numeric_field_by_index(lua_State *, int , int); + + #endif /* LUATEX_API_H */ + + + + +/* */ +/* These keys have to available to different files */ +/* */ + + +use_lua_key(LTL); +use_lua_key(MathConstants); +use_lua_key(RTT); +use_lua_key(TLT); +use_lua_key(TRT); +use_lua_key(accent); +use_lua_key(action); +use_lua_key(action_id); +use_lua_key(action_type); +use_lua_key(additional); +use_lua_key(adjust_head); +use_lua_key(advance); +use_lua_key(aleph); +use_lua_key(align_head); +use_lua_key(area); +use_lua_key(attr); +use_lua_key(attributes); +use_lua_key(auto_expand); +use_lua_key(best_ins_ptr); +use_lua_key(best_page_break); +use_lua_key(best_size); +use_lua_key(bot); +use_lua_key(bot_accent); +use_lua_key(bottom_left); +use_lua_key(bottom_right); +use_lua_key(box_left); +use_lua_key(box_left_width); +use_lua_key(box_right); +use_lua_key(box_right_width); +use_lua_key(broken_ins); +use_lua_key(broken_ptr); +use_lua_key(cache); +use_lua_key(cal_expand_ratio); +use_lua_key(char); +use_lua_key(characters); +use_lua_key(checksum); +use_lua_key(cidinfo); +use_lua_key(class); +use_lua_key(command); +use_lua_key(commands); +use_lua_key(comment); +use_lua_key(components); +use_lua_key(contrib_head); +use_lua_key(core); +use_lua_key(cost); +use_lua_key(count); +use_lua_key(data); +use_lua_key(degree); +use_lua_key(delim); +use_lua_key(delimptr); +use_lua_key(denom); +use_lua_key(depth); +use_lua_key(designsize); +use_lua_key(dest_id); +use_lua_key(dest_type); +use_lua_key(dir); +use_lua_key(dir_h); +use_lua_key(direction); +use_lua_key(dirs); +use_lua_key(display); +use_lua_key(down); +use_lua_key(dvi_ptr); +use_lua_key(embedding); +use_lua_key(encodingbytes); +use_lua_key(encodingname); +use_lua_key(end); +use_lua_key(etex); +use_lua_key(exactly); +use_lua_key(expansion_factor); +use_lua_key(ext); +use_lua_key(extend); +use_lua_key(extender); +use_lua_key(extensible); +use_lua_key(extra_space); +use_lua_key(fam); +use_lua_key(fast); +use_lua_key(file); +use_lua_key(filename); +use_lua_key(font); +use_lua_key(fonts); +use_lua_key(format); +use_lua_key(fullname); +use_lua_key(global); +use_lua_key(glue_order); +use_lua_key(glue_set); +use_lua_key(glue_sign); +use_lua_key(glyph); +use_lua_key(head); +use_lua_key(height); +use_lua_key(hold_head); +use_lua_key(horiz_variants); +use_lua_key(hyphenchar); +use_lua_key(id); +use_lua_key(image); +use_lua_key(index); +use_lua_key(italic); +use_lua_key(kern); +use_lua_key(kerns); +use_lua_key(lang); +use_lua_key(large_char); +use_lua_key(large_fam); +use_lua_key(last_ins_ptr); +use_lua_key(leader); +use_lua_key(least_page_cost); +use_lua_key(left); +use_lua_key(left_boundary); +use_lua_key(left_protruding); +use_lua_key(level); +use_lua_key(ligatures); +use_lua_key(link_attr); +use_lua_key(list); +use_lua_key(log); +use_lua_key(lua); +use_lua_key(luatex); +use_lua_key(luatex_node); +use_lua_key(mLTL); +use_lua_key(mRTT); +use_lua_key(mTLT); +use_lua_key(mTRT); +use_lua_key(mark); +use_lua_key(mathdir); +use_lua_key(mathkern); +use_lua_key(mathstyle); +use_lua_key(mid); +use_lua_key(mode); +use_lua_key(modeline); +use_lua_key(name); +use_lua_key(named_id); +use_lua_key(new_window); +use_lua_key(next); +use_lua_key(no); +use_lua_key(noad); +use_lua_key(node); +use_lua_key(node_properties); +use_lua_key(node_properties_indirect); +use_lua_key(nomath); +use_lua_key(nop); +use_lua_key(nucleus); +use_lua_key(num); +use_lua_key(number); +use_lua_key(objnum); +use_lua_key(omega); +use_lua_key(ordering); +use_lua_key(pLTL); +use_lua_key(pRTT); +use_lua_key(pTLT); +use_lua_key(pTRT); +use_lua_key(page_head); +use_lua_key(page_ins_head); +use_lua_key(parameters); +use_lua_key(pdftex); +use_lua_key(pen_broken); +use_lua_key(pen_inter); +use_lua_key(penalty); +use_lua_key(pop); +use_lua_key(post); +use_lua_key(pre); +use_lua_key(pre_adjust_head); +use_lua_key(prev); +use_lua_key(prevdepth); +use_lua_key(prevgraf); +use_lua_key(psname); +use_lua_key(ptr); +use_lua_key(push); +use_lua_key(quad); +use_lua_key(ref_count); +use_lua_key(reg); +use_lua_key(registry); +use_lua_key(renew); +use_lua_key(rep); +use_lua_key(replace); +use_lua_key(right); +use_lua_key(right_boundary); +use_lua_key(right_protruding); +use_lua_key(rule); +use_lua_key(scale); +use_lua_key(script); +use_lua_key(scriptscript); +use_lua_key(shift); +use_lua_key(shrink); +use_lua_key(shrink_order); +use_lua_key(size); +use_lua_key(skewchar); +use_lua_key(slant); +use_lua_key(slot); +use_lua_key(small_char); +use_lua_key(small_fam); +use_lua_key(space); +use_lua_key(space_shrink); +use_lua_key(space_stretch); +use_lua_key(spacefactor); +use_lua_key(spec); +use_lua_key(special); +use_lua_key(stack); +use_lua_key(start); +use_lua_key(step); +use_lua_key(stream); +use_lua_key(stretch); +use_lua_key(stretch_order); +use_lua_key(string); +use_lua_key(style); +use_lua_key(sub); +use_lua_key(subst_ex_font); +use_lua_key(subtype); +use_lua_key(sup); +use_lua_key(supplement); +use_lua_key(surround); +use_lua_key(tail); +use_lua_key(temp_head); +use_lua_key(term); +use_lua_key(term_and_log); +use_lua_key(tex); +use_lua_key(text); +use_lua_key(thread_attr); +use_lua_key(thread_id); +use_lua_key(top); +use_lua_key(top_accent); +use_lua_key(top_left); +use_lua_key(top_right); +use_lua_key(tounicode); +use_lua_key(transform); +use_lua_key(type); +use_lua_key(uchyph); +use_lua_key(umath); +use_lua_key(units_per_em); +use_lua_key(used); +use_lua_key(user_id); +use_lua_key(value); +use_lua_key(version); +use_lua_key(vert_variants); +use_lua_key(width); +use_lua_key(writable); +use_lua_key(x_height); +use_lua_key(xoffset); +use_lua_key(xyz_zoom); +use_lua_key(yoffset); + +use_lua_key(immediate); +use_lua_key(compresslevel); +use_lua_key(objcompression); +use_lua_key(direct); +use_lua_key(page); +use_lua_key(streamfile); +use_lua_key(annot); +use_lua_key(lua_functions); + + + |