dj(1): more refactor (get rid of the c scratch variable, use scoping)

This commit is contained in:
dtb 2024-06-26 15:28:02 -06:00
parent 2cfae0e8d7
commit 3a66022c6d
Signed by: trinity
GPG Key ID: 34C0543BBB6AF81B

View File

@ -287,7 +287,7 @@ int main(int argc, char *argv[]){
program_name = argv[0]; program_name = argv[0];
while((c = getopt(argc, argv, "a:b:B:c:i:hHns:S:o:")) != -1) while((c = getopt(argc, argv, "a:b:B:c:i:hHns:S:o:")) != -1)
switch(c){ switch(c){
case 'i': case 'o': i = (c == 'o') case 'i': case 'o': i = (c == 'o');
if(optarg[0] == '-' && optarg[1] == '\0'){ /* optarg == "-" */ if(optarg[0] == '-' && optarg[1] == '\0'){ /* optarg == "-" */
io[i].fd = i ? STDIN_FILENO : STDOUT_FILENO; io[i].fd = i ? STDIN_FILENO : STDOUT_FILENO;
io[i].fn = i ? stdin_name : stdout_name; io[i].fn = i ? stdin_name : stdout_name;
@ -356,27 +356,30 @@ int main(int argc, char *argv[]){
++io[0].rec; ++io[0].rec;
/* write */ /* write */
do{ if(io[1].bs > io[0].bs){ do{
int t;
if(io[1].bs > io[0].bs){
Io_bufxapp(&io[1], &io[0]); Io_bufxapp(&io[1], &io[0]);
if(io[0].bs + io[1].bufuse <= io[1].bs && count != 1) if(io[0].bs + io[1].bufuse <= io[1].bs && count != 1)
continue; /* we could write more */ continue; /* we could write more */
}else }else
Io_bufxfer(&io[1], &io[0], MIN(io[0].bufuse, io[1].bs)); Io_bufxfer(&io[1], &io[0], MIN(io[0].bufuse, io[1].bs));
c = io[1].bufuse; t = io[1].bufuse;
Io_write(&io[1]); Io_write(&io[1]);
if(!noerror && io[1].bufuse == c) if(!noerror && io[1].bufuse == t)
Io_write(&io[1]); /* second chance */ Io_write(&io[1]); /* second chance */
if(c == io[1].bufuse){ /* no more love */ if(t == io[1].bufuse){ /* no more love */
count = 1; count = 1;
break; break;
}else if(c > io[1].bufuse && io[1].bufuse > 0){ }else if(t > io[1].bufuse && io[1].bufuse > 0){
io[1].prec += 1; io[1].prec += 1;
fprintf(stderr, "%s: Partial write:\n\t", program_name); fprintf(stderr, "%s: Partial write:\n\t", program_name);
output(io, fmt_output); output(io, fmt_output);
if(!noerror) if(!noerror)
count = 1; count = 1;
}else if(io[1].bufuse == 0 && c < io[1].bs) }else if(io[1].bufuse == 0 && t < io[1].bs)
++io[1].prec; ++io[1].prec;
else else
++io[1].rec; ++io[1].rec;