1 #include <stdio.h>
2 #include <stdint.h>
3 
4 #include <tpl.h>
5 
main(int n,char * a[])6 int main ( int n , char* a [ ] )
7 {
8 
9        tpl_node* tn ;
10        char c='a',c2='b',c3,c4;
11        int64_t cn = -100, cn2 ;
12        uint64_t ucn = 200, ucn2;
13 
14        tn = tpl_map ( "A(cIcU)" , &c, &cn, &c2, &ucn ) ;
15        tpl_pack ( tn , 1 ) ;
16        c += 1;
17        cn -= 1;
18        c2 += 1;
19        ucn += 1;
20        tpl_pack ( tn , 1 ) ;
21        tpl_dump ( tn , TPL_FILE , "/tmp/test92.tpl" ) ;
22        tpl_free ( tn ) ;
23 
24        tn = tpl_map ( "A(cIcU)" , &c3, &cn2, &c4, &ucn2 ) ;
25        tpl_load(tn,TPL_FILE,"/tmp/test92.tpl");
26        /* Hesitant to rely on portability of %lld to print int64_t.
27           At least on MinGW it is questionable. */
28        /*
29         * while (tpl_unpack(tn,1) > 0) {
30         *  printf("%c %lld %c %llu\n", c3, cn2, c4, ucn2);
31         * }
32        */
33        tpl_unpack(tn,1);
34        if (c3 != 'a' || cn2 != -100 || c4 != 'b' || ucn2 != 200) printf("unpack error 1\n");
35        tpl_unpack(tn,1);
36        if (c3 != 'b' || cn2 != -101 || c4 != 'c' || ucn2 != 201) printf("unpack error 2\n");
37        return ( 0 ) ;
38 
39 }
40