Subject: Re: Recursive grep (where is limfree defined?)
To: None <current-users@NetBSD.ORG>
From: None <>
List: current-users
Date: 01/24/1996 02:20:35
>  > GREP(1)                                                   GREP(1)
>  >        .
>  >        .
>  >        .
>  >        -a     Don't search in binary files.
> 	Interesting... What heuristic do you use to tell if a file is
> binary? This is actually a bit harder than one might think...

I don't use any heuristic - the author of the patch appears to search the 
file for non-printable character, see the isBinaryFile() function: 

 int isBinaryFile()
   /* look for non-printable chars */
   for(i = 0; i < n; i++)
     if (!isprint(buf[i]) && !isspace(buf[i]))

There might be better ways of doing it, but this appears to be a fairly 
cheap and easy way to do it, assuming that most binary files would have a 
non-printable character early on, and most text files are consist of only 
printable characters.

I couldn't find a binary large enough to crash grep (without cooking up a 
contrived example) on my system, so I didn't fully test this option.

Just a suggestion to those interested (one way or another) - apply the 
patch, explore the source, and try out the binary.    

Jeff Thieleke