tfc_say(" iobs=val: set IO block size value. Must not exceed %u bytes.", TFC_U(TFC_BLKSIZE));
tfc_say(" iseek=val: seek source file/device by these val bytes.");
tfc_say(" oseek=val: seek destination file/device by these val bytes.");
+ tfc_say(" ioseek=val: seek both source and destination.");
+ tfc_say(" ioseek is equal to iseek and oseek.");
tfc_say(" count=val: process only these val bytes, both input and output.");
tfc_say(" ftrunc=val: truncate output file to these val bytes before closing it.");
tfc_say(" ftrunc=tail: truncate output's tail, leaving only processed data.");
tfc_say(" ixctr=val: Increment initial counter by this val bytes.");
tfc_say(" Internally this number is translated into number of %u byte blocks.", TFC_U(TF_BLOCK_SIZE));
tfc_say(" oseek=val: seek destination file/device by these val bytes.");
+ tfc_say(" ioseek=val: seek both source and destination.");
+ tfc_say(" ioseek is equal to iseek and oseek.");
tfc_say(" count=val: process only these val bytes, both input and output.");
tfc_say(" ftrunc=val: truncate output file to these val bytes before closing it.");
tfc_say(" ftrunc=tail: truncate output's tail, leaving only processed data.");
}
else oseek = tfc_modifysize(oseek, strchr(s, ':'));
}
+ else if (!strncmp(s, "ioseek", 6) && *(s+6) == '=') {
+ s += 7;
+
+ iseek = tfc_humanfsize(s, &stoi);
+ if (!str_empty(stoi)) {
+ iseek = tfc_fnamesize(s, YES);
+ iseek = tfc_modifysize(iseek, strchr(s, ':'));
+ if (iseek == NOFSIZE) xerror(NO, YES, YES,
+ "%s: invalid iseek value", s);
+ }
+ else iseek = tfc_modifysize(iseek, strchr(s, ':'));
+ if (ctr_mode != TFC_MODE_PLAIN && iseek % TF_BLOCK_SIZE)
+ xerror(NO, YES, YES,
+ "%s: not round to TF block size "
+ "of %u bytes",
+ s, TFC_U(TF_BLOCK_SIZE));
+ iseek_blocks = iseek / TF_BLOCK_SIZE;
+
+ oseek = tfc_humanfsize(s, &stoi);
+ if (!str_empty(stoi)) {
+ oseek = tfc_fnamesize(s, YES);
+ oseek = tfc_modifysize(oseek, strchr(s, ':'));
+ if (oseek == NOFSIZE) xerror(NO, YES, YES,
+ "%s: invalid oseek value", s);
+ }
+ else oseek = tfc_modifysize(oseek, strchr(s, ':'));
+ }
else if (!strncmp(s, "count", 5) && *(s+5) == '=') {
s += 6;
maxlen = tfc_humanfsize(s, &stoi);