@@ -23,6 +23,22 @@ asdf_event_type_t asdf_event_type(asdf_event_t *event) {
2323}
2424
2525
26+ const char * asdf_event_comment (const asdf_event_t * event ) {
27+ if (!(event && event -> type == ASDF_COMMENT_EVENT ))
28+ return NULL ;
29+
30+ return event -> payload .comment ;
31+ }
32+
33+
34+ const asdf_tree_info_t * asdf_event_tree_info (const asdf_event_t * event ) {
35+ if (!(event && (event -> type == ASDF_TREE_START_EVENT || event -> type == ASDF_TREE_END_EVENT )))
36+ return NULL ;
37+
38+ return event -> payload .tree ;
39+ }
40+
41+
2642const asdf_block_info_t * asdf_event_block_info (const asdf_event_t * event ) {
2743 if (!(event && event -> type == ASDF_BLOCK_EVENT ))
2844 return NULL ;
@@ -67,6 +83,11 @@ void asdf_event_print(const asdf_event_t *event, FILE *file, bool verbose) {
6783 fprintf (file , " Standard Version: %s\n" , event -> payload .version -> version );
6884 break ;
6985
86+
87+ case ASDF_COMMENT_EVENT :
88+ fprintf (file , " Comment: %s\n" , event -> payload .comment );
89+ break ;
90+
7091 case ASDF_YAML_EVENT : {
7192 fprintf (file , " Type: %s\n" , asdf_yaml_event_type_text (event ));
7293
@@ -85,14 +106,29 @@ void asdf_event_print(const asdf_event_t *event, FILE *file, bool verbose) {
85106 break ;
86107 }
87108
109+ case ASDF_TREE_START_EVENT :
110+ fprintf (file , " Tree start position: %zu (0x%zx)\n" , event -> payload .tree -> start ,
111+ event -> payload .tree -> start );
112+ break ;
113+
114+ case ASDF_TREE_END_EVENT :
115+ fprintf (file , " Tree end position: %zu (0x%zx)\n" , event -> payload .tree -> end ,
116+ event -> payload .tree -> end );
117+ break ;
118+
88119 case ASDF_BLOCK_EVENT : {
89120 const asdf_block_info_t * block = event -> payload .block ;
90121 const asdf_block_header_t header = block -> header ;
91- fprintf (file , " Header position: %" PRId64 "\n" , (int64_t )block -> header_pos );
92- fprintf (file , " Data position: %" PRId64 "\n" , (int64_t )block -> data_pos );
93- fprintf (file , " Allocated size: %" PRIu64 "\n" , header .allocated_size );
94- fprintf (file , " Used size: %" PRIu64 "\n" , header .used_size );
95- fprintf (file , " Data size: %" PRIu64 "\n" , header .data_size );
122+ fprintf (file , " Header position: %" PRId64 " (0x%" PRIx64 ")\n" ,
123+ (int64_t )block -> header_pos , (int64_t )block -> header_pos );
124+ fprintf (file , " Data position: %" PRId64 " (0x%" PRIx64 ")\n" ,
125+ (int64_t )block -> data_pos , (int64_t )block -> data_pos );
126+ fprintf (file , " Allocated size: %" PRIu64 " (0x%" PRIx64 ")\n" ,
127+ header .allocated_size , header .allocated_size );
128+ fprintf (file , " Used size: %" PRIu64 " (0x%" PRIx64 ")\n" , header .used_size ,
129+ header .used_size );
130+ fprintf (file , " Data size: %" PRIu64 " (0x%" PRIx64 ")\n" , header .data_size ,
131+ header .data_size );
96132
97133 if (header .compression [0 ] != '\0' )
98134 fprintf (file , " Compression: %.4s\n" , header .compression );
@@ -114,6 +150,13 @@ void asdf_event_print(const asdf_event_t *event, FILE *file, bool verbose) {
114150void asdf_event_destroy (asdf_parser_t * parser , asdf_event_t * event ) {
115151 assert (event );
116152 switch (event -> type ) {
153+ case ASDF_TREE_START_EVENT :
154+ case ASDF_TREE_END_EVENT :
155+ if (event -> payload .tree )
156+ free (event -> payload .tree -> buf );
157+
158+ free (event -> payload .tree );
159+ break ;
117160 case ASDF_YAML_EVENT :
118161 fy_parser_event_free (parser -> yaml_parser , event -> payload .yaml );
119162 break ;
@@ -127,6 +170,9 @@ void asdf_event_destroy(asdf_parser_t *parser, asdf_event_t *event) {
127170 case ASDF_BLOCK_EVENT :
128171 free (event -> payload .block );
129172 break ;
173+ case ASDF_COMMENT_EVENT :
174+ free (event -> payload .comment );
175+ break ;
130176 default :
131177 break ;
132178 }
0 commit comments