Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with ESMTP id r6CApHO1028618 for ; Fri, 12 Jul 2013 12:51:18 +0200 Received: from relay2.uni-heidelberg.de ([129.206.210.211]) by mx-ha.gmx.net (mxgmx010) with ESMTP (Nemesis) id 0MCgfC-1V5sPl0Cva-009OtR for ; Fri, 12 Jul 2013 12:51:11 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id r6CAmRdJ014240 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 12 Jul 2013 12:48:27 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id r6BM16nt024333; Fri, 12 Jul 2013 12:48:26 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 10276484 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 12 Jul 2013 12:48:26 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id r6CAmQEN022325 for ; Fri, 12 Jul 2013 12:48:26 +0200 Received: from mail-vc0-f177.google.com (mail-vc0-f177.google.com [209.85.220.177]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id r6CAmJnf031650 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Fri, 12 Jul 2013 12:48:22 +0200 Received: by mail-vc0-f177.google.com with SMTP id hv10so7564654vcb.36 for ; Fri, 12 Jul 2013 03:48:18 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.58.41.105 with SMTP id e9mr24263581vel.14.1373626098777; Fri, 12 Jul 2013 03:48:18 -0700 (PDT) Received: by 10.52.27.47 with HTTP; Fri, 12 Jul 2013 03:48:18 -0700 (PDT) References: <51C94FA0.1080803@morningstar2.co.uk> <51DD0EBD.6080308@morningstar2.co.uk> <51DF2000.30703@morningstar2.co.uk> X-Google-Sender-Auth: ojzhSmRJfEPl05zf7u83ucE4Idc Content-Type: text/plain; charset=ISO-8859-1 Message-ID: Date: Fri, 12 Jul 2013 06:48:18 -0400 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Jura Pintar Subject: Re: l3keys feature request To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <51DF2000.30703@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-GMX-Antivirus: 0 (no virus found) X-UI-Filterresults: notjunk:1;V01:K0:rEELsvIpNVs=:SgKBC5D1XFGc+R3eBW8aiH x87Vj3kewcaFYMXEGqN8LYBKa+1qFA4aiP/awb38cFBCFCGr0X7J0VH5AWh917z7s3gnpLg yG4oAyr8Duj0x2S72kmXhaJe8ggzyQp/7L5xMMC9bZ4C2Rcpoy47eIGyuzLbSdGDzOUU4vP XmhQjWrz+btTrzx65+yFBjpk5lmSdEqMGuV0v+Q5HvtfReiU1ZL/0JCGS1RgxwjPoAEBIai MoXVzBY6XM2haXDKFIhF5JJgC+t2dNowFcaseThzpnpbDbpxIJiHHpeBl5DCJwe8D/rafKr +M0nB+1hh7sZ31cSu/GIwmj37b4mXifAur4Mmizsyk/2bkP4vulXXUo/pbjCp4VvF4D5/vJ DkryMG+WbUU/6u7l7fh3RlKpZRGqgkB1D7mGkRUSlfcoLo6bgiRdymcNThvdWHJ8Qrnhd9o X1i5U+ylbA31m8Fmb0ncHssTeaePmtHI2Hbf0Apq4iImJ08js3lwKzv9k2Iq7rCc7TSgyss 2pKN+fnVo8tfGmthFWvJGPGqMn667yLmBe+bs2R9fBdhaSefBp/mIVj/wODh1xPruU7dD6P rPfRl4zS7jeRODl8OC/Zm4TTIR9N0rePKsOOtwCLh7zGUfL0Qt7adLTLP2Uf7LmABJ5BgN0 DTy7xpkRdGxK+qARxTkreC+aV+GfaLrpKnmuN9tTOUJ4KE7pnOsQy2dsdn9TbL87mhx+J5r 3NZSsqWdNkKcgzp9UgLu0lLdUO+aQeRrYqWWJGhIYiHP9vXhj9q+zYgANsLeh3uuFjQ4nuX PXj65R1t/M17R5DZXrWeecbxRWtOrZKf51jue00938cpoN6m6ugPIr70rXT6QYctZ9koYxc OXdf1cDK+KETi94LIwrQHX6Ma7PwMlTgMKaqtFwuZGpvXcYqqeCI030844adEtANoDLcW3D TGxYPpwm1bjrFURTqhRYXc/BDvx8Lxu1QxqAE3vlf2A/MYFjFMmaE8gGpIpXKRg/+hfARaL 7CPkwNszB9dEqWgZR1BpXJ0uVnFQvsk7pMxP7dSnWJBZV/stz8rVxygaFECO015rBiyXtmq iOG5Y7lHA0B3Y+dQDSygpeAQN7S8eEcXFJwB9KEO04EWXtUUfDwgr7NcI4rXKienOZJtcyV kgXIef4xcjJagZFXtK6O/sLgGEPwoj1BBjzYNm1HwVfU4tMqcyiF+ReelnsHX3u/DbUdjPK YurY+eOfuFVNpUkmxU7UhmjUGVzSYtyI5CCWkoG7Ujpb+pcbwkWMIPfFMYbov+ml4qt8CSS hDOYuRqgS8VzNhuJONaFbqtYzP4ySuXzqwxpuNwmy2uwMrzSrP2mFoaH36lO/+IsiKxpKTE o+YPxsNXJAZyiijUocD+hN47QTQYLzA+oKg4J2pGSiLARFuwH+gsQSWqC3W7TuFUnBH8tn7 LriBHewATaOCRiR16docwX9P08onmrlwST+HSbrEmPDQb0VZUhcs4QeuDz0mvyY7cxwmmVC Y7ZAizAanansLArntg8UwQkj95vacgT95YCf5VeZm3S5u0knsccNaUCu2pY2zY1S9VV0Ayl fbk0UBlPUz7KLafWv/2AjT3kKmjbPRFbIm9tpAaHCjH88uPr2o5d0gsLtlA= X-UI-Loop:V01:gmYQnlxvg50=:UqPsMoWMZmrUpt2dIO0WsLgsbuS5BSf+BaRMB0bes/Q= Status: R X-Status: X-Keywords: X-UID: 7238 > This allows each key to be in exactly one group: > doing multiple groups is possible but more tricky. About that (and assuming we'd decided to save the filtered keys), do you think that just doing \bool_new:N \l__keys_filtered_bool \cs_new_protected_nopar:Npn \__keys_set_elt_grouped: { \cs_if_exist:cT { \c__keys_vars_root_tl \l_keys_path_tl .group } { \bool_set_false:N \l__keys_filtered_bool \clist_if_empty:cTF { \c__keys_vars_root_tl \l_keys_path_tl .group } { \bool_set_true:N \l__keys_filtered_bool } { \clist_map_inline:Nn \l__keys_groups_clist { \clist_map_inline:cn { \c__keys_vars_root_tl \l_keys_path_tl .group } { \tl_if_eq:nnT {##1} {####1} { \bool_set_true:N \l__keys_filtered_bool \clist_map_break: } } } } \bool_if:NTF \l__keys_filtered_bool { \__keys_set_elt_aux: } { \clist_put_right:Nx \l__keys_filtered_clist { \l_keys_key_tl } } } } would be too inefficient? I think allowing multiple groups could be fairly useful, e.g. because it makes it easy to implement different grains of filtering by assigning keys to nested groups. And it's also something that pgfkeys cannot do, so it could give an additional reason for switching to l3keys to people who don't need pgfkeys for any of the fancier stuff.