@@ -27,14 +27,14 @@ double test_function3_with_args(list_t *p_list) {
27
27
}
28
28
METAC_GSYM_LINK (test_function3_with_args );
29
29
30
- // int my_printf(const char * format, ...) {
31
- // va_list l;
32
- // va_start(l, format);
33
- // int res = vprintf(format, l);
34
- // va_end(l);
35
- // return res;
36
- // }
37
- // METAC_GSYM_LINK(my_printf);
30
+ int my_printf (const char * format , ...) {
31
+ va_list l ;
32
+ va_start (l , format );
33
+ int res = vprintf (format , l );
34
+ va_end (l );
35
+ return res ;
36
+ }
37
+ METAC_GSYM_LINK (my_printf );
38
38
39
39
40
40
metac_tag_map_t * p_tagmap = NULL ;
@@ -45,14 +45,14 @@ METAC_TAG_MAP_NEW(va_args_tag_map, NULL, {.mask =
45
45
METAC_TAG_MAP_ENTRY_CATEGORY_MASK (METAC_TEC_final ),},)
46
46
/* start tags for all types */
47
47
48
- // METAC_TAG_MAP_ENTRY(METAC_GSYM_LINK_ENTRY(my_printf))
49
- // METAC_TAG_MAP_SET_TAG(0, METAC_TEO_entry, 0, METAC_TAG_MAP_ENTRY_PARAMETER({.n = "format"}),
50
- // METAC_ZERO_ENDED_STRING()
51
- // )
52
- // METAC_TAG_MAP_SET_TAG(0, METAC_TEO_entry, 0, METAC_TAG_MAP_ENTRY_PARAMETER({.i = 1}),
53
- // METAC_FORMAT_BASED_VA_ARG()
54
- // )
55
- // METAC_TAG_MAP_ENTRY_END
48
+ METAC_TAG_MAP_ENTRY (METAC_GSYM_LINK_ENTRY (my_printf ))
49
+ METAC_TAG_MAP_SET_TAG (0 , METAC_TEO_entry , 0 , METAC_TAG_MAP_ENTRY_PARAMETER ({.n = "format" }),
50
+ METAC_ZERO_ENDED_STRING ()
51
+ )
52
+ METAC_TAG_MAP_SET_TAG (0 , METAC_TEO_entry , 0 , METAC_TAG_MAP_ENTRY_PARAMETER ({.i = 1 }),
53
+ METAC_FORMAT_BASED_VA_ARG ()
54
+ )
55
+ METAC_TAG_MAP_ENTRY_END
56
56
57
57
METAC_TAG_MAP_END
58
58
//
@@ -65,6 +65,9 @@ int main() {
65
65
list_t * p_list = (list_t []){{.x = 42.42 , .p_next = (list_t []){{ .x = 45.4 , .p_next = NULL }}}};
66
66
printf ("fn returned: %f\n" , METAC_WRAP_FN_RES (NULL , test_function3_with_args , p_list ));
67
67
68
+ // doesn't work yet
69
+ //printf("fn returned: %i\n", METAC_WRAP_FN_RES(p_tagmap, my_printf, "%d %d", 10, 22));
70
+
68
71
metac_tag_map_delete (p_tagmap );
69
72
return 0 ;
70
73
}
0 commit comments