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