Index: transfer.c =================================================================== *** transfer.c (revision 122763) --- transfer.c (working copy) *************** formatted_transfer_scalar (st_parameter_ *** 1155,1161 **** /* Format codes that don't transfer data. */ case FMT_X: case FMT_TR: ! consume_data_flag = 0 ; pos = bytes_used + f->u.n + dtp->u.p.skips; dtp->u.p.skips = f->u.n + dtp->u.p.skips; --- 1155,1161 ---- /* Format codes that don't transfer data. */ case FMT_X: case FMT_TR: ! consume_data_flag = 0; pos = bytes_used + f->u.n + dtp->u.p.skips; dtp->u.p.skips = f->u.n + dtp->u.p.skips; *************** formatted_transfer_scalar (st_parameter_ *** 1171,1176 **** --- 1171,1177 ---- write_x (dtp, dtp->u.p.skips, dtp->u.p.pending_spaces); dtp->u.p.skips = dtp->u.p.pending_spaces = 0; } + if (dtp->u.p.mode == READING) read_x (dtp, f->u.n); *************** formatted_transfer_scalar (st_parameter_ *** 1178,1183 **** --- 1179,1186 ---- case FMT_TL: case FMT_T: + consume_data_flag = 0; + if (f->format == FMT_TL) { *************** formatted_transfer_scalar (st_parameter_ *** 1196,1203 **** } else /* FMT_T */ { ! consume_data_flag = 0; ! pos = f->u.n - 1; } /* Standard 10.6.1.1: excessive left tabbing is reset to the --- 1199,1208 ---- } else /* FMT_T */ { ! if (dtp->u.p.mode == READING) ! pos = f->u.n - 1; ! else ! pos = f->u.n - dtp->u.p.pending_spaces - 1; } /* Standard 10.6.1.1: excessive left tabbing is reset to the