[latex3-commits] [git/LaTeX3-latex3-latex3] master: Add \cctab_select:N (f8e78e39f)

Joseph Wright joseph.wright at morningstar2.co.uk
Tue May 19 14:19:49 CEST 2020


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/f8e78e39f5aee4f23ba102082c805bbf13b77d5d

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

commit f8e78e39f5aee4f23ba102082c805bbf13b77d5d
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Tue May 19 13:19:49 2020 +0100

    Add \cctab_select:N


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

f8e78e39f5aee4f23ba102082c805bbf13b77d5d
 l3experimental/CHANGELOG.md                     |  3 +++
 l3experimental/l3cctab/l3cctab.dtx              | 27 +++++++++++++++++++++++++
 l3experimental/l3cctab/testfiles/m3cctab001.lvt | 17 ++++++++++++++++
 l3experimental/l3cctab/testfiles/m3cctab001.tlg |  5 +++++
 4 files changed, 52 insertions(+)

diff --git a/l3experimental/CHANGELOG.md b/l3experimental/CHANGELOG.md
index f457a0069..465d4ddc4 100644
--- a/l3experimental/CHANGELOG.md
+++ b/l3experimental/CHANGELOG.md
@@ -7,6 +7,9 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Added
+- `\cctab_select:N`
+
 ## [2020-05-18]
 
 ### Added
diff --git a/l3experimental/l3cctab/l3cctab.dtx b/l3experimental/l3cctab/l3cctab.dtx
index 51bbf90bf..cbb32d7d3 100644
--- a/l3experimental/l3cctab/l3cctab.dtx
+++ b/l3experimental/l3cctab/l3cctab.dtx
@@ -114,6 +114,14 @@
 %   the matching \cs{cctab_begin:N} was used.
 % \end{function}
 %
+% \begin{function}[added = 2020-05-19]{\cctab_select:N}
+%   \begin{syntax}
+%     \cs{cctab_select:N}\meta{category code table}
+%   \end{syntax}
+%   Selects the \meta{category code table} for the scope of the current
+%   group.
+% \end{function}
+%
 % \subsection{Category code table conditionals}
 %
 % \begin{function}[pTF]{\cctab_if_exist:N,\cctab_if_exist:c}
@@ -403,6 +411,25 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\cctab_select:N}
+% \begin{macro}{\@@_end_fast:}
+%   Select a catcode table within a group.
+%    \begin{macrocode}
+\cs_new_protected:Npn \cctab_select:N #1
+  {
+    \@@_chk_if_valid:NT #1
+      {
+        \@@_begin:N #1
+        \group_insert_after:N \@@_end_fast:
+      }
+  }
+\cs_generate_variant:Nn \cctab_select:N { c }
+\cs_new_protected:Npn \@@_end_fast:
+  { \int_gsub:Nn \g_@@_stack_int { 2 } }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \begin{macro}{\cctab_if_exist:N,\cctab_if_exist:c}
 %   Checks whether a \meta{cctab~var} is defined.
 %    \begin{macrocode}
diff --git a/l3experimental/l3cctab/testfiles/m3cctab001.lvt b/l3experimental/l3cctab/testfiles/m3cctab001.lvt
index 9e9c8cf35..7a36358f7 100644
--- a/l3experimental/l3cctab/testfiles/m3cctab001.lvt
+++ b/l3experimental/l3cctab/testfiles/m3cctab001.lvt
@@ -102,6 +102,23 @@
       { \TYPE { OK } } { \TYPE { Sob~T_T } }
   }
 
+
+\TEST { cctab_select / document~in~str }
+  {
+    \group_begin:
+      \cctab_select:N \c_document_cctab
+      \SAVECATCODES \TESTintarrayA
+    \group_end:
+    %
+    \group_begin:
+      \cctab_select:N \c_str_cctab
+      \cctab_select:N \c_document_cctab
+        \SAVECATCODES \TESTintarrayB
+    \group_end:
+    \IntarrayIfEqTF \TESTintarrayA \TESTintarrayB
+      { \TYPE { OK } } { \TYPE { Sob~T_T } }
+  }
+
 \ExplSyntaxOff
 
 \END
diff --git a/l3experimental/l3cctab/testfiles/m3cctab001.tlg b/l3experimental/l3cctab/testfiles/m3cctab001.tlg
index 394de4fe7..926827550 100644
--- a/l3experimental/l3cctab/testfiles/m3cctab001.tlg
+++ b/l3experimental/l3cctab/testfiles/m3cctab001.tlg
@@ -21,3 +21,8 @@ TEST 4: cctab_begin/document in str
 ============================================================
 OK
 ============================================================
+============================================================
+TEST 5: cctab_select/document in str
+============================================================
+OK
+============================================================





More information about the latex3-commits mailing list.