Use c99 instead of ansi due to support int64 in template. Add __LEVEL built-in variab...
[tedtools.git] / template.h
index 1109dac..9806415 100644 (file)
@@ -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 );