properly box sprintfdirective's return value