add .gitignore
[tedtools.git] / template.h
index cd80d75..97e9070 100644 (file)
  ******************************************************************************
  *                                  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
  * <@IF EXPRESSION @>
+ * [<@ ELSE IF EXPRESSION | ELSIF EXPRESSION @>]
  * [ <@ELSE@> ] 
  * <@ENDIF@>
  *
@@ -69,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
@@ -166,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;
 
@@ -182,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;
@@ -345,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 );