summaryrefslogtreecommitdiff
path: root/source/luametatex/source/lua
diff options
context:
space:
mode:
Diffstat (limited to 'source/luametatex/source/lua')
-rw-r--r--source/luametatex/source/lua/lmtnodelib.c18
-rw-r--r--source/luametatex/source/lua/lmttexlib.c21
2 files changed, 39 insertions, 0 deletions
diff --git a/source/luametatex/source/lua/lmtnodelib.c b/source/luametatex/source/lua/lmtnodelib.c
index 58c3bb0a7..66cf528fc 100644
--- a/source/luametatex/source/lua/lmtnodelib.c
+++ b/source/luametatex/source/lua/lmtnodelib.c
@@ -2647,6 +2647,15 @@ static int nodelib_direct_getoptions(lua_State *L)
case disc_node:
lua_pushinteger(L, disc_options(n));
return 1;
+ case glue_node:
+ lua_pushinteger(L, glue_options(n));
+ return 1;
+ case math_node:
+ lua_pushinteger(L, math_options(n));
+ return 1;
+ case penalty_node:
+ lua_pushinteger(L, penalty_options(n));
+ return 1;
case simple_noad:
case radical_noad:
case fraction_noad:
@@ -2674,6 +2683,15 @@ static int nodelib_direct_setoptions(lua_State *L)
case disc_node:
set_disc_options(n, lmt_tohalfword(L, 2));
break;
+ case glue_node:
+ tex_add_glue_option(n, lmt_tohalfword(L, 2));
+ return 1;
+ case math_node:
+ tex_add_math_option(n, lmt_tohalfword(L, 2));
+ return 1;
+ case penalty_node:
+ tex_add_penalty_option(n, lmt_tohalfword(L, 2));
+ return 1;
case simple_noad:
case radical_noad:
case fraction_noad:
diff --git a/source/luametatex/source/lua/lmttexlib.c b/source/luametatex/source/lua/lmttexlib.c
index 1bfd2c38c..4f2ecbb5c 100644
--- a/source/luametatex/source/lua/lmttexlib.c
+++ b/source/luametatex/source/lua/lmttexlib.c
@@ -5015,6 +5015,24 @@ static int texlib_getglyphoptionvalues(lua_State *L)
return 1;
}
+static int texlib_getglueoptionvalues(lua_State *L)
+{
+ lua_createtable(L, 3, 0);
+ lua_set_string_by_index(L, glue_option_normal, "normal");
+ lua_set_string_by_index(L, glue_option_no_auto_break, "noautobreak");
+ lua_set_string_by_index(L, glue_option_short_math, "shortmath");
+ return 1;
+}
+
+static int texlib_getpenaltyoptionvalues(lua_State *L)
+{
+ lua_createtable(L, 3, 0);
+ lua_set_string_by_index(L, penalty_option_normal, "normal");
+ lua_set_string_by_index(L, penalty_option_math_forward, "mathforward");;
+ lua_set_string_by_index(L, penalty_option_math_backward, "mathbackward");
+ return 1;
+}
+
static int texlib_getnoadoptionvalues(lua_State *L)
{
lua_createtable(L, 2, 37);
@@ -5780,6 +5798,9 @@ static const struct luaL_Reg texlib_function_list[] = {
{ "setrunstate", texlib_setrunstate },
{ "gethyphenationvalues", texlib_gethyphenationvalues },
{ "getglyphoptionvalues", texlib_getglyphoptionvalues },
+ { "getglueoptionvalues", texlib_getglueoptionvalues },
+ { "getmathoptionvalues", texlib_getglueoptionvalues },
+ { "getpenaltyoptionvalues", texlib_getpenaltyoptionvalues },
{ "getnoadoptionvalues", texlib_getnoadoptionvalues },
{ "getdiscoptionvalues", texlib_getdiscoptionvalues },
{ "getlistanchorvalues", texlib_getlistanchorvalues },