summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/lt3luabridge/lt3luabridge.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/lt3luabridge/lt3luabridge.tex')
-rw-r--r--Master/texmf-dist/tex/generic/lt3luabridge/lt3luabridge.tex244
1 files changed, 166 insertions, 78 deletions
diff --git a/Master/texmf-dist/tex/generic/lt3luabridge/lt3luabridge.tex b/Master/texmf-dist/tex/generic/lt3luabridge/lt3luabridge.tex
index 0c2b8f8ddd6..bdaf2c38a9d 100644
--- a/Master/texmf-dist/tex/generic/lt3luabridge/lt3luabridge.tex
+++ b/Master/texmf-dist/tex/generic/lt3luabridge/lt3luabridge.tex
@@ -1,26 +1,75 @@
+%%
+%% This is file `lt3luabridge.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lt3luabridge.dtx (with options: `generic-package')
+%%
+%% Copyright (C) 2016-2022 Vít Novotný
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Vít Novotný.
+%%
+%% Send bug reports, requests for additions and questions
+%% either to the GitHub issue tracker at
+%%
+%% https://github.com/Witiko/lt3luabridge/issues
+%%
+%% or to the e-mail address <witiko@mail.muni.cz>.
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You will also need to produce your own, suitably named, .ins file to
+%% control the generation of files from your source file; this file
+%% should contain your own preambles for the files it generates, not
+%% those in the standard .ins files.
+%%
+%% The names of the source files used are shown above.
+%%
\ifx\ExplSyntaxOn\undefined
\input expl3-generic\relax
\fi
\ExplSyntaxOn
-\int_const:Nn \c__luabridge_method_write_eighteen_int { 0 }
-\int_const:Nn \c__luabridge_method_os_execute_int { 1 }
-\int_const:Nn \c__luabridge_method_directlua_int { 2 }
+\int_const:Nn
+ \c_luabridge_method_write_eighteen_int
+ { 0 }
+\int_const:Nn
+ \c_luabridge_method_os_execute_int
+ { 1 }
+\int_const:Nn
+ \c_luabridge_method_directlua_int
+ { 2 }
\int_if_exist:NF
- \g__luabridge_method_int
+ \g_luabridge_method_int
{
\int_new:N
- \g__luabridge_method_int
- \cs_if_exist:NTF
- \directlua
+ \g_luabridge_method_int
+ \sys_if_engine_luatex:TF
{
\int_gset_eq:NN
- \g__luabridge_method_int
- \c__luabridge_method_directlua_int
+ \g_luabridge_method_int
+ \c_luabridge_method_directlua_int
}
{
\int_gset_eq:NN
- \g__luabridge_method_int
- \c__luabridge_method_write_eighteen_int
+ \g_luabridge_method_int
+ \c_luabridge_method_write_eighteen_int
}
}
\msg_new:nnn
@@ -48,21 +97,21 @@
Using~direct~Lua~access~as~the~bridging~method
}
\int_case:nnF
- { \g__luabridge_method_int }
+ { \g_luabridge_method_int }
{
- { \c__luabridge_method_write_eighteen_int }
+ { \c_luabridge_method_write_eighteen_int }
{
\msg_info:nn
{ luabridge }
{ method-write-eighteen }
}
- { \c__luabridge_method_os_execute_int }
+ { \c_luabridge_method_os_execute_int }
{
\msg_info:nn
{ luabridge }
{ method-os-execute }
}
- { \c__luabridge_method_directlua_int }
+ { \c_luabridge_method_directlua_int }
{
\msg_info:nn
{ luabridge }
@@ -70,33 +119,42 @@
}
}
{
- \msg_error:nnx
+ \cs_generate_variant:Nn
+ \msg_error:nnn
+ { nnV }
+ \msg_error:nnV
{ luabridge }
{ unknown-method }
- { \g__luabridge_method_int }
+ \g_luabridge_method_int
}
\bool_if:nTF
{
\int_compare_p:nNn
- { \g__luabridge_method_int }
+ { \g_luabridge_method_int }
=
- { \c__luabridge_method_write_eighteen_int } ||
+ { \c_luabridge_method_write_eighteen_int } ||
\int_compare_p:nNn
- { \g__luabridge_method_int }
+ { \g_luabridge_method_int }
=
- { \c__luabridge_method_os_execute_int }
+ { \c_luabridge_method_os_execute_int }
}
{
- \int_const:Nn \c__luabridge_level_disabled_int { 0 }
- \int_const:Nn \c__luabridge_level_enabled_int { 1 }
- \int_const:Nn \c__luabridge_level_restricted_int { 2 }
+ \int_const:Nn
+ \c__luabridge_level_disabled_int
+ { 0 }
+ \int_const:Nn
+ \c__luabridge_level_enabled_int
+ { 1 }
+ \int_const:Nn
+ \c__luabridge_level_restricted_int
+ { 2 }
\int_new:N
- \g__luabridge_level_int
+ \l__luabridge_level_int
\cs_if_exist:NTF
\pdfshellescape
{
\int_gset:Nn
- \g__luabridge_level_int
+ \l__luabridge_level_int
{ \pdfshellescape }
}
{
@@ -104,25 +162,25 @@
\shellescape
{
\int_gset:Nn
- \g__luabridge_level_int
+ \l__luabridge_level_int
{ \shellescape }
}
{
\int_case:nnF
- { \g__luabridge_method_int }
+ { \g_luabridge_method_int }
{
- { \c__luabridge_method_write_eighteen_int }
+ { \c_luabridge_method_write_eighteen_int }
{
\int_gset_eq:NN
- \g__luabridge_level_int
+ \l__luabridge_level_int
\c__luabridge_level_enabled_int
}
}
{
\int_gset:Nn
- \g__luabridge_level_int
+ \l__luabridge_level_int
{
- \directlua
+ \lua_now:n
{
tex.sprint(status.shell_escape or "1")
}
@@ -164,12 +222,20 @@
--enable-write18~flag,~or~write~shell_escape=t~in~the~
texmf.cnf~file.
}
- \str_const:Nn \c__luabridge_default_output_dirname_str { . }
- \str_const:Nx \c__luabridge_default_helper_script_filename_str { \jobname.luabridge.lua }
- \str_const:Nx \c__luabridge_default_error_output_filename_str { \jobname.luabridge.err }
- \str_const:Nx \c__luabridge_default_standard_output_filename_str { \jobname.luabridge.out }
+ \str_const:Nn
+ \c_luabridge_default_output_dirname_str
+ { . }
+ \str_const:Nx
+ \c_luabridge_default_helper_script_filename_str
+ { \jobname.luabridge.lua }
+ \str_const:Nx
+ \c_luabridge_default_error_output_filename_str
+ { \jobname.luabridge.err }
+ \str_const:Nx
+ \c_luabridge_default_standard_output_filename_str
+ { \jobname.luabridge.out }
\int_case:nnF
- { \g__luabridge_level_int }
+ { \l__luabridge_level_int }
{
{ \c__luabridge_level_disabled_int }
{
@@ -194,13 +260,13 @@
\msg_error:nnx
{ luabridge }
{ unknown-level }
- { \g__luabridge_level_int }
+ { \l__luabridge_level_int }
}
\cs_new:Nn
\_luabridge_assert_shell_escape:
{
\int_case:nnF
- { \g__luabridge_level_int }
+ { \l__luabridge_level_int }
{
{ \c__luabridge_level_disabled_int }
{
@@ -211,9 +277,9 @@
}
}
\int_case:nn
- { \g__luabridge_method_int }
+ { \g_luabridge_method_int }
{
- { \c__luabridge_method_write_eighteen_int }
+ { \c_luabridge_method_write_eighteen_int }
{
\cs_new:Nn
\_luabridge_execute_shell:n
@@ -224,75 +290,78 @@
{ #1 }
}
}
- { \c__luabridge_method_os_execute_int }
+ { \c_luabridge_method_os_execute_int }
{
\cs_new:Nn
\_luabridge_execute_shell:n
{
\_luabridge_assert_shell_escape:
- \directlua
+ \lua_now:e
{
os.execute(
- " \luaescapestring { #1 } "
+ " \lua_escape:e { #1 } "
)
}
}
}
}
\str_if_exist:NF
- \g__luabridge_output_dirname_str
+ \g_luabridge_output_dirname_str
{
\str_new:N
- \g__luabridge_output_dirname_str
+ \g_luabridge_output_dirname_str
\tl_gset:Nn
- \g__luabridge_output_dirname_str
- \c__luabridge_default_output_dirname_str
+ \g_luabridge_output_dirname_str
+ \c_luabridge_default_output_dirname_str
}
\str_if_exist:NF
- \g__luabridge_helper_script_filename_str
+ \g_luabridge_helper_script_filename_str
{
\str_gset_eq:NN
- \g__luabridge_helper_script_filename_str
- \c__luabridge_default_helper_script_filename_str
+ \g_luabridge_helper_script_filename_str
+ \c_luabridge_default_helper_script_filename_str
}
\str_if_exist:NF
- \g__luabridge_error_output_filename_str
+ \g_luabridge_error_output_filename_str
{
\str_gset_eq:NN
- \g__luabridge_error_output_filename_str
- \c__luabridge_default_error_output_filename_str
+ \g_luabridge_error_output_filename_str
+ \c_luabridge_default_error_output_filename_str
}
\str_if_exist:NF
- \g__luabridge_standard_output_filename_str
+ \g_luabridge_standard_output_filename_str
{
\str_gset_eq:NN
- \g__luabridge_standard_output_filename_str
- \c__luabridge_default_standard_output_filename_str
+ \g_luabridge_standard_output_filename_str
+ \c_luabridge_default_standard_output_filename_str
}
\cs:w newwrite \cs_end:
\l__luabridge_output_stream
\cs_new:Nn
- \_luabridge_execute:n
+ \luabridge_now:n
{
\immediate \openout
\l__luabridge_output_stream
- \g__luabridge_helper_script_filename_str
+ \g_luabridge_helper_script_filename_str
\msg_info:nnV
{ luabridge }
{ writing-helper-script }
- \g__luabridge_helper_script_filename_str
- \tl_set:Nx
+ \g_luabridge_helper_script_filename_str
+ \tl_set:Nn
\l_tmpa_tl
+ { #1 }
+ \tl_set:Nx
+ \l_tmpb_tl
{
local~ran_ok,~error~=~pcall(function()~
local~ran_ok,~kpse~=~pcall(require,~"kpse")~
if~ran_ok~then~kpse.set_program_name("luatex")~end~
- #1~
+ \exp_not:V \l_tmpa_tl~
end)~
if~not~ran_ok~then~
local~file~=~io.open("
- \g__luabridge_output_dirname_str /
- \g__luabridge_error_output_filename_str
+ \g_luabridge_output_dirname_str /
+ \g_luabridge_error_output_filename_str
",~"w")~
if~file~then~
file:write(error~..~" \iow_char:N \\ n ")~
@@ -304,37 +373,37 @@
\iow_char:N \\ \iow_char:N \\ msg_error:nnvv
{ luabridge }
{ failed-to-execute }
- { g__luabridge_output_dirname_str }
- { g__luabridge_output_dirname_str }
+ { g_luabridge_output_dirname_str }
+ { g_luabridge_output_dirname_str }
\iow_char:N \\ \iow_char:N \\ endgroup
')~
end
}
\immediate \write
\l__luabridge_output_stream
- { \exp_not:V \l_tmpa_tl }
+ { \exp_not:V \l_tmpb_tl }
\immediate \closeout
\l__luabridge_output_stream
\msg_info:nnVV
{ luabridge }
{ executing-helper-script }
- \g__luabridge_helper_script_filename_str
- \g__luabridge_standard_output_filename_str
+ \g_luabridge_helper_script_filename_str
+ \g_luabridge_standard_output_filename_str
\tl_set:Nx
\l_tmpa_tl
{
texlua~"
- \g__luabridge_output_dirname_str /
- \g__luabridge_helper_script_filename_str
+ \g_luabridge_output_dirname_str /
+ \g_luabridge_helper_script_filename_str
"~>~"
- \g__luabridge_output_dirname_str /
- \g__luabridge_standard_output_filename_str
+ \g_luabridge_output_dirname_str /
+ \g_luabridge_standard_output_filename_str
"
}
\_luabridge_execute_shell:V
\l_tmpa_tl
\file_if_exist_input:VF
- \g__luabridge_standard_output_filename_str
+ \g_luabridge_standard_output_filename_str
{
\msg_error:nn
{ luabridge }
@@ -382,9 +451,13 @@
}
{
\cs_new:Nn
- \_luabridge_execute:n
+ \luabridge_now:n
{
- \directlua
+ \tl_set:Nn
+ \l_tmpa_tl
+ { #1 }
+ \tl_set:Nx
+ \l_tmpb_tl
{
local~function~print(input)~
input~=~tostring(input)~
@@ -397,11 +470,26 @@
end~
tex.print(output)~
end~
- #1
+ \exp_not:V \l_tmpa_tl
}
+ \lua_now:V
+ \l_tmpb_tl
}
+ \cs_generate_variant:Nn
+ \lua_now:n
+ { V }
}
\cs_new_protected:Npn
\luabridgeExecute
- { \_luabridge_execute:n }
+ #1
+ {
+ \luabridge_now:e
+ { #1 }
+ }
+\cs_generate_variant:Nn
+ \luabridge_now:n
+ { e }
\ExplSyntaxOff
+\endinput
+%%
+%% End of file `lt3luabridge.tex'.