+ if (om->format) {
+ union ucimap_data tdata, *data;
+
+ data = ucimap_get_data(sd, om);
+ if (ucimap_is_custom(om->type)) {
+ tdata.s = (char *)data;
+ data = &tdata;
+ }
+
+ if (om->format(ucimap_section_ptr(sd), om, data, &str) < 0)
+ continue;
+ }
+ if (!str)
+ continue;