- /* Cast away const in flagrant abuse of the casefile */
- d_in->v = (union value *) case_data(&cc, idx);
+ width = fmt_var_width (fmt);
+ value = xmalloca (value_cnt_from_width (width) * sizeof *value);
+ ok = (datasheet_get_value (cf->datasheet, casenum, idx, value, width)
+ && data_in (input, fmt->type, 0, 0, value, width)
+ && datasheet_put_value (cf->datasheet, casenum, idx, value, width));