--- ray/src/cal/lam.c 2005/10/05 05:20:50 1.8 +++ ray/src/cal/lam.c 2006/05/07 15:44:28 1.9 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: lam.c,v 1.8 2005/10/05 05:20:50 greg Exp $"; +static const char RCSid[] = "$Id: lam.c,v 1.9 2006/05/07 15:44:28 greg Exp $"; #endif /* * lam.c - simple program to laminate files. @@ -86,19 +86,25 @@ char *argv[]; } else if (argv[i][0] == '!') { tabc[nfiles] = curtab; bytsiz[nfiles] = curbytes; - if ((input[nfiles++] = popen(argv[i]+1, "r")) == NULL) { + if ((input[nfiles] = popen(argv[i]+1, "r")) == NULL) { fputs(argv[i], stderr); fputs(": cannot start command\n", stderr); exit(1); } + if (bytsiz[nfiles]) + SET_FILE_BINARY(input[nfiles]); + ++nfiles; } else { tabc[nfiles] = curtab; bytsiz[nfiles] = curbytes; - if ((input[nfiles++] = fopen(argv[i], "r")) == NULL) { + if ((input[nfiles] = fopen(argv[i], "r")) == NULL) { fputs(argv[i], stderr); fputs(": cannot open file\n", stderr); exit(1); } + if (bytsiz[nfiles]) + SET_FILE_BINARY(input[nfiles]); + ++nfiles; } if (nfiles >= MAXFILE) { fputs(argv[0], stderr);