74 |
if (length > 0 && buffer[length-1] == '\n') buffer[--length] = 0; |
if (length > 0 && buffer[length-1] == '\n') buffer[--length] = 0; |
75 |
linenumber++; |
linenumber++; |
76 |
|
|
77 |
match = pcre_exec(pattern, hints, buffer, length, 0, offsets, 99) >= 0; |
match = pcre_exec(pattern, hints, buffer, length, 0, 0, offsets, 99) >= 0; |
78 |
if (match && whole_lines && offsets[1] != length) match = FALSE; |
if (match && whole_lines && offsets[1] != length) match = FALSE; |
79 |
|
|
80 |
if (match != invert) |
if (match != invert) |
119 |
static int |
static int |
120 |
usage(int rc) |
usage(int rc) |
121 |
{ |
{ |
122 |
fprintf(stderr, "Usage: pgrep [-chilnsvx] pattern [file] ...\n"); |
fprintf(stderr, "Usage: pgrep [-Vchilnsvx] pattern [file] ...\n"); |
123 |
return rc; |
return rc; |
124 |
} |
} |
125 |
|
|
159 |
case 's': silent = TRUE; break; |
case 's': silent = TRUE; break; |
160 |
case 'v': invert = TRUE; break; |
case 'v': invert = TRUE; break; |
161 |
case 'x': whole_lines = TRUE; options |= PCRE_ANCHORED; break; |
case 'x': whole_lines = TRUE; options |= PCRE_ANCHORED; break; |
162 |
|
|
163 |
|
case 'V': |
164 |
|
fprintf(stderr, "PCRE version %s\n", pcre_version()); |
165 |
|
break; |
166 |
|
|
167 |
default: |
default: |
168 |
fprintf(stderr, "pgrep: unknown option %c\n", s[-1]); |
fprintf(stderr, "pgrep: unknown option %c\n", s[-1]); |
169 |
return usage(2); |
return usage(2); |