%% %% This is file `l3flag.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% l3flag.dtx (with options: `package') %% %% Copyright (C) 2011-2016 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of %% this license or (at your option) any later version. The latest %% version of this license is in the file: %% %% http://www.latex-project.org/lppl.txt %% %% This file is part of the "l3experimental bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% %% File: l3flag.dtx Copyright (C) 2011-2012,2014-2016 The LaTeX3 Project \RequirePackage{expl3}[2017/02/07] \@ifpackagelater{expl3}{2017/02/07} {} {% \PackageError{l3flag}{Support package l3kernel too old} {% Please install an up to date version of l3kernel\MessageBreak using your TeX package manager or from CTAN.\MessageBreak \MessageBreak Loading l3flag will abort!% }% \endinput } \GetIdInfo$Id: l3flag.dtx 6846 2017-02-07 07:04:19Z joseph $ {L3 Experimental flags} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} \cs_new_protected:Npn \flag_new:n #1 { \cs_new:cpn { __flag_trap_#1:w } ##1 ; { \exp_after:wN \use_none:n \cs:w __flag_#1_##1: \cs_end: } } \cs_new_protected:Npn \flag_clear:n #1 { \__flag_clear:ww 0 ; #1 \q_stop } \cs_new_protected:Npn \__flag_clear:ww #1 ; #2 \q_stop { \if_cs_exist:w __flag_#2_#1: \cs_end: \else: \exp_after:wN \use_none_delimit_by_q_stop:w \fi: \cs_set_eq:cN { __flag_#2_#1: } \tex_undefined:D \exp_after:wN \__flag_clear:ww \__int_value:w \__int_eval:w \c_one + #1 ; #2 \q_stop } \cs_new_protected:Npn \flag_clear_new:n #1 { \flag_if_exist:nTF {#1} { \flag_clear:n } { \flag_new:n } {#1} } \cs_new_protected:Npn \flag_set_trap:nn #1#2 { \cs_set:cpn { __flag_trap_#1:w } ##1 ; {#2} } \prg_new_conditional:Npnn \flag_if_exist:n #1 { p , T , F , TF } { \cs_if_exist:cTF { __flag_trap_#1:w } { \prg_return_true: } { \prg_return_false: } } \prg_new_conditional:Npnn \flag_if_raised:n #1 { p , T , F , TF } { \if_cs_exist:w __flag_#1_0: \cs_end: \prg_return_true: \else: \prg_return_false: \fi: } \cs_new:Npn \flag_height:n #1 { \__flag_height_loop:ww 0; #1 \q_stop } \cs_new:Npn \__flag_height_loop:ww #1 ; #2 \q_stop { \if_cs_exist:w __flag_#2_#1: \cs_end: \exp_after:wN \__flag_height_loop:ww \__int_value:w \__int_eval:w \c_one + \else: \exp_after:wN \__flag_height_end:ww \fi: #1 ; #2 \q_stop } \cs_new:Npn \__flag_height_end:ww #1 ; #2 \q_stop { #1 } \cs_new:Npn \flag_raise:n #1 { \cs:w __flag_trap_#1:w \exp_after:wN \cs_end: \__int_value:w \flag_height:n {#1} ; } %% %% %% End of file `l3flag.sty'.