From 9067afb3f8bce172638d12a6f926ab82547590e6 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 24 Aug 2018 22:18:02 +0000 Subject: l3 (24aug18) git-svn-id: svn://tug.org/texlive/trunk@48476 c570f23f-e606-0410-a88d-b1316a301751 --- .../latex/l3experimental/l3color/l3color.dtx | 8 +- .../latex/l3experimental/l3draw/l3draw-boxes.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-paths.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-points.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-scopes.dtx | 2 +- .../l3experimental/l3draw/l3draw-softpath.dtx | 2 +- .../latex/l3experimental/l3draw/l3draw-state.dtx | 2 +- .../l3experimental/l3draw/l3draw-transforms.dtx | 2 +- .../source/latex/l3experimental/l3draw/l3draw.dtx | 10 +- .../latex/l3experimental/l3str/l3str-convert.dtx | 14 +- .../latex/l3experimental/l3str/l3str-format.dtx | 4 +- .../l3experimental/l3sys-shell/l3sys-shell.dtx | 367 +++++++++++++++++++++ .../l3experimental/l3sys-shell/l3sys-shell.ins | 60 ++++ .../latex/l3experimental/xcoffins/xcoffins.dtx | 4 +- .../latex/l3experimental/xgalley/l3galley.dtx | 6 +- .../latex/l3experimental/xgalley/xgalley.dtx | 4 +- 16 files changed, 459 insertions(+), 32 deletions(-) create mode 100644 Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx create mode 100644 Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.ins (limited to 'Master/texmf-dist/source/latex/l3experimental') diff --git a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx index 83f70fbf56d..6e1938bcfd8 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % @@ -263,7 +263,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3color}{2018-05-12}{} +\ProvidesExplPackage{l3color}{2018-08-24}{} {L3 Experimental color support} % % \end{macrocode} @@ -359,7 +359,7 @@ \cs_generate_variant:Nn \@@_convert:nnN { VV } \cs_new_protected:Npn \@@_convert:nnnN #1#2#3#4 { - \str_if_eq_x:nnT {#1} { spot } % TO DO!!! + \str_if_eq:nnT {#1} { spot } % TO DO!!! { } \tl_set:Nx #4 { \use:c { @@_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \q_stop } @@ -551,7 +551,7 @@ \@@_extract:nNN {#2} \l_@@_next_model_tl \l_@@_next_value_tl \tl_if_eq:NNF \l_@@_model_tl \l_@@_next_model_tl { - \str_if_eq_x:nnT { \l_@@_model_tl } { gray } + \str_if_eq:VnT \l_@@_model_tl { gray } { \use:x { diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx index 57117b09282..8a2e9c76021 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx index 2e77000cff1..93b7f1ea6c4 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx index 0c0444a19a2..d5b6659f377 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx index aa2d19e1ae2..a5f8b3857b6 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx index 69ad970d71e..820f5d62140 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx index 844e488406d..949d50d2e93 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx index 17ac6474804..90f1e7b5b99 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx index aa43879c0d7..6b710ac893e 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx @@ -109,7 +109,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % @@ -320,7 +320,7 @@ % Scoping drawing elements is necessary to allowing nesting of subparts. % These features have specific use requirements: the preconditions must be % met. In particular, each type of drawing scope also constitutes a -% group (\cs{groupd_being:}/\cs{group_end:} pair): as such, they must be +% group (\cs{group_begin:}/\cs{group_end:} pair): as such, they must be % nested correctly. % % \begin{function}{\draw_scope_begin:, \draw_scope_end:} @@ -486,7 +486,7 @@ % error will occur. % \end{function} % -% \begin{function}[EXP]{\draw_point_intersect_circles:nnnn} +% \begin{function}[EXP]{\draw_point_intersect_circles:nnnnn} % \begin{syntax} % \cs{draw_point_intersect_circles:nnnnn} % \Arg{center1} \Arg{radius1} \Arg{center2} \Arg{radius2} \Arg{root} @@ -568,7 +568,7 @@ % \draw_path_lineto:n { 0cm , 2cm } % \draw_path_lineto:n { 3cm , 2cm } % \draw_path_curveto:nnn -% { 3cm , 0cm } { 2cm , 0cm } { 1cm , 0 cm } +% { 3cm , 0cm } { 2cm , 0cm } { 1cm , 0cm } % \draw_path_use_clear:n { stroke } % \draw_end: % \end{demo} @@ -1106,7 +1106,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3draw}{2018-05-12}{} +\ProvidesExplPackage{l3draw}{2018-08-24}{} {L3 Experimental core drawing support} % % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx index 7c8baf1855e..98879fbad52 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % @@ -234,7 +234,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3str-convert}{2018-05-12}{} +\ProvidesExplPackage{l3str-convert}{2018-08-24}{} {L3 Experimental string encoding conversions} % \end{macrocode} % @@ -1547,7 +1547,7 @@ { \@@_unescape_string_repeat:NNNNNN ?? } } { - \str_case_x:nnF {#2} + \str_case_e:nnF {#2} { { \c_backslash_str } { 134 } { ( } { 50 } @@ -2257,10 +2257,10 @@ } \cs_new_protected:Npn \@@_decode_utf_xvi_bom:NN #1#2 { - \str_if_eq_x:nnTF { #1#2 } { ^^ff ^^fe } + \str_if_eq:nnTF { #1#2 } { ^^ff ^^fe } { \@@_decode_utf_xvi:Nw 2 } { - \str_if_eq_x:nnTF { #1#2 } { ^^fe ^^ff } + \str_if_eq:nnTF { #1#2 } { ^^fe ^^ff } { \@@_decode_utf_xvi:Nw 1 } { \@@_decode_utf_xvi:Nw 1 #1#2 } } @@ -2548,10 +2548,10 @@ } \cs_new_protected:Npn \@@_decode_utf_xxxii_bom:NNNN #1#2#3#4 { - \str_if_eq_x:nnTF { #1#2#3#4 } { ^^ff ^^fe ^^00 ^^00 } + \str_if_eq:nnTF { #1#2#3#4 } { ^^ff ^^fe ^^00 ^^00 } { \@@_decode_utf_xxxii:Nw 2 } { - \str_if_eq_x:nnTF { #1#2#3#4 } { ^^00 ^^00 ^^fe ^^ff } + \str_if_eq:nnTF { #1#2#3#4 } { ^^00 ^^00 ^^fe ^^ff } { \@@_decode_utf_xxxii:Nw 1 } { \@@_decode_utf_xxxii:Nw 1 #1#2#3#4 } } diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx index 469af8f1eab..449179e0efc 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % @@ -162,7 +162,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3str-format}{2018-05-12}{} +\ProvidesExplPackage{l3str-format}{2018-08-24}{} {L3 Experimental string formatting} % % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx new file mode 100644 index 00000000000..bd65524c0f3 --- /dev/null +++ b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx @@ -0,0 +1,367 @@ +% \iffalse meta-comment +% +%% File: l3sys-shell.dtx Copyright(C) 2018 The LaTeX3 Project +% +% It may be distributed and/or modified under the conditions of the +% LaTeX Project Public License (LPPL), either version 1.3c of this +% license or (at your option) any later version. The latest version +% of this license is in the file +% +% http://www.latex-project.org/lppl.txt +% +% This file is part of the "l3experimental bundle" (The Work in LPPL) +% and all files in that bundle must be distributed together. +% +% ----------------------------------------------------------------------- +% +% The development version of the bundle can be found at +% +% https://github.com/latex3/latex3 +% +% for those people who are interested. +% +%<*driver|package> +\RequirePackage{expl3} +% +%<*driver> +\documentclass[full]{l3doc} +\begin{document} + \DocInput{\jobname.dtx} +\end{document} +% +% \fi +% +% \title{^^A +% The \pkg{l3sys-shell} package\\ System shell functions^^A +% } +% +% \author{^^A +% The \LaTeX3 Project\thanks +% {^^A +% E-mail: +% \href{mailto:latex-team@latex-project.org} +% {latex-team@latex-project.org}^^A +% }^^A +% } +% +% \date{Released 2018-08-24} +% +% \maketitle +% +% \begin{documentation} +% +% \begin{function}[added = 2018-07-28]{\sys_shell_cp:nn} +% \begin{syntax} +% \cs{sys_shell_cp:nn} \Arg{source} \Arg{dest} +% \end{syntax} +% Copies the files specified in the \meta{source} (which may include +% wildcards) to the \meta{dest}. The file paths should be specified using +% |/| as a path separator. Copying is \emph{not} recursive: only files at +% the path level given are copied. If unrestricted shell escape is not +% enabled, no action is attempted. +% \end{function} +% +% \begin{function}[added = 2018-07-27]{\sys_shell_mkdir:n} +% \begin{syntax} +% \cs{sys_shell_mkdir:n} \Arg{directory} +% \end{syntax} +% Creates the \meta{directory}, which should should be specified using |/| as +% a path separator. If unrestricted shell escape is not enabled, no action is +% attempted. +% \end{function} +% +% \begin{function}[added = 2018-07-28]{\sys_shell_mv:nn} +% \begin{syntax} +% \cs{sys_shell_mv:nn} \Arg{old} \Arg{new} +% \end{syntax} +% Moves the files from the \meta{old} to \meta{new} names/locations: the +% \meta{old} names may include wildcards. In both arguments, |/| should be +% used as the path separator. If unrestricted shell escape is not enabled, no +% action is attempted. +% \end{function} +% +% \begin{function}[added = 2018-07-27]{\sys_shell_rm:n} +% \begin{syntax} +% \cs{sys_shell_rm:n} \Arg{files} +% \end{syntax} +% Removes the \meta{files} (which may include wildcards). The file path should +% be specified using |/| as a path separator. If unrestricted shell escape is +% not enabled, no action is attempted. +% \end{function} +% +% \begin{function}[added = 2018-07-27]{\sys_shell_rmdir:n} +% \begin{syntax} +% \cs{sys_shell_rmdir:n} \Arg{directory} +% \end{syntax} +% Removes the \meta{directory}, which should should be specified using |/| as +% a path separator. If unrestricted shell escape is not enabled, no action is +% attempted. +% \end{function} +% +% \begin{function}[added = 2018-07-28]{\sys_shell_get_pwd:N} +% \begin{syntax} +% \cs{sys_shell_get_pwd:N} \meta{str var} +% \end{syntax} +% Sets the \meta{str var} to the present working directory (the output of +% |pwd| on Unix or |cd| on Windows). Note that on Windows this will contain +% string backslash chars (|\|). If unrestricted shell escape is not +% enabled, no action is taken. +% \end{function} +% +% \begin{function}[added = 2018-07-28]{\sys_shell_split_ls:nN} +% \begin{syntax} +% \cs{sys_shell_split_ls:N} \Arg{glob} \meta{seq} +% \end{syntax} +% Sets the \meta{seq var} to contain one entry per directory listing +% (equivalent to |ls -1| or |dir /b|) as specified by the \meta{glob}: the +% entries are strings. If unrestricted shell is not enabled, no action is +% taken. +% \end{function} +% +% \end{documentation} +% +% \begin{implementation} +% +% \section{\pkg{l3sys-shell} implementation} +% +% \begin{macrocode} +%<*initex|package> +% \end{macrocode} +% +% \begin{macrocode} +%<@@=sys> +% \end{macrocode} +% +% \begin{macrocode} +%<*package> +\ProvidesExplPackage{l3sys-shell}{2018-08-24}{} + {L3 Experimental system shell functions} +% +% \end{macrocode} +% +% \begin{macro}[EXP]{\@@_path_to_win:n} +% \begin{macro}[EXP]{\@@_path_to_win:w} +% \begin{macro}[EXP]{\@@_path_to_win:N} +% A simple expandable search-and-replace for providing Windows-style paths. +% \begin{macrocode} +\cs_new:Npn \@@_path_to_win:n #1 + { + \exp_after:wN \@@_path_to_win:w \tl_to_str:n {#1} ~ \q_stop + } +\cs_new:Npn \@@_path_to_win:w #1 ~ #2 \q_stop + { + \@@_path_to_win:N #1 \q_nil + \tl_if_empty:nF {#2} + { + \c_space_tl + \@@_path_to_win:w #2 \q_stop + } + } +\cs_new:Npn \@@_path_to_win:N #1 + { + \quark_if_nil:NF #1 + { + \token_if_eq_meaning:NNTF #1 / + { \c_backslash_str } + {#1} + \@@_path_to_win:N + } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\sys_shell_cp:nn} +% Simple Unix-like file copying: at some stage we may need a directory-only +% version as Windows and Unix have different requirements here. +% \begin{macrocode} +\cs_new_protected:Npx \sys_shell_cp:nn #1#2 + { + \sys_if_shell_unrestricted:T + { + \sys_shell_now:x + { + \sys_if_platform_unix:T + { + cp~-f~ \exp_not:N \tl_to_str:n {#1} ~ + \exp_not:N \tl_to_str:n {#2} + } + \sys_if_platform_windows:T + { + copy~/y~ \exp_not:N \@@_path_to_win:n {#1} ~ + \exp_not:N \@@_path_to_win:n {#2} + } + } + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sys_shell_mkdir:n} +% Windows (with the extensions) will automatically make directory trees but +% issues a warning if the directory already exists: avoid by including a +% test. +% \begin{macrocode} +\cs_new_protected:Npx \sys_shell_mkdir:n #1 + { + \sys_if_shell_unrestricted:T + { + \sys_shell_now:x + { + \sys_if_platform_unix:T + { mkdir~-p~ \exp_not:N \tl_to_str:n {#1} } + \sys_if_platform_windows:T + { + if~not~exist~ + \exp_not:N \@@_path_to_win:n { #1 / nul } ~ + mkdir~ \exp_not:N \@@_path_to_win:n {#1} + } + } + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sys_shell_mv:nn} +% On Windows we do not have a single |mv| operation, so copy-and-delete +% instead. +% \begin{macrocode} +\cs_new_protected:Npx \sys_shell_mv:nn #1#2 + { + \sys_if_shell_unrestricted:T + { + \sys_shell_now:x + { + \sys_if_platform_unix:T + { + mv~ \exp_not:N \tl_to_str:n {#1} ~ + \exp_not:N \tl_to_str:n {#2} + } + \sys_if_platform_windows:T + { + copy~/y~ \exp_not:N \@@_path_to_win:n {#1} ~ + \exp_not:N \@@_path_to_win:n {#2} + \token_to_str:N & \token_to_str:N & + del~/f~/q~\exp_not:N \@@_path_to_win:n {#1} + } + } + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sys_shell_rm:n} +% Deletion: obviously a big health warning here! +% \begin{macrocode} +\cs_new_protected:Npx \sys_shell_rm:n #1 + { + \sys_if_shell_unrestricted:T + { + \sys_shell_now:x + { + \sys_if_platform_unix:T + { rm~-f~ \exp_not:N \tl_to_str:n {#1} } + \sys_if_platform_windows:T + { del~/f~/q~ \exp_not:N \@@_path_to_win:n {#1} } + } + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sys_shell_rmdir:n} +% When removing a directory, we create it first as that avoids errors in +% the Windows case. +% \begin{macrocode} +\cs_new_protected:Npx \sys_shell_rmdir:n #1 + { + \sys_if_shell_unrestricted:T + { + \sys_shell_mkdir:n {#1} + \sys_shell_now:x + { + \sys_if_platform_unix:T + { rm~-rf~ \exp_not:N \tl_to_str:n {#1} } + \sys_if_platform_windows:T + { rmdir~/s~/q~ \exp_not:N \@@_path_to_win:n {#1} } + } + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{variable}{\l_@@_tmp_tl} +% Scratch space. +% \begin{macrocode} +\tl_new:N \l_@@_tmp_tl +% \end{macrocode} +% \end{variable} +% +% \begin{macro}{\sys_shell_get_pwd:N} +% Getting the path is easy: the main work is avoiding loosing any +% information. (This information can be obtained using the recorder file: +% that does not require shell escape. However, it's hard to see how it might +% be useful without the other file functions.) +% \begin{macrocode} +\cs_new_protected:Npx \sys_shell_get_pwd:N #1 + { + \sys_if_shell_unrestricted:T + { + \exp_not:N \tl_set_from_shell:Nnn \exp_not:N \l_@@_tmp_tl + { + \char_set_catcode_other:N \exp_not:N \\ + \char_set_catcode_other:N \exp_not:N \# + \char_set_catcode_other:N \exp_not:N \~ + \char_set_catcode_other:N \exp_not:N \% + \char_set_catcode_space:N \exp_not:N \ % + } + { + \sys_if_platform_unix:T { pwd } + \sys_if_platform_windows:T { cd } + } + \str_set:NV #1 \exp_not:N \l_@@_tmp_tl + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sys_shell_split_ls:nN} +% Getting a one-per-line listing is easy enough. We need to set +% \cs{ExplSyntaxOff} as that deals with the end-of-line character. After that, +% just a case of tidying up. The listing always ends in |^^M| so there is an +% extra entry to trim. +% \begin{macrocode} +\cs_new_protected:Npx \sys_shell_split_ls:nN #1#2 + { + \sys_if_shell_unrestricted:T + { + \exp_not:N \tl_set_from_shell:Nnn \exp_not:N \l_@@_tmp_tl + { + \ExplSyntaxOff + \char_set_catcode_other:N \exp_not:N \\ + \char_set_catcode_other:N \exp_not:N \# + \char_set_catcode_other:N \exp_not:N \~ + \char_set_catcode_other:N \exp_not:N \% + \char_set_catcode_other:n { 13 } + } + { + \sys_if_platform_unix:T { ls~-1~ #1 } + \sys_if_platform_windows:T { dir~/b~ #1 } + } + \str_set:NV \exp_not:N \l_@@_tmp_tl \exp_not:N \l_@@_tmp_tl + \seq_set_split:NnV #2 { \char_generate:nn { `\^^M } { 12 } } + \exp_not:N \l_@@_tmp_tl + \seq_pop_right:NN #2 \exp_not:N \l_@@_tmp_tl + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \end{implementation} +% +% \PrintIndex diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.ins b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.ins new file mode 100644 index 00000000000..33dbe46ea21 --- /dev/null +++ b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.ins @@ -0,0 +1,60 @@ +\iffalse meta-comment + +File l3sys-shell.ins Copyright (C) 2018 The LaTeX3 Project + +It may be distributed and/or modified under the conditions of the +LaTeX Project Public License (LPPL), either version 1.3c of this +license or (at your option) any later version. The latest version +of this license is in the file + + http://www.latex-project.org/lppl.txt + +This file is part of the "l3experimental bundle" (The Work in LPPL) +and all files in that bundle must be distributed together. + +----------------------------------------------------------------------- + +The development version of the bundle can be found at + + https://github.com/latex3/latex3 + +for those people who are interested. + +----------------------------------------------------------------------- + +Any modification of this file should ensure that the copyright and +license information is placed in the derived files. + +\fi + +\input l3docstrip.tex +\askforoverwritefalse + +\preamble + +Copyright (C) 2018 The LaTeX3 Project + +It may be distributed and/or modified under the conditions of +the LaTeX Project Public License (LPPL), either version 1.3c of +this license or (at your option) any later version. The latest +version of this license is in the file: + + http://www.latex-project.org/lppl.txt + +This file is part of the "l3experimental bundle" (The Work in LPPL) +and all files in that bundle must be distributed together. + +\endpreamble +% stop docstrip adding \endinput +\postamble +\endpostamble + +\keepsilent + +\generate{\file{l3sys-shell.sty} + { + \from{l3sys-shell.dtx}{package} + } +} + +\endbatchfile diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx index 07091341102..7bd2ba64fdc 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx @@ -54,7 +54,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % @@ -673,7 +673,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xcoffins}{2018-05-12}{} +\ProvidesExplPackage{xcoffins}{2018-08-24}{} {L3 Experimental design level coffins} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx index 12bde666f03..b3d17c383f7 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx @@ -59,7 +59,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % @@ -685,7 +685,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3galley}{2018-05-12}{} +\ProvidesExplPackage{l3galley}{2018-08-24}{} {L3 Experimental galley code} % % \end{macrocode} @@ -1173,7 +1173,7 @@ } \cs_new_protected:Npn \@@_par_aux:N #1 { - \str_if_eq_x:nnF {#1} { \s_@@_par_omit } + \str_if_eq:nnF {#1} { \s_@@_par_omit } { \@@_par_auxii: #1 diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx index 86d7b88b73f..6c1be8c964b 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx @@ -45,7 +45,7 @@ % }^^A % } % -% \date{Released 2018-05-12} +% \date{Released 2018-08-24} % % \maketitle % @@ -732,7 +732,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xgalley}{2018-05-12}{} +\ProvidesExplPackage{xgalley}{2018-08-24}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} % \end{macrocode} -- cgit v1.2.3