X-Git-Url: http://sigaev.ru/git/gitweb.cgi?p=tedtools.git;a=blobdiff_plain;f=template.h;h=97e9070c0413ec535629741868843017b250ade7;hp=1109dac36a3eb8636aac0d857805da558fd38375;hb=HEAD;hpb=3e4497d3a6e8bce7c73bbf46707f84a0ab0c7543 diff --git a/template.h b/template.h index 1109dac..97e9070 100644 --- a/template.h +++ b/template.h @@ -33,7 +33,7 @@ ****************************************************************************** * SYNTAX * ****************************************************************************** - * <% EXPRESSION , "FORMAT"] [# "DEFAULTVALUE"] [|(h|u)]%> + * <% EXPRESSION [, "FORMAT"] [# "DEFAULTVALUE"] [|(h|u)]%> * - format value should be as in strftime for time value and printf * for all other. Currently, bool values have only "true"/"false" * string values @@ -70,6 +70,7 @@ * __FIRST - true for first iteration * __LAST - true for last iteration * __COUNTER - iteration's number + * __LEVEL - level of nested loop (root == 0) * __SIZE - number of iterations * __ODD - true for odd iteraion * __EVEN - true for even iteraion @@ -167,10 +168,11 @@ typedef enum TemplateNodeType { #define TND___SIZE (0x0040) #define TND___ODD (0x0080) #define TND___EVEN (0x0100) +#define TND___LEVEL (0x0200) -#define TND_DEFINED (0x0200) +#define TND_DEFINED (0x0400) -#define TND__SPECIALMASK (TND___FIRST | TND___LAST | TND___COUNTER | TND___SIZE | TND___ODD | TND___EVEN) +#define TND__SPECIALMASK (TND___FIRST | TND___LAST | TND___COUNTER | TND___SIZE | TND___ODD | TND___EVEN | TND___LEVEL) typedef struct TemplateData *Template; @@ -183,7 +185,7 @@ typedef struct VariableValueData { TemplateNodeType type; /* should be first, see resetTemplate/freeTemplate */ int flags; union { - int intValue; + int64_t intValue; char *stringValue; time_t timeValue; int boolValue; @@ -346,7 +348,7 @@ int printTemplate( TemplateInstance tmpl ); #define TVAR_NOROW (3) #define TVAR_LOOPMARK (4) -int setTemplateValueInt( TemplateInstance tmpl, char * key, int val ); +int setTemplateValueInt( TemplateInstance tmpl, char * key, int64_t val ); int setTemplateValueString( TemplateInstance tmpl, char * key, char * val ); int setTemplateValueTime( TemplateInstance tmpl, char * key, time_t val ); int setTemplateValueBool( TemplateInstance tmpl, char * key, int val );