- int used = (is_table_item (fsm->item) ? xr_fsm_draw_table (fsm, space)
- : is_chart_item (fsm->item) ? xr_fsm_draw_chart (fsm, space)
- : is_image_item (fsm->item) ? xr_fsm_draw_image (fsm, space)
- : is_page_eject_item (fsm->item) ? xr_fsm_draw_eject (fsm, space)
- : (abort (), 0));
+ int used;
+ switch (fsm->item->type)
+ {
+ case OUTPUT_ITEM_CHART:
+ used = xr_fsm_draw_chart (fsm, space);
+ break;
+
+ case OUTPUT_ITEM_IMAGE:
+ used = xr_fsm_draw_image (fsm, space);
+ break;
+
+ case OUTPUT_ITEM_PAGE_BREAK:
+ used = xr_fsm_draw_page_break (fsm, space);
+ break;
+
+ case OUTPUT_ITEM_TABLE:
+ used = xr_fsm_draw_table (fsm, space);
+ break;
+
+ case OUTPUT_ITEM_GROUP:
+ case OUTPUT_ITEM_MESSAGE:
+ case OUTPUT_ITEM_TEXT:
+ default:
+ NOT_REACHED ();
+ }