116 |
|
fputs("NCOMP=3\n", fout); /* always RGB */ |
117 |
|
if (info != NULL) /* add extra info if given */ |
118 |
|
fputs(info, fout); |
119 |
+ |
if ((outfmt == 'f') | (outfmt == 'd')) |
120 |
+ |
fputendian(fout); |
121 |
|
fputformat(formstr(outfmt), fout); |
122 |
|
fputc('\n', fout); /* empty line ends header */ |
123 |
|
} |
148 |
|
if (!noopen & !using_stdout) { |
149 |
|
if (outfmt != 'a') |
150 |
|
SET_FILE_BINARY(stdout); |
151 |
+ |
#ifdef getc_unlocked |
152 |
+ |
flockfile(stdout); /* avoid lock/unlock overhead */ |
153 |
+ |
#endif |
154 |
|
if (header) { |
155 |
|
cp = info; |
156 |
|
if (yres > 0) { |
167 |
|
if (waitflush > 0) |
168 |
|
fflush(stdout); |
169 |
|
stdos.xr = xres; stdos.yr = yres; |
165 |
– |
#ifdef getc_unlocked |
166 |
– |
flockfile(stdout); /* avoid lock/unlock overhead */ |
167 |
– |
#endif |
170 |
|
using_stdout = 1; |
171 |
|
} |
172 |
|
stdos.ofp = stdout; |
521 |
|
off_t nbytes = *(off_t *)p; |
522 |
|
|
523 |
|
if (sop->reclen > 1) |
524 |
< |
nbytes = nbytes * sop->reclen; |
524 |
> |
nbytes *= (off_t)sop->reclen; |
525 |
|
if (fseeko(sop->ofp, nbytes, SEEK_CUR) < 0) { |
526 |
|
sprintf(errmsg, "seek error on file '%s'", e->key); |
527 |
|
error(SYSTEM, errmsg); |
590 |
|
sprintf(errmsg, "missing recover file '%s'", |
591 |
|
oname); |
592 |
|
error(WARNING, errmsg); |
593 |
+ |
lastout = 0; |
594 |
|
break; |
595 |
|
} |
596 |
|
nvals = lseek(fileno(sop->ofp), 0, SEEK_END); |
623 |
|
} |
624 |
|
if (!lastout) { /* empty output */ |
625 |
|
error(WARNING, "no previous data to recover"); |
626 |
< |
lu_done(&ofiletab); /* reclose all outputs */ |
626 |
> |
/* reclose all outputs */ |
627 |
> |
lu_doall(&ofiletab, &myclose, NULL); |
628 |
|
return; |
629 |
|
} |
630 |
|
} |