[latex3-commits] [git/LaTeX3-latex3-luaotfload] dev: temporary local shellesc.sty with catcode fix (20a399a)

Ulrike Fischer fischer at troubleshooting-tex.de
Fri Nov 8 16:01:42 CET 2019


Repository : https://github.com/latex3/luaotfload
On branch  : dev
Link       : https://github.com/latex3/luaotfload/commit/20a399a7fd729397e66cb3579c9c79b3215c35dd

>---------------------------------------------------------------

commit 20a399a7fd729397e66cb3579c9c79b3215c35dd
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date:   Fri Nov 8 16:01:42 2019 +0100

    temporary local shellesc.sty with catcode fix


>---------------------------------------------------------------

20a399a7fd729397e66cb3579c9c79b3215c35dd
 supporttexmf/tex/latex/tools/shellesc.sty | 132 ++++++++++++++++++++++++++++++
 1 file changed, 132 insertions(+)

diff --git a/supporttexmf/tex/latex/tools/shellesc.sty b/supporttexmf/tex/latex/tools/shellesc.sty
new file mode 100644
index 0000000..1dcf20a
--- /dev/null
+++ b/supporttexmf/tex/latex/tools/shellesc.sty
@@ -0,0 +1,132 @@
+%%
+%% This is file `shellesc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% shellesc.dtx  (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%%
+%% Copyright (C) 1993-2019
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It 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
+%%    https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% Source File: shellesc.dtx
+%% Copyright (C) 2015-2019
+%%
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file may be distributed under the terms of the LPPL.
+%% See README for details.
+\ifx\ProvidesPackage\undefined
+\def\next#1#2[#3]{\wlog{#2 #3}}
+\ifx\PackageInfo\undefined\def\PackageInfo#1#2{\wlog{#1: #2}}\fi
+\ifx\PackageWarning\undefined\def\PackageWarning#1#2{\wlog{#1: #2}}\fi
+\expandafter\next\fi
+\ProvidesPackage{shellesc}
+       [2019/10/17 v1.0b unified shell escape interface for LaTeX + !!!!!catcode fix!!!!!]
+\chardef\shellesc at quotecat\catcode`\"
+\chardef\shellesc at underscorecat\catcode`\_
+\@makeother\"
+\@makeother\_
+\chardef\ShellEscapeStatus
+  \ifx\pdfshellescape\@undefined
+    \ifx\shellescape\@undefined
+      \ifx\directlua\@undefined
+        \z@
+      \else
+        \directlua{%
+          tex.sprint((status.shell_escape or os.execute()) .. " ")}
+      \fi
+    \else
+      \shellescape
+    \fi
+  \else
+    \pdfshellescape
+  \fi
+\ifcase\ShellEscapeStatus
+  \PackageWarning{shellesc}{Shell escape disabled}
+\or
+  \PackageInfo   {shellesc}{Unrestricted shell escape enabled}
+\else
+  \PackageInfo   {shellesc}{Restricted shell escape enabled}
+\fi
+\ifx\lastsavedimageresourcepages\@undefined
+  \protected\def\ShellEscape{\immediate\write18 }
+\else
+  \protected\def\ShellEscape{\directlua\ShellEscape at Lua}
+\fi
+\ifx\lastsavedimageresourcepages\@undefined
+  \protected\def\DelayedShellEscape{\relax\write18 }
+\else
+  \protected\def\DelayedShellEscape{\latelua\ShellEscape at Lua}
+\fi
+\ifx\directlua\@undefined\else
+\protected\def\ShellEscape at Lua#1{{%
+local status, msg = os.execute("\luaescapestring{#1}")%
+if status == nil then
+    texio.write_nl("log",%
+      "runsystem(" .. "\luaescapestring{#1}"%
+       .. ")...(" .. msg .. ")\string\n")
+  elseif status == 0 then
+    texio.write_nl("log",%
+      "runsystem(" .. "\luaescapestring{#1}"%
+      .. ")...executed\string\n")
+  else
+    texio.write_nl("log",%
+      "runsystem(" .. "\luaescapestring{#1}"%
+       .. ")...failed " .. (msg or "") .. "\string\n")
+  end
+}}
+\fi
+\ifx\lastsavedimageresourcepages\@undefined
+ \catcode`\"\shellesc at quotecat
+ \catcode`\_\shellesc at underscorecat
+ \expandafter\endinput
+\fi
+\directlua{%
+shellesc = shellesc or {}
+local function write_or_execute()
+  local s = token.scan_int()
+  if (s==18) then
+     tex.sprint(\the\numexpr\catcodetable at atletter\relax,
+                "\string\\ShellEscape ")
+  else
+     tex.sprint(\the\numexpr\catcodetable at atletter\relax,
+                "\string\\shellesc at write " .. s)
+  end
+end
+shellesc.write_or_execute=write_or_execute
+}
+\let\shellesc at write\write
+\protected\def\write{\directlua{shellesc.write_or_execute()}}
+\catcode`\"\shellesc at quotecat
+\catcode`\_\shellesc at underscorecat
+\endinput
+%%
+%% End of file `shellesc.sty'.





More information about the latex3-commits mailing list