|
Lines 62-68
Link Here
|
| 62 |
long numlines; /* Line count to split on. */ |
62 |
long numlines; /* Line count to split on. */ |
| 63 |
int file_open; /* If a file open. */ |
63 |
int file_open; /* If a file open. */ |
| 64 |
int ifd = -1, ofd = -1; /* Input/output file descriptors. */ |
64 |
int ifd = -1, ofd = -1; /* Input/output file descriptors. */ |
| 65 |
char bfr[MAXBSIZE]; /* I/O buffer. */ |
65 |
char *bfr; /* I/O buffer. */ |
| 66 |
char fname[MAXPATHLEN]; /* File name prefix. */ |
66 |
char fname[MAXPATHLEN]; /* File name prefix. */ |
| 67 |
regex_t rgx; |
67 |
regex_t rgx; |
| 68 |
int pflag; |
68 |
int pflag; |
|
Lines 176-186
Link Here
|
| 176 |
int dist, len; |
176 |
int dist, len; |
| 177 |
char *C; |
177 |
char *C; |
| 178 |
|
178 |
|
|
|
179 |
if((bfr = (char *)malloc(bytecnt)) == NULL) |
| 180 |
err(EX_OSERR, "malloc"); |
| 181 |
|
| 179 |
for (bcnt = 0;;) |
182 |
for (bcnt = 0;;) |
| 180 |
switch ((len = read(ifd, bfr, MAXBSIZE))) { |
183 |
switch ((len = read(ifd, bfr, bytecnt))) { |
| 181 |
case 0: |
184 |
case 0: |
|
|
185 |
free(bfr); |
| 182 |
exit(0); |
186 |
exit(0); |
| 183 |
case -1: |
187 |
case -1: |
|
|
188 |
free(bfr); |
| 184 |
err(EX_IOERR, "read"); |
189 |
err(EX_IOERR, "read"); |
| 185 |
/* NOTREACHED */ |
190 |
/* NOTREACHED */ |
| 186 |
default: |
191 |
default: |
|
Lines 195-216
Link Here
|
| 195 |
len -= bytecnt, C += bytecnt) { |
200 |
len -= bytecnt, C += bytecnt) { |
| 196 |
newfile(); |
201 |
newfile(); |
| 197 |
if (write(ofd, |
202 |
if (write(ofd, |
| 198 |
C, (int)bytecnt) != bytecnt) |
203 |
C, (int)bytecnt) != bytecnt) { |
|
|
204 |
free(bfr); |
| 199 |
err(EX_IOERR, "write"); |
205 |
err(EX_IOERR, "write"); |
|
|
206 |
} |
| 200 |
} |
207 |
} |
| 201 |
if (len != 0) { |
208 |
if (len != 0) { |
| 202 |
newfile(); |
209 |
newfile(); |
| 203 |
if (write(ofd, C, len) != len) |
210 |
if (write(ofd, C, len) != len) { |
|
|
211 |
free(bfr); |
| 204 |
err(EX_IOERR, "write"); |
212 |
err(EX_IOERR, "write"); |
|
|
213 |
} |
| 205 |
} else |
214 |
} else |
| 206 |
file_open = 0; |
215 |
file_open = 0; |
| 207 |
bcnt = len; |
216 |
bcnt = len; |
| 208 |
} else { |
217 |
} else { |
| 209 |
bcnt += len; |
218 |
bcnt += len; |
| 210 |
if (write(ofd, bfr, len) != len) |
219 |
if (write(ofd, bfr, len) != len) { |
|
|
220 |
free(bfr); |
| 211 |
err(EX_IOERR, "write"); |
221 |
err(EX_IOERR, "write"); |
|
|
222 |
} |
| 212 |
} |
223 |
} |
| 213 |
} |
224 |
} |
|
|
225 |
free(bfr); |
| 214 |
} |
226 |
} |
| 215 |
|
227 |
|
| 216 |
/* |
228 |
/* |
|
Lines 227-232
Link Here
|
| 227 |
if ((infp = fdopen(ifd, "r")) == NULL) |
239 |
if ((infp = fdopen(ifd, "r")) == NULL) |
| 228 |
err(EX_NOINPUT, "fdopen"); |
240 |
err(EX_NOINPUT, "fdopen"); |
| 229 |
|
241 |
|
|
|
242 |
if((bfr = (char *)malloc(MAXBSIZE)) == NULL) |
| 243 |
err(EX_OSERR, "malloc"); |
| 244 |
|
| 230 |
/* Process input one line at a time */ |
245 |
/* Process input one line at a time */ |
| 231 |
while (fgets(bfr, sizeof(bfr), infp) != NULL) { |
246 |
while (fgets(bfr, sizeof(bfr), infp) != NULL) { |
| 232 |
const int len = strlen(bfr); |
247 |
const int len = strlen(bfr); |
|
Lines 254-262
Link Here
|
| 254 |
newfile(); |
269 |
newfile(); |
| 255 |
|
270 |
|
| 256 |
/* Write out line */ |
271 |
/* Write out line */ |
| 257 |
if (write(ofd, bfr, len) != len) |
272 |
if (write(ofd, bfr, len) != len) { |
|
|
273 |
free(bfr); |
| 258 |
err(EX_IOERR, "write"); |
274 |
err(EX_IOERR, "write"); |
|
|
275 |
} |
| 259 |
} |
276 |
} |
|
|
277 |
|
| 278 |
free(bfr); |
| 260 |
|
279 |
|
| 261 |
/* EOF or error? */ |
280 |
/* EOF or error? */ |
| 262 |
if (ferror(infp)) |
281 |
if (ferror(infp)) |