Page MenuHomeFreeBSD

D10820.id.diff
No OneTemporary

D10820.id.diff

Index: head/usr.bin/grep/file.c
===================================================================
--- head/usr.bin/grep/file.c
+++ head/usr.bin/grep/file.c
@@ -213,24 +213,24 @@
if (grep_lnbufgrow(len + LNBUFBUMP))
goto error;
memcpy(lnbuf + off, bufpos, len - off);
+ /* With FILE_MMAP, this is EOF; there's no more to refill */
+ if (filebehave == FILE_MMAP) {
+ bufrem -= len;
+ break;
+ }
off = len;
+ /* Fetch more to try and find EOL/EOF */
if (grep_refill(f) != 0)
goto error;
if (bufrem == 0)
/* EOF: return partial line */
break;
- if ((p = memchr(bufpos, fileeol, bufrem)) == NULL &&
- filebehave != FILE_MMAP)
+ if ((p = memchr(bufpos, fileeol, bufrem)) == NULL)
continue;
- if (p == NULL) {
- /* mmap EOF: return partial line, consume buffer */
- diff = len;
- } else {
- /* got it: finish up the line (like code above) */
- ++p;
- diff = p - bufpos;
- len += diff;
- }
+ /* got it: finish up the line (like code above) */
+ ++p;
+ diff = p - bufpos;
+ len += diff;
if (grep_lnbufgrow(len))
goto error;
memcpy(lnbuf + off, bufpos, diff);

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 8, 5:59 AM (10 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38503890
Default Alt Text
D10820.id.diff (1 KB)

Event Timeline