[latex3-commits] [git/LaTeX3-latex3-latex2e] options: Add tests and correct some issues as a result (03134844)
Joseph Wright
joseph.wright at morningstar2.co.uk
Wed Jan 12 18:27:10 CET 2022
Repository : https://github.com/latex3/latex2e
On branch : options
Link : https://github.com/latex3/latex2e/commit/0313484468abf76226a9643351d4d31e5baba93b
>---------------------------------------------------------------
commit 0313484468abf76226a9643351d4d31e5baba93b
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Wed Dec 1 13:20:09 2021 +0000
Add tests and correct some issues as a result
Not sure about the msg from \SetKeysOptions:
formally, it takes the family not the package name.
>---------------------------------------------------------------
0313484468abf76226a9643351d4d31e5baba93b
base/ltkeys.dtx | 15 ++++++-------
base/testfiles/github-0710.lvt | 36 +++++++++++++++++++++++++++++++
base/testfiles/github-0710.tlg | 48 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 91 insertions(+), 8 deletions(-)
diff --git a/base/ltkeys.dtx b/base/ltkeys.dtx
index c5043d0f..2003d352 100644
--- a/base/ltkeys.dtx
+++ b/base/ltkeys.dtx
@@ -390,13 +390,10 @@
{
\clist_map_inline:Nn \l_@@_tmpa_tl
{
- \keys_set:nn {#1}
+ \keys_define:nn {#1}
{
##1 .code:n =
- \prop_get:NnNTF \l_@@_options_module_prop {#1} \l_@@_tmpa_tl
- { \exp_args:NV \@@_options_loaded:nn \l_@@_tmpa_tl }
- { \@@_options_loaded:nn {#1} }
- {##1}
+ \@@_options_loaded:nn {#1} {##1}
}
}
}
@@ -404,9 +401,11 @@
\cs_new_protected:Npn \@@_options_loaded:nn #1#2
{
\bool_if:NTF \l_@@_options_loading_bool
- { \msg_warning:nnn { keys } { load-option-ignored } }
- { \msg_error:nnnn { keys } { load-only } }
- {#1} {#2}
+ {
+ \msg_warning:nnxx { keys } { load-option-ignored }
+ { \use:c { opt at fam@\@currname.\@currext } } {#2}
+ }
+ { \msg_error:nnnn { keys } { load-only } {#1} {#2} }
}
\msg_new:nnn { keys } { load-option-ignored }
{ Package~"#1"~has~already~been~loaded:~ignoring~load-time~option~"#2". }
diff --git a/base/testfiles/github-0710.lvt b/base/testfiles/github-0710.lvt
new file mode 100644
index 00000000..88c96d4b
--- /dev/null
+++ b/base/testfiles/github-0710.lvt
@@ -0,0 +1,36 @@
+\documentclass{article}
+\begin{filecontents}{mypkg.sty}
+\DeclareKeysOptions{
+ load-option-A .store = \my at A ,
+ load-option-A .usage = load ,
+ load-option-B .store = \my at B ,
+ load-option-B .usage = load ,
+ general-option-C .store = \my at C
+}
+\ProcessKeysOptions
+\newcommand\mypkgtest{%
+ \begingroup
+ \edef\x{\my at A:\my at B:\my at C}%
+ \show\x
+ \endgroup
+}
+\end{filecontents}
+\input{test2e}
+
+\START
+\AUTHOR{Joseph Wright}
+
+\usepackage[load-option-A = 111]{mypkg} % 1
+\mypkgtest
+\usepackage[load-option-A = 222]{mypkg} % 2
+\mypkgtest
+\usepackage[load-option-A = 333, general-option-C = 333]{mypkg} % 3
+\mypkgtest
+\usepackage{mypkg} % 4
+\mypkgtest
+\usepackage[load-option-B = 555]{mypkg} % 5
+\mypkgtest
+\SetKeysOptions[mypkg]{load-option-A = 666} % 6
+\mypkgtest
+
+\END
\ No newline at end of file
diff --git a/base/testfiles/github-0710.tlg b/base/testfiles/github-0710.tlg
new file mode 100644
index 00000000..b205d3b3
--- /dev/null
+++ b/base/testfiles/github-0710.tlg
@@ -0,0 +1,48 @@
+This is a generated file for the LaTeX2e validation system.
+Don't change this file in any respect.
+Author: Joseph Wright
+(mypkg.sty)
+> \x=macro:
+->111::.
+\mypkgtest ...f \x {\my at A :\my at B :\my at C }\show \x
+ \endgroup
+l. ...\mypkgtest
+LaTeX3 Warning: Package "mypkg" has already been loaded: ignoring load-time
+(LaTeX3) option "load-option-A".
+> \x=macro:
+->111::.
+\mypkgtest ...f \x {\my at A :\my at B :\my at C }\show \x
+ \endgroup
+l. ...\mypkgtest
+LaTeX3 Warning: Package "mypkg" has already been loaded: ignoring load-time
+(LaTeX3) option "load-option-A".
+> \x=macro:
+->111::333.
+\mypkgtest ...f \x {\my at A :\my at B :\my at C }\show \x
+ \endgroup
+l. ...\mypkgtest
+> \x=macro:
+->111::333.
+\mypkgtest ...f \x {\my at A :\my at B :\my at C }\show \x
+ \endgroup
+l. ...\mypkgtest
+LaTeX3 Warning: Package "mypkg" has already been loaded: ignoring load-time
+(LaTeX3) option "load-option-B".
+> \x=macro:
+->111::333.
+\mypkgtest ...f \x {\my at A :\my at B :\my at C }\show \x
+ \endgroup
+l. ...\mypkgtest
+! LaTeX3 Error: Key "load-option-A" may only be used in the during loading of
+(LaTeX3) package "mypkg".
+For immediate help type H <return>.
+ ...
+l. ...\SetKeysOptions[mypkg]{load-option-A = 666}
+ % 6
+LaTeX was asked to set a key called "load-option-A", but this is only allowed
+in the optional argument when loading package "mypkg".
+> \x=macro:
+->111::333.
+\mypkgtest ...f \x {\my at A :\my at B :\my at C }\show \x
+ \endgroup
+l. ...\mypkgtest
More information about the latex3-commits
mailing list.