From 43b684ab018cff8b896e1cb8e3e5d6476c3bd427 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 3 Mar 2019 22:13:54 +0000 Subject: listofitems (3mar19) git-svn-id: svn://tug.org/texlive/trunk@50216 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/generic/listofitems/listofitems.tex | 41 ++++++++++++---------- 1 file changed, 23 insertions(+), 18 deletions(-) (limited to 'Master/texmf-dist/tex/generic/listofitems') diff --git a/Master/texmf-dist/tex/generic/listofitems/listofitems.tex b/Master/texmf-dist/tex/generic/listofitems/listofitems.tex index 27cd340aeef..644200a6f0a 100644 --- a/Master/texmf-dist/tex/generic/listofitems/listofitems.tex +++ b/Master/texmf-dist/tex/generic/listofitems/listofitems.tex @@ -4,9 +4,9 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \def\loiname {listofitems} % -\def\loiver {1.6} % +\def\loiver {1.61} % % % -\def\loidate {2018/11/01} % +\def\loidate {2019/03/03} % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % @@ -18,7 +18,7 @@ % Package URL: https://www.ctan.org/pkg/listofitems % % Bug tracker: https://framagit.org/unbonpetit/listofitems/issues % % Repository : https://framagit.org/unbonpetit/listofitems/tree/master -% Copyright : Christian Tellechea 2016-2018 % +% Copyright : Christian Tellechea 2016-2019 % % Licence : Released under the LaTeX Project Public License v1.3c % % or later, see http://www.latex-project.org/lppl.txt % % Files : 1) listofitems.tex % @@ -86,22 +86,20 @@ \long\def\loi_ifx#1{\ifx#1\expandafter\loi_first\else\expandafter\loi_second\fi} \long\def\loi_ifempty#1{\loi_exparg\loi_ifx{\expandafter\relax\detokenize{#1}\relax}} \def\loi_ifstar#1#2{\def\loi_ifstar_a{\loi_ifx{*\loi_nxttok}{\loi_first{#1}}{#2}}\futurelet\loi_nxttok\loi_ifstar_a} -\long\def\loi_ifprimitive#1{\edef\loi_tempa{\meaning#1}\edef\loi_tempb{\string#1}\loi_ifx{\loi_tempa\loi_tempb}} -\long\def\loi_ifcs#1{% #1 est-il une sc (n'étant pas une primitive) ? +\long\def\loi_ifstuffexpandable#1{\def\loi_tempa{#1}\loi_exparg{\def\loi_tempb}{#1}\expandafter\unless\loi_ifx{\loi_tempa\loi_tempb}} +\long\def\loi_ifcsexpandable#1{% #1 est-il constitué d'une sc _développable_ ? \loi_ifempty{#1} {\loi_second } {\loi_ifspacefirst{#1} - \loi_second% si espace en 1er, faux - {\loi_exparg\loi_ifempty{\loi_gobarg#1}% 1 seul token ? - {\begingroup \escapechar`\_ - \if\expandafter\loi_firsttonil\detokenize{#1}\_nil\expandafter\loi_firsttonil\string\relax\_nil - \loi_ifprimitive{#1} - {\endgroup\expandafter\loi_second} - {\endgroup\expandafter\loi_first}% - \else - \endgroup\expandafter\loi_second - \fi + {\loi_second% si espace en 1er, faux + } + {% + \loi_exparg\loi_ifempty{\loi_gobarg#1}% 1 seul token ? + {\begingroup\escapechar`\_\def\_{#1}\expandafter\endgroup + \csname loi_\if\expandafter\expandafter\expandafter\loi_firsttonil\expandafter\string\_\_nil\string _first\else second\fi\endcsname + {\loi_ifstuffexpandable{#1}} + {\loi_second}% } {\loi_second% si plusieurs tokens, faux }% @@ -228,7 +226,7 @@ } \def\insidepair#1#2#3#4{% #1#2=paire #3=expr #4=macro reçevant le resultat \loi_if_validpair#1#2% - {\loi_ifcs{#3} + {\loi_ifcsexpandable{#3} {\loi_exparg{\insidepair#1#2}{#3}#4% } {\loi_check_pair#1#2\in{#3}% si les paires sont appariées dans le résultat @@ -347,7 +345,7 @@ \loi_ifstar{\_removeextremespacestrue\readlist_b}{\_removeextremespacesfalse\readlist_b}% } \long\def\readlist_b#1#2{% #1=macro stockant les éléments #2=liste des éléments - \loi_ifcs{#2} + \loi_ifcsexpandable{#2} {\loi_exparg{\readlist_b#1}{#2}% } {\loi_edef\loi_listname{\loi_macroname#1}% @@ -564,4 +562,11 @@ v1.53 13/03/2018 - correction d'un bug dans \readlist_g v1.6 01/11/2018 - - possibilité d'appariement de tokens dans les items \ No newline at end of file + - possibilité d'appariement de tokens dans les items + +v1.61 03/03/2019 + - la macro \loi_ifcs contient une erreur de conception. + Il faut tester si le token est un sc && s'il est + développable pour renvoyer vrai car il existe des sc + non développables && qui ne sont _pas_ des primitives. + Macro rebaptisée \loi_ifcsexpandable \ No newline at end of file -- cgit v1.2.3