Bug Tracker 
| ID | 303🔗 |
|---|---|
| Date: | 2025-04-25 12:50:16 |
| Last update: | 2025-04-25 14:13:20 |
| Status | Closed (Fixed) |
| Category | datatool |
| Version | 3.4 |
| Summary | Use of arguments inconsistent with expl3 language specification |
Sign in to subscribe to notifications about this report.
Description
I am writing as a developer of expltools [Link], which includes the static analysis tool explcheck for the expl3 programming language.In February, we launched a public website [Link] that aggregates all issues detected in the current TeX Live distribution by explcheck. According to our report, datatool currently triggers 1 error "E300 (Unexpected function call argument)" [Link] in the following invocation on line 2603 of file databib.sty:
\regex_extract_once:NnNF \c_databib_year_suffix_regex
\l__datatool_tmp_seq
{
\seq_get_left:NN
\l__datatool_tmp_seq
\l__databib_year_tl
}
{
\tl_clear:N \l__databib_year_tl
}
Specifically, the issue is with the N-type argument { \seq_get_left:NN [...] }, because an N-type argument should consist of exactly one (unbraced) token, yet it consists of a braced set of three tokens.It's not entirely clear to me what is being accomplished but the documentation of \regex_extract_once:NnNF in interface3.pdf says the arguments should be as follows: ⟨regex⟩ {⟨token list⟩} ⟨seq var⟩ {⟨false code⟩} Given that \l__datatool_tmp_seq appears as the second argument, I wonder if perhaps the second and third arguments have been exchanged by a mistake here?
MWE
Download (15B)
not applicable
Evaluation
It should be
\cs_new:Nn \__databib_get_year_suffix:n
{
\regex_extract_once:NnNTF \c_databib_year_suffix_regex
{ #1 }
\l__datatool_tmp_seq
{
\seq_get_left:NN
\l__datatool_tmp_seq
\l__databib_year_tl
}
{
\tl_clear:N \l__databib_year_tl
}
}
I'll get it fixed. Thank you.
Update: fixed in v3.4.1
Comments
0 comments.
Add Comment
Page permalink: https://www.dickimaw-books.com/bugtracker.php?key=303
