texlive[74284] Master/texmf-dist: expltools (25feb25)
commits+karl at tug.org
commits+karl at tug.org
Tue Feb 25 21:42:39 CET 2025
Revision: 74284
https://tug.org/svn/texlive?view=revision&revision=74284
Author: karl
Date: 2025-02-25 21:42:39 +0100 (Tue, 25 Feb 2025)
Log Message:
-----------
expltools (25feb25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/support/expltools/CHANGES.md
trunk/Master/texmf-dist/doc/support/expltools/explcheck-config.toml
trunk/Master/texmf-dist/doc/support/expltools/project-proposal.pdf
trunk/Master/texmf-dist/doc/support/expltools/warnings-and-errors.pdf
trunk/Master/texmf-dist/scripts/expltools/explcheck-cli.lua
trunk/Master/texmf-dist/scripts/expltools/explcheck-config.lua
trunk/Master/texmf-dist/scripts/expltools/explcheck-obsolete.lua
trunk/Master/texmf-dist/scripts/expltools/explcheck-preprocessing.lua
Modified: trunk/Master/texmf-dist/doc/support/expltools/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/support/expltools/CHANGES.md 2025-02-25 10:47:28 UTC (rev 74283)
+++ trunk/Master/texmf-dist/doc/support/expltools/CHANGES.md 2025-02-25 20:42:39 UTC (rev 74284)
@@ -1,5 +1,31 @@
# Changes
+## expltools 2025-02-25
+
+### explcheck v0.7.1
+
+#### Development
+
+- Add support for config file sections `[package.…]` for specifying
+ package-specific configuration. (#32, #57, #62, #63)
+
+ For example, here is how you might configure the file `expl3-code.tex` from
+ the package `l3kernel` in your configuration file `.explcheckrc`:
+
+ ``` toml
+ [package.l3kernel]
+ expl3_detection_strategy = "always"
+ ignored_issues = ["w200", "w202", "e208", "e209"]
+ max_line_length = 140
+ ```
+
+- Add value `"never"` for the command-line option `--expl3-detection-strategy`
+ and the Lua option `expl3_detection_strategy`. (#63)
+
+- Pre-configure all remaining expl3 files from current TeX Live with more than
+ 1 error in <https://koppor.github.io/explcheck-issues/>. (#32, #57, #62, #63,
+ 4bf5597e, d074dbef)
+
## expltools 2025-02-24
### explcheck v0.7.0
@@ -15,12 +41,13 @@
- Add support for config file sections `[filename."…"]` for specifying
file-specific configuration. (#32, #57, #62)
- For example, here is how you might configure a file `expl3-code.tex`:
+ For example, here is how you might configure a file `expl3-code.tex` from
+ your configuration file `.explcheckrc`:
``` toml
[filename."expl3-code.tex"]
expl3_detection_strategy = "always"
- ignored_issues = ["w200", "w202", "e209"]
+ ignored_issues = ["w200", "w202", "e208", "e209"]
max_line_length = 140
```
@@ -77,7 +104,8 @@
- Exclude "weird" argument specifiers (`:w`) from warning W200. (reported by
@muzimuzhi in #25, fixed in #45)
-- Remove error E203. (reported by @koppor in #53, fixed in #54)
+- Remove error E203 (Removed control sequences). (reported by @koppor in #53,
+ fixed in #54)
- Fix two instances of explcheck crashing while processing input files.
(reported by @koppor in #31, fixed in #52 and #59)
Modified: trunk/Master/texmf-dist/doc/support/expltools/explcheck-config.toml
===================================================================
--- trunk/Master/texmf-dist/doc/support/expltools/explcheck-config.toml 2025-02-25 10:47:28 UTC (rev 74283)
+++ trunk/Master/texmf-dist/doc/support/expltools/explcheck-config.toml 2025-02-25 20:42:39 UTC (rev 74284)
@@ -7,9 +7,9 @@
porcelain = false
warnings_are_errors = false
-[filename."expl3-code.tex"]
+[package.l3kernel]
expl3_detection_strategy = "always"
-ignored_issues = ["w200", "w202", "e209"]
+ignored_issues = ["e208", "e209"]
max_line_length = 140
[filename."tex4ht.sty"]
@@ -18,25 +18,19 @@
[filename."nicematrix.sty"]
expl3_detection_strategy = "always"
-[filename."xintexpr.sty"]
+[package.xint]
expl3_detection_strategy = "precision"
-[filename."xinttools.sty"]
-expl3_detection_strategy = "precision"
-
[filename."xCJK2uni.sty"]
expl3_detection_strategy = "always"
ignored_issues = ["e209"]
-[filename."stex.sty"]
-expl3_detection_strategy = "always"
-
[filename."spath3.sty"]
expl3_detection_strategy = "always"
-[filename."xparse-generic.tex"]
+[package.xparse]
expl3_detection_strategy = "always"
-ignored_issues = ["e209", "w200"]
+ignored_issues = ["e209"]
max_line_length = 90
[filename."functional.sty"]
@@ -63,54 +57,186 @@
expl3_detection_strategy = "always"
max_line_length = 100
-[filename."problem.sty"]
+[filename."interlinear.sty"]
+expl3_detection_strategy = "precision"
+
+[filename."skrapport.cls"]
expl3_detection_strategy = "always"
+max_line_length = 150
+
+[filename."namedef.sty"]
+expl3_detection_strategy = "always"
+
+[filename."tikzlibrarytikzmark.code.tex"]
+expl3_detection_strategy = "always"
+
+[package.ctex]
+expl3_detection_strategy = "always"
+max_line_length = 100
+
+[filename."knowledge.sty"]
+ignored_issues = ["e201"]
+
+[filename."grading-scheme.sty"]
+ignored_issues = ["e201"]
+
+[filename."scontents.tex"]
+expl3_detection_strategy = "always"
max_line_length = 90
-[filename."xunicode-addon.sty"]
+[package.stex]
expl3_detection_strategy = "always"
+max_line_length = 110
+
+[filename."qrbill.sty"]
+expl3_detection_strategy = "always"
+max_line_length = 180
+
+[filename."cleveref-forward.sty"]
+expl3_detection_strategy = "always"
+max_line_length = 160
+
+[filename."latexrelease.sty"]
+expl3_detection_strategy = "never"
+
+[package.mathtools]
+expl3_detection_strategy = "precision"
+
+[filename."lltjp-unicode-math.sty"]
+expl3_detection_strategy = "always"
+max_line_length = 90
+
+[filename."unravel.sty"]
+expl3_detection_strategy = "always"
max_line_length = 100
+ignored_issues = ["e209"]
-[filename."interlinear.sty"]
+[filename."polexprcore.tex"]
expl3_detection_strategy = "precision"
-[filename."skrapport.cls"]
+[filename."timechart.sty"]
+ignored_issues = ["e201"]
+
+[filename."csvsimple-l3.sty"]
expl3_detection_strategy = "always"
+max_line_length = 110
+
+[package.unicode-math]
+ignored_issues = ["e209"]
+max_line_length = 130
+
+[package.fontspec]
+ignored_issues = ["e201"]
+
+[filename."letgut.cls"]
+ignored_issues = ["e209"]
+
+[filename."interchar.sty"]
+expl3_detection_strategy = "always"
+max_line_length = 90
+
+[filename."bangla.sty"]
+ignored_issues = ["e209"]
+
+[filename."simurgh-empheq.sty"]
+expl3_detection_strategy = "precision"
+
+[filename."exam-zh.cls"]
+ignored_issues = ["e209"]
max_line_length = 150
-[filename."namedef.sty"]
+[filename."lwarp-statistics.sty"]
expl3_detection_strategy = "always"
-[filename."tikzlibrarytikzmark.code.tex"]
+[filename."platexrelease.sty"]
expl3_detection_strategy = "always"
+max_line_length = 90
-[filename."ctexart.cls"]
+[filename."luamml-patches-mathtools.sty"]
+expl3_detection_strategy = "never"
+
+[package.xecjk]
expl3_detection_strategy = "always"
+ignored_issues = ["e209"]
max_line_length = 100
-[filename."ctexrep.cls"]
+[filename."luaprogtable.sty"]
expl3_detection_strategy = "always"
+max_line_length = 110
+
+[filename."flexisym.sty"]
+ignored_issues = ["e209"]
+max_line_length = 110
+
+[filename."fduthesis.cls"]
+ignored_issues = ["e209"]
max_line_length = 100
-[filename."ctexbook.cls"]
+[filename."nwafuthesis.cls"]
+ignored_issues = ["e209"]
+max_line_length = 130
+
+[filename."zxjatype.sty"]
+ignored_issues = ["e209"]
+max_line_length = 90
+
+[filename."cfntinst.sty"]
+ignored_issues = ["e209"]
+
+[filename."xfntinst.sty"]
+ignored_issues = ["e209"]
+
+[filename."fontinst.sty"]
+ignored_issues = ["e209"]
+
+[filename."beamerouterthemeUR.sty"]
expl3_detection_strategy = "always"
+max_line_length = 140
+
+[filename."denisbdoc.sty"]
+expl3_detection_strategy = "always"
+
+[package.whatsnote]
+expl3_detection_strategy = "always"
+
+[filename."robust-externalize.sty"]
+expl3_detection_strategy = "always"
+
+[filename."multicolrule.sty"]
+expl3_detection_strategy = "always"
max_line_length = 100
-[filename."ctexpatch.sty"]
+[package.minimalist]
expl3_detection_strategy = "always"
+
+[filename."xtemplate.sty"]
+expl3_detection_strategy = "always"
max_line_length = 100
-[filename."ctexbeamer.cls"]
+[package.ocgx2]
expl3_detection_strategy = "always"
max_line_length = 100
-[filename."grading-scheme.sty"]
-ignored_issues = ["e201"]
+[package.tuda-ci]
+expl3_detection_strategy = "always"
-[filename."scontents.tex"]
+[filename."xob-dotemph.sty"]
+ignored_issues = ["e209"]
+
+[package.media9]
expl3_detection_strategy = "always"
-max_line_length = 90
+max_line_length = 140
-[filename."hwexam.sty"]
+[filename."nwejm.cls"]
expl3_detection_strategy = "always"
+
+[package.hduthesis]
+expl3_detection_strategy = "always"
+max_line_length = 120
+
+[filename."letterswitharrows.sty"]
+expl3_detection_strategy = "always"
max_line_length = 110
+
+[filename."ufrgscca.cls"]
+expl3_detection_strategy = "always"
Modified: trunk/Master/texmf-dist/doc/support/expltools/project-proposal.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/support/expltools/warnings-and-errors.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/scripts/expltools/explcheck-cli.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/expltools/explcheck-cli.lua 2025-02-25 10:47:28 UTC (rev 74283)
+++ trunk/Master/texmf-dist/scripts/expltools/explcheck-cli.lua 2025-02-25 20:42:39 UTC (rev 74284)
@@ -137,8 +137,9 @@
"Options:\n\n"
.. "\t--error-format=FORMAT The Vim's quickfix errorformat used for the output with --porcelain enabled.\n"
.. "\t The default format is FORMAT=\"" .. get_option("error_format") .. "\".\n\n"
- .. "\t--expl3-detection-strategy={always|precision|recall|auto}\n\n"
+ .. "\t--expl3-detection-strategy={never|always|precision|recall|auto}\n\n"
.. "\t The strategy for detecting expl3 parts of the input files:\n\n"
+ .. '\t - "never": Assume that no part of the input files is in expl3.\n'
.. '\t - "always": Assume that the whole input files are in expl3.\n'
.. '\t - "precision", "recall", and "auto": Analyze standard delimiters such as \n'
.. '\t \\ExplSyntaxOn and Off. If no standard delimiters exist, assume either that:\n'
@@ -163,7 +164,7 @@
end
local function print_version()
- print("explcheck (expltools 2025-02-24) v0.7.0")
+ print("explcheck (expltools 2025-02-25) v0.7.1")
print("Copyright (c) 2024-2025 Vít Starý Novotný")
print("Licenses: LPPL 1.3 or later, GNU GPL v2 or later")
end
Modified: trunk/Master/texmf-dist/scripts/expltools/explcheck-config.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/expltools/explcheck-config.lua 2025-02-25 10:47:28 UTC (rev 74283)
+++ trunk/Master/texmf-dist/scripts/expltools/explcheck-config.lua 2025-02-25 20:42:39 UTC (rev 74284)
@@ -30,11 +30,16 @@
-- Otherwise, try the user-defined configuration first, if it exists, and then the default configuration.
for _, config in ipairs({user_config, default_config}) do
if pathname ~= nil then
- -- If a a pathname is provided and the current configuration specifies the option for the provided filename, use it.
+ -- If a pathname is provided and the current configuration specifies the option for this filename, use it.
local filename = utils.get_basename(pathname)
if config["filename"] and config["filename"][filename] ~= nil and config["filename"][filename][key] ~= nil then
return config["filename"][filename][key]
end
+ -- If a pathname is provided and the current configuration specifies the option for this package, use it.
+ local package = utils.get_basename(utils.get_parent(pathname))
+ if config["package"] and config["package"][package] ~= nil and config["package"][package][key] ~= nil then
+ return config["package"][package][key]
+ end
end
-- If the current configuration specifies the option in the defaults, use it.
for _, section in ipairs({"defaults", "options"}) do -- TODO: Remove `[options]` in v1.0.0.
Modified: trunk/Master/texmf-dist/scripts/expltools/explcheck-obsolete.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/expltools/explcheck-obsolete.lua 2025-02-25 10:47:28 UTC (rev 74283)
+++ trunk/Master/texmf-dist/scripts/expltools/explcheck-obsolete.lua 2025-02-25 20:42:39 UTC (rev 74284)
@@ -9,7 +9,7 @@
-- luacheck: push no max line length
local obsolete = {}
-obsolete.deprecated_csname = (P("k") * (P("e") * (P("y") * (P("s") * (P("_") * (P("s") * (P("e") * (P("t") * (P("_") * (P("f") * (P("i") * (P("l") * (P("t") * (P("e") * (P("r") * (P(":") * (P("n") * (P("n") * (P("o") * (P("nN") + P("N")) + P("v") * (P("nN") + P("N")) + P("V") * (P("nN") + P("N")) + P("n") * (P("nN") + P("N")) + P("n") + P("V") + P("v") + P("o"))))))))))))))))))) + P("l") * (P("_") * (P("k") * (P("e") * (P("y") * (P("s") * (P("_") * (P("key_tl") + P("path_tl")))))) + P("t") * (P("e") * (P("x") * (P("t") * (P("_") * (P("accents_tl") + P("letterlike_tl")))))))) + P("m") * (P("s") * (P("g") * (P("_") * (P("g") * (P("s") * (P("e") * (P("t") * (P(":") * (P("n") * (P("n") * (P("nn") + P("n")))))))))))) + P("t") * (P("e") * (P("x") * (P("t") * (P("_") * (P("t") * (P("i") * (P("t") * (P("l") * (P("e") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("nn") + P("n"))))))))))))))) + P("l") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("c") * (P("n") * (P("TF") + P("F") + P("T")) + P("n")) + P("N") * (P("n") * (P("TF") + P("F") + P("T")) + P("n"))))))) + P("l") * (P("o") * (P("w") * (P("e") * (P("r") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("nn") + P("n")))))))))))) + P("m") * (P("i") * (P("x") * (P("e") * (P("d") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("nn") + P("n")))))))))))) + P("u") * (P("p") * (P("p") * (P("e") * (P("r") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("nn") + P("n")))))))))))) + P("b") * (P("u") * (P("i") * (P("l") * (P("d") * (P("_") * (P("clear:N") + P("g") * (P("clear:N") + P("et:NN"))))))))))) + P("s") * (P("t") * (P("r") * (P("_") * (P("l") * (P("o") * (P("w") * (P("e") * (P("r") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("f") + P("n")))))))))))) + P("declare_eight_bit_encoding:nnn") + P("u") * (P("p") * (P("p") * (P("e") * (P("r") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("f") + P("n")))))))))))) + P("f") * (P("o") * (P("l") * (P("d") * !
(P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("n") + P("V"))))))) + P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("n") + P("V"))))))))))))) + P("e") * (P("q") * (P("_") * (P("gset_map_x:NNn") + P("i") * (P("n") * (P("d") * (P("e") * (P("x") * (P("e") * (P("d") * (P("_") * (P("m") * (P("a") * (P("p") * (P("_") * (P("inline:Nn") + P("function:NN"))))))))))))) + P("set_map_x:NNn")))) + P("ys_load_deprecation:")) + P("p") * (P("d") * (P("f") * (P("_") * (P("o") * (P("b") * (P("j") * (P("e") * (P("c") * (P("t") * (P("_") * (P("w") * (P("r") * (P("i") * (P("t") * (P("e") * (P(":") * (P("n") * (P("n") + P("x")))))))) + P("new:nn"))))))))))) + P("e") * (P("e") * (P("k") * (P("_") * (P("c") * (P("a") * (P("t") * (P("c") * (P("o") * (P("d") * (P("e") * (P("_") * (P("ignore_spaces:N") + P("remove_ignore_spaces:N")))))))) + P("h") * (P("a") * (P("r") * (P("c") * (P("o") * (P("d") * (P("e") * (P("_") * (P("ignore_spaces:N") + P("remove_ignore_spaces:N")))))))))) + P("m") * (P("e") * (P("a") * (P("n") * (P("i") * (P("n") * (P("g") * (P("_") * (P("ignore_spaces:N") + P("remove_ignore_spaces:N"))))))))))))) + P("r") * (P("o") * (P("p") * (P("_") * (P("g") * (P("p") * (P("u") * (P("t") * (P("_") * (P("i") * (P("f") * (P("_") * (P("n") * (P("e") * (P("w") * (P(":") * (P("c") * (P("Vn") + P("n") * (P("n") + P("V"))) + P("N") * (P("Vn") + P("n") * (P("n") + P("V"))))))))))))))) + P("p") * (P("u") * (P("t") * (P("_") * (P("i") * (P("f") * (P("_") * (P("n") * (P("e") * (P("w") * (P(":") * (P("c") * (P("Vn") + P("n") * (P("n") + P("V"))) + P("N") * (P("Vn") + P("n") * (P("n") + P("V"))))))))))))))))))) + P("i") * (P("o") * (P("w") * (P("_") * (P("s") * (P("h") * (P("i") * (P("p") * (P("o") * (P("u") * (P("t") * (P("_") * (P("x") * (P(":") * (P("c") * (P("n") + P("x")) + P("N") * (P("n") + P("x")))))))))))))))) + P("c") * (P("s_argument_spec:N") + P("h") * (P("a") * (P("r") * (P("_") * (P("s") * (P("t") * (P("r") * (P("_") * (P("l") * (P("o") * (P("w") * (P("e") * (P("r") * (P("_case:N") + P("case:N")))))) + P("m!
ixed_case:N") + P("f") * (P("o") * (P("l") * (P("d") * (P("_case:N") + P("case:N"))))) + P("u") * (P("p") * (P("p") * (P("e") * (P("r") * (P("_case:N") + P("case:N")))))) + P("titlecase:N"))))) + P("l") * (P("o") * (P("w") * (P("e") * (P("r") * (P("_case:N") + P("case:N")))))) + P("mixed_case:N") + P("f") * (P("o") * (P("l") * (P("d") * (P("_case:N") + P("case:N"))))) + P("u") * (P("p") * (P("p") * (P("e") * (P("r") * (P("_case:N") + P("case:N")))))) + P("t") * (P("itlecase:N") + P("o") * (P("_") * (P("utfviii_bytes:n") + P("nfd:N")))))))))) * eof
+obsolete.deprecated_csname = (P("k") * (P("e") * (P("y") * (P("s") * (P("_") * (P("s") * (P("e") * (P("t") * (P("_") * (P("f") * (P("i") * (P("l") * (P("t") * (P("e") * (P("r") * (P(":") * (P("n") * (P("n") * (P("o") * (P("nN") + P("N")) + P("v") * (P("nN") + P("N")) + P("V") * (P("nN") + P("N")) + P("n") * (P("nN") + P("N")) + P("n") + P("V") + P("v") + P("o"))))))))))))))))))) + P("l") * (P("_") * (P("k") * (P("e") * (P("y") * (P("s") * (P("_") * (P("key_tl") + P("path_tl")))))) + P("t") * (P("e") * (P("x") * (P("t") * (P("_") * (P("accents_tl") + P("letterlike_tl")))))))) + P("i") * (P("o") * (P("w") * (P("_") * (P("s") * (P("h") * (P("i") * (P("p") * (P("o") * (P("u") * (P("t") * (P("_") * (P("x") * (P(":") * (P("c") * (P("n") + P("x")) + P("N") * (P("n") + P("x")))))))))))))))) + P("t") * (P("e") * (P("x") * (P("t") * (P("_") * (P("t") * (P("i") * (P("t") * (P("l") * (P("e") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("nn") + P("n"))))))))))))))) + P("l") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("c") * (P("n") * (P("TF") + P("F") + P("T")) + P("n")) + P("N") * (P("n") * (P("TF") + P("F") + P("T")) + P("n"))))))) + P("l") * (P("o") * (P("w") * (P("e") * (P("r") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("nn") + P("n")))))))))))) + P("b") * (P("u") * (P("i") * (P("l") * (P("d") * (P("_") * (P("clear:N") + P("g") * (P("clear:N") + P("et:NN")))))))) + P("m") * (P("i") * (P("x") * (P("e") * (P("d") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("nn") + P("n")))))))))))) + P("u") * (P("p") * (P("p") * (P("e") * (P("r") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("nn") + P("n"))))))))))))))) + P("s") * (P("t") * (P("r") * (P("_") * (P("l") * (P("o") * (P("w") * (P("e") * (P("r") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("f") + P("n")))))))))))) + P("declare_eight_bit_encoding:nnn") + P("u") * (P("p") * (P("p") * (P("e") * (P("r") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":")!
* (P("f") + P("n")))))))))))) + P("f") * (P("o") * (P("l") * (P("d") * (P("_") * (P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("n") + P("V"))))))) + P("c") * (P("a") * (P("s") * (P("e") * (P(":") * (P("n") + P("V"))))))))))))) + P("e") * (P("q") * (P("_") * (P("gset_map_x:NNn") + P("i") * (P("n") * (P("d") * (P("e") * (P("x") * (P("e") * (P("d") * (P("_") * (P("m") * (P("a") * (P("p") * (P("_") * (P("inline:Nn") + P("function:NN"))))))))))))) + P("set_map_x:NNn")))) + P("ys_load_deprecation:")) + P("p") * (P("d") * (P("f") * (P("_") * (P("o") * (P("b") * (P("j") * (P("e") * (P("c") * (P("t") * (P("_") * (P("w") * (P("r") * (P("i") * (P("t") * (P("e") * (P(":") * (P("n") * (P("n") + P("x")))))))) + P("new:nn"))))))))))) + P("e") * (P("e") * (P("k") * (P("_") * (P("c") * (P("a") * (P("t") * (P("c") * (P("o") * (P("d") * (P("e") * (P("_") * (P("ignore_spaces:N") + P("remove_ignore_spaces:N")))))))) + P("h") * (P("a") * (P("r") * (P("c") * (P("o") * (P("d") * (P("e") * (P("_") * (P("ignore_spaces:N") + P("remove_ignore_spaces:N")))))))))) + P("m") * (P("e") * (P("a") * (P("n") * (P("i") * (P("n") * (P("g") * (P("_") * (P("ignore_spaces:N") + P("remove_ignore_spaces:N"))))))))))))) + P("r") * (P("o") * (P("p") * (P("_") * (P("g") * (P("p") * (P("u") * (P("t") * (P("_") * (P("i") * (P("f") * (P("_") * (P("n") * (P("e") * (P("w") * (P(":") * (P("c") * (P("Vn") + P("n") * (P("n") + P("V"))) + P("N") * (P("Vn") + P("n") * (P("n") + P("V"))))))))))))))) + P("p") * (P("u") * (P("t") * (P("_") * (P("i") * (P("f") * (P("_") * (P("n") * (P("e") * (P("w") * (P(":") * (P("c") * (P("Vn") + P("n") * (P("n") + P("V"))) + P("N") * (P("Vn") + P("n") * (P("n") + P("V"))))))))))))))))))) + P("m") * (P("s") * (P("g") * (P("_") * (P("g") * (P("s") * (P("e") * (P("t") * (P(":") * (P("n") * (P("n") * (P("nn") + P("n")))))))))))) + P("c") * (P("s_argument_spec:N") + P("h") * (P("a") * (P("r") * (P("_") * (P("s") * (P("t") * (P("r") * (P("_") * (P("l") * (P("o") * (P("w") * (P("e") * (P("r") * (P("_case:N") + P("case:N")))))) + P("u!
") * (P("p") * (P("p") * (P("e") * (P("r") * (P("_case:N") + P("case:N")))))) + P("titlecase:N") + P("mixed_case:N") + P("f") * (P("o") * (P("l") * (P("d") * (P("_case:N") + P("case:N"))))))))) + P("l") * (P("o") * (P("w") * (P("e") * (P("r") * (P("_case:N") + P("case:N")))))) + P("u") * (P("p") * (P("p") * (P("e") * (P("r") * (P("_case:N") + P("case:N")))))) + P("t") * (P("itlecase:N") + P("o") * (P("_") * (P("utfviii_bytes:n") + P("nfd:N")))) + P("mixed_case:N") + P("f") * (P("o") * (P("l") * (P("d") * (P("_case:N") + P("case:N"))))))))))) * eof
-- luacheck: pop
return obsolete
Modified: trunk/Master/texmf-dist/scripts/expltools/explcheck-preprocessing.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/expltools/explcheck-preprocessing.lua 2025-02-25 10:47:28 UTC (rev 74283)
+++ trunk/Master/texmf-dist/scripts/expltools/explcheck-preprocessing.lua 2025-02-25 20:42:39 UTC (rev 74284)
@@ -113,7 +113,7 @@
local num_provides = 0
local Opener, Closer = parsers.fail, parsers.fail
local expl3_detection_strategy = get_option('expl3_detection_strategy', options, pathname)
- if expl3_detection_strategy ~= 'always' then
+ if expl3_detection_strategy ~= 'never' and expl3_detection_strategy ~= 'always' then
Opener = (
parsers.expl_syntax_on
+ unexpected_pattern(
@@ -189,7 +189,7 @@
-- If no expl3 parts were detected, decide whether no part or the whole input file is in expl3.
if(#expl_ranges == 0 and #content > 0) then
issues:ignore('e102')
- if expl3_detection_strategy == "precision" then
+ if expl3_detection_strategy == "precision" or expl3_detection_strategy == "never" then
-- Assume that no part of the input file is in expl3.
elseif expl3_detection_strategy == "recall" or expl3_detection_strategy == "always" then
-- Assume that the whole input file is in expl3.
More information about the tex-live-commits
mailing list.