From 7932c8102a8f5298d7d36caa6df233c356f96e56 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 30 Apr 2023 03:01:09 +0000 Subject: CTAN sync 202304300301 --- systems/doc/luatex/luatex-fontloader.tex | 2 +- systems/doc/luatex/luatex-languages.tex | 2 +- systems/doc/luatex/luatex-lua.tex | 78 +++++++++++++++++++++++++------ systems/doc/luatex/luatex-nodes.tex | 20 ++++++-- systems/doc/luatex/luatex-tex.tex | 17 ++++++- systems/doc/luatex/luatex.pdf | Bin 1775307 -> 1780325 bytes 6 files changed, 96 insertions(+), 23 deletions(-) (limited to 'systems/doc') diff --git a/systems/doc/luatex/luatex-fontloader.tex b/systems/doc/luatex/luatex-fontloader.tex index 1e12b61f11..055228bcda 100644 --- a/systems/doc/luatex/luatex-fontloader.tex +++ b/systems/doc/luatex/luatex-fontloader.tex @@ -306,7 +306,7 @@ the documentation are not yet finished): \starttabulate[|l|l|p|] \DB key \BC type \NC explanation \NC \NR \TB -\NC \type{table_version} \NC number \NC indicates the metrics version (currently~0.3)\NC \NR +\NC \type{table_version} \NC string \NC indicates the metrics version (currently~0.3)\NC \NR \NC \type{fontname} \NC string \NC \POSTSCRIPT\ font name\NC \NR \NC \type{fullname} \NC string \NC official (human-oriented) font name\NC \NR \NC \type{familyname} \NC string \NC family name\NC \NR diff --git a/systems/doc/luatex/luatex-languages.tex b/systems/doc/luatex/luatex-languages.tex index 573727a66e..875094721d 100644 --- a/systems/doc/luatex/luatex-languages.tex +++ b/systems/doc/luatex/luatex-languages.tex @@ -140,7 +140,7 @@ hyphenation happens is (normally) when the paragraph or a horizontal box is constructed. When \prm {savinghyphcodes} was zero when the language got initialized you start out with nothing, otherwise you already have a set. -When a \lpr {hjcode} is greater than 0 but less than 32 is indicates the +When a \lpr {hjcode} is greater than 0 but less than 32 it indicates the to be used length. In the following example we map a character (\type {x}) onto another one in the patterns and tell the engine that \type {œ} counts as one character. Because traditionally zero itself is reserved for inhibiting diff --git a/systems/doc/luatex/luatex-lua.tex b/systems/doc/luatex/luatex-lua.tex index 94dead9e14..eefdf4425b 100644 --- a/systems/doc/luatex/luatex-lua.tex +++ b/systems/doc/luatex/luatex-lua.tex @@ -88,6 +88,8 @@ consequence. The following command|-|line options are understood: \NC \type{--[no-]mktex=FMT} \NC disable/enable \type {mktexFMT} generation with \type {FMT} is \type {tex} or \type {tfm} \NC \NR \NC \type{--nosocket} \NC disable the \LUA\ socket library \NC\NR +\NC \type{--no-socket} \NC disable the \LUA\ socket library \NC\NR +\NC \type{--socket} \NC enable the \LUA\ socket library \NC\NR \NC \type{--output-comment=STRING} \NC use \type {STRING} for \DVI\ file comment instead of date (no effect for \PDF) \NC \NR \NC \type{--output-directory=DIR} \NC use \type {DIR} as the directory to write files to \NC \NR @@ -147,7 +149,8 @@ in the following order: \startitem First, it will parse the command line as usual, but it will only interpret a small subset of the options immediately: \type {--safer}, \type {--nosocket}, - \type {--[no-]shell-escape}, \type {--enable-write18}, \type + \type {--no-socket}, + \type {--socket}, \type {--[no-]shell-escape}, \type {--enable-write18}, \type {--disable-write18}, \type {--shell-restricted}, \type {--help}, \type {--version}, and \type {--credits}. \stopitem @@ -169,7 +172,8 @@ in the following order: \starttabulate[|c|l|] \DB library \BC functions \NC \NR \TB - \NC \type {os} \NC \type {execute} \type {exec} \type {spawn} \type {setenv} + \NC \type {os} \NC \type {execute} \type {exec} \type{kpsepopen} + \type {spawn} \type {setenv} \type {rename} \type {remove} \type {tmpdir} \NC \NR \NC \type {io} \NC \type {popen} \type {output} \type {tmpfile} \NC \NR \NC \type {lfs} \NC \type {rmdir} \type {mkdir} \type {chdir} \type {lock} @@ -181,6 +185,9 @@ in the following order: Furthermore, it disables loading of compiled \LUA\ libraries and it makes \type {io.open()} fail on files that are opened for anything besides reading. + + Finally, it disables the \type {socket} library unconditionally (but not the + \type {mime} library which is always available). \stopitem \startitem @@ -193,13 +200,25 @@ in the following order: os.setlocale(nil,nil) \stoptyping - The \type {--nosocket} option makes the socket library unavailable, so that \LUA\ - cannot use networking. + The \type {--nosocket} or \type {--no-socket} option makes the socket library + unavailable, so that \LUA\ cannot use networking; + \type {--socket} option makes the socket library available. The switches \type {--[no-]shell-escape}, \type {--[enable|disable]-write18}, and \type {--shell-restricted} have the same effects as in \PDFTEX, and additionally - make \type {io.popen()}, \type {os.execute}, \type {os.exec} and \type {os.spawn} - adhere to the requested option. + make \type {io.popen()}, \type {os.execute}, \type {os.exec}, \type {os.kpsepopen} + and \type {os.spawn} adhere to the requested option. + + By default + the socket library is not enabled: one can enable it with with \type {--socket} + or with \type {--shell-escape} (but without \type {--shell-restricted}) + and disable it with \type {--nosocket} (or \type {--no-socket}) + or unconditionally with \type {--safer}. + + In case of conflictual options, the most restrictive wins. + + The \type{mime} library is always available. + \stopitem \startitem @@ -319,8 +338,8 @@ of the module itself). \startsubsection[title={Executing programs}] -In keeping with the other \TEX|-|like programs in \TEXLIVE, the two \LUA\ functions -\type {os.execute} and \type {io.popen}, as well as the two new functions \type +In keeping with the other \TEX|-|like programs in \TEXLIVE, the \LUA\ functions +\type {os.execute}, \type{os.kpsepopen} and \type {io.popen}, as well as the two new functions \type {os.exec} and \type {os.spawn} that are explained below, take the value of \type {shell_escape} and|/|or \type {shell_escape_commands} in account. Whenever \LUATEX\ is run with the assumed intention to typeset a document (and by that we @@ -432,12 +451,19 @@ used as building blocks for other helpers. \startsubsection[title={Extra \type {os} library functions}] -The \type {os} library has a few extra functions and variables: \libidx {os} -{selfdir}, \libidx {os} {exec}, \libidx {os} {spawn}, \libidx {os} {setenv}, -\libidx {os} {env}, \libidx {os} {gettimeofday}, \libidx {os} {times}, \libidx -{os} {tmpdir}, \libidx {os} {type}, \libidx {os} {name} and \libidx {os} {uname}, +The \type {os} library has a few extra functions and +variables: \libidx {os} {selfdir}, \libidx {os} {exec}, +\libidx {os} {kpsepopen}, +\libidx {os} {socketgettime}, \libidx {os} {socketsleep}, +\libidx {os} {spawn}, \libidx {os} {setenv}, +\libidx {os} {env}, \libidx {os} {gettimeofday}, \libidx {os} {times}, +\libidx {os} {sleep}, \libidx {os} {tmpdir}, \libidx {os} {type}, +\libidx {os} {name} and \libidx {os} {uname},{os} {uname}, that we will discuss here. + + + \startitemize \startitem @@ -495,6 +521,18 @@ that we will discuss here. \TEXLUA. \stopitem +\startitem + \type {os.kpsepopen(commandline,[opt])} is similar to \type {io.popen} + but with a preliminary check of the commandline; + if the check is ok then the return value is the same as in \type{io.popen}; + Otherwise it will return the two values \type {nil} and \type {error}. +\stopitem + +\startitem + \type {os.socketgettime} and \type {os.socketsleep} are the same as for + \type{socket.gettime} and \type{socket.sleep} but they are always available. +\stopitem + \startitem \type {os.spawn(commandline)} is a returning version of \type {os.exec}, with otherwise identical calling conventions. @@ -522,19 +560,29 @@ that we will discuss here. \stopitem \startitem - \type {os.times()}returns the current process times according to \ the + \type {os.times()}returns the current process times according to the \UNIX\ C library function \quote {times}. This function is not available on the \MSWINDOWS\ and \SUNOS\ platforms, so do not use this function for portable documents. \stopitem \startitem - \type {os.tmpdir()} creates a directory in the \quote {current directory} + \type {os.sleep(interval[, unit])} suspends the execution of the current run for + a given number of seconds. If the optional argument \type {unit} is present, the + function waits \type {interval / units} seconds. \type {os.sleep(1, 1000)} + for example pauses the program for one millisecond. +\stopitem + +\startitem + \type {os.tmpdir([template])} creates a directory in the \quote {current directory} with the name \type {luatex.XXXXXX} where the \type {X}-es are replaced by a unique string. The function also returns this string, so you can \type {lfs.chdir()} into it, or \type {nil} if it failed to create the directory. The user is responsible for cleaning up at the end of the run, it does not - happen automatically. + happen automatically. You can also use your own \type {template} for the name + of the temporary folder. However, the passed string must end with six capital + \type {X}-es. For example, the template \type {tmp.XXXXXX} could result in the + folder name \type {tmp.vX3gPo}. \stopitem \startitem diff --git a/systems/doc/luatex/luatex-nodes.tex b/systems/doc/luatex/luatex-nodes.tex index 42a4aedc72..a57ed98b2d 100644 --- a/systems/doc/luatex/luatex-nodes.tex +++ b/systems/doc/luatex/luatex-nodes.tex @@ -2334,21 +2334,26 @@ consistency. You can of course always define additional accessors using \type \supported {fields} \yes \nop \supported {find_attribute} \yes \yes \supported {first_glyph} \yes \yes +\supported {fix_node_lists} \yes \nop \supported {flatten_discretionaries} \yes \yes \supported {flush_list} \yes \yes \supported {flush_node} \yes \yes +\supported {flush_properties_table} \yes \yes \supported {free} \yes \yes \supported {get_attribute} \yes \yes +\supported {get_properties_table} \yes \yes \supported {get_synctex_fields} \nop \yes \supported {getattributelist} \nop \yes \supported {getboth} \yes \yes \supported {getbox} \nop \yes \supported {getchar} \yes \yes \supported {getcomponents} \nop \yes +\supported {getdata} \nop \yes \supported {getdepth} \nop \yes \supported {getdirection} \nop \yes \supported {getdir} \nop \yes \supported {getdisc} \yes \yes +\supported {getexpansion} \nop \yes \supported {getfam} \nop \yes \supported {getfield} \yes \yes \supported {getfont} \yes \yes @@ -2369,13 +2374,13 @@ consistency. You can of course always define additional accessors using \type \supported {getsubtype} \yes \yes \supported {getsub} \nop \yes \supported {getsup} \nop \yes -\supported {getdata} \nop \yes \supported {getwhd} \yes \yes \supported {getwidth} \nop \yes \supported {has_attribute} \yes \yes \supported {has_field} \yes \yes \supported {has_glyph} \yes \yes \supported {hpack} \yes \yes +\supported {hyphenating} \nop \yes \supported {id} \yes \nop \supported {insert_after} \yes \yes \supported {insert_before} \yes \yes @@ -2388,10 +2393,11 @@ consistency. You can of course always define additional accessors using \type \supported {last_node} \yes \yes \supported {length} \yes \yes \supported {ligaturing} \yes \yes +\supported {make_extensible} \yes \nop \supported {mlist_to_hlist} \yes \nop \supported {new} \yes \yes \supported {next} \yes \nop -\supported {prepend_prevdepth} \nop \yes +\supported {prepend_prevdepth} \yes \yes \supported {prev} \yes \nop \supported {protect_glyphs} \yes \yes \supported {protect_glyph} \yes \yes @@ -2399,20 +2405,22 @@ consistency. You can of course always define additional accessors using \type \supported {rangedimensions} \yes \yes \supported {remove} \yes \yes \supported {set_attribute} \yes \yes +\supported {set_properties_mode} \yes \yes \supported {set_synctex_fields} \nop \yes \supported {setattributelist} \nop \yes \supported {setboth} \nop \yes \supported {setbox} \nop \yes \supported {setchar} \nop \yes \supported {setcomponents} \nop \yes +\supported {setdata} \nop \yes \supported {setdepth} \nop \yes \supported {setdirection} \nop \yes \supported {setdir} \nop \yes \supported {setdisc} \nop \yes +\supported {setexpansion} \nop \yes \supported {setfam} \nop \yes \supported {setfield} \yes \yes \supported {setfont} \nop \yes -\supported {setexpansion} \nop \yes \supported {setglue} \yes \yes \supported {setheight} \nop \yes \supported {setkern} \nop \yes @@ -2443,6 +2451,7 @@ consistency. You can of course always define additional accessors using \type \supported {traverse_char} \yes \yes \supported {traverse_glyph} \yes \yes \supported {traverse_id} \yes \yes +\supported {traverse_list} \nop \yes \supported {traverse} \yes \yes \supported {types} \yes \nop \supported {type} \yes \nop @@ -2451,6 +2460,7 @@ consistency. You can of course always define additional accessors using \type \supported {unset_attribute} \yes \yes \supported {usedlist} \yes \yes \supported {uses_font} \yes \yes +\supported {values} \yes \nop \supported {vpack} \yes \yes \supported {whatsits} \yes \nop \supported {write} \yes \yes @@ -2490,9 +2500,9 @@ number, for a glue, kern, hlist, vlist, rule and math nodes as well as glyph nodes (although this last one is not used in native \SYNCTEX). \startfunctioncall -node.set_synctex_fields( f, l) +node.direct.set_synctex_fields( n, f, l) f, l = - node.get_synctex_fields( n) + node.direct.get_synctex_fields( n) \stopfunctioncall Of course you need to know what you're doing as no checking on sane values takes diff --git a/systems/doc/luatex/luatex-tex.tex b/systems/doc/luatex/luatex-tex.tex index f8c3d5ac63..4752c25157 100644 --- a/systems/doc/luatex/luatex-tex.tex +++ b/systems/doc/luatex/luatex-tex.tex @@ -96,7 +96,7 @@ If you want to unset a \LUA\ name, you can assign \type {nil} to it. The functio accessors are: \startfunctioncall -lua.setluaname( s, n]) +lua.setluaname( n, s) s = lua.getluaname( n) \stopfunctioncall @@ -2854,6 +2854,21 @@ Returns the kpathsea version string. \stopsubsection +\startsubsection[title={\type {check_permission}}] + +\libindex{check\_permission} + +Checks if the \type{filename} can be executed or not. +Returns \type{1}, \type{filename} or a safe cmd alternative if it can be executed, +otherwise returns \type{0} and an error message. + +\startfunctioncall + res, cmd = kpse.check_permission(filename) +\stopfunctioncall + +\stopsubsection + + \stopsection \stopchapter diff --git a/systems/doc/luatex/luatex.pdf b/systems/doc/luatex/luatex.pdf index efd2d01178..cfb9e734a7 100644 Binary files a/systems/doc/luatex/luatex.pdf and b/systems/doc/luatex/luatex.pdf differ -- cgit v1.2.3