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