V10/cmd/gre/fns.c
#include "re.h"
#include "lre.h"
#include "hdr.h"
void
pr(char *b, char *e)
{
nmatch++;
if(prname)
PR "%s:", curfile);
if(bflag){
PR "%ld:", nbytes/offsetunit);
nbytes += (e-b) + noverflow;
noverflow = 0;
}
if(nflag)
PR "%ld:", ++lnum);
WR(b, e-b);
}
void
pr_m(char *b, char *e)
{
register char *nl;
while(nl = (char*)memchr(b, '\n', e-b)){
nmatch++;
nl++;
if(prname)
PR "%s:", curfile);
if(bflag){
PR "%ld:", nbytes/offsetunit);
nbytes += (nl-b) + noverflow;
noverflow = 0;
}
if(nflag)
PR "%ld:", ++lnum);
WR(b, nl-b);
if((b = nl) >= e)
break;
}
}
/* ARGSUSED */
void
inc(char *UNUSED, char *UNUSED2)
{
#pragma ref UNUSED
#pragma ref UNUSED2
nmatch++;
}
void
inc_m(register char *b, register char *e)
{
register char *nl;
while(nl = (char*)memchr(b, '\n', e-b)){
nmatch++;
if((b = nl+1) >= e)
break;
}
}
void
null(char *UNUSED, char *UNUSED2)
#pragma ref UNUSED
#pragma ref UNUSED2
{
}
void
count(register char *b, register char *e)
{
nbytes += (e-b) + noverflow;
noverflow = 0;
lnum++;
}
void
count_m(register char *b, register char *e)
{
register char *nl;
nbytes += (e-b) + noverflow;
noverflow = 0;
while(nl = (char*)memchr(b, '\n', e-b)){
lnum++;
if((b = nl+1) >= e)
break;
}
}
void
oneshot(char *b, char *e)
{
register char *nl;
nmatch++;
nl = (char*)memchr(b, '\n', e-b)+1;
if(oneflag)
pr(b, nl);
longjmp(env, 1);
}