On Wed, 2014-05-28 at 23:36 -0400, Alex wrote:
> > > > A body rule with beginning and end anchors /^ $/ as you posted matches
> > > > complete paragraphs. Not the full body.
> > >
> > > I don't think I realized multiple buffers weren't considered
> > > simultaneously.
> > 
> > I don't get "buffer", neither "simultaneously" in this context.
> 
> I'm used to a buffer being a __CHUNK (using your rule example) of
> text, or the first 4k or so, not up to the first two line breaks, so I
> was confused.

You are confused, indeed. And confusing body for rawbody rules. So much
for the pun. ;)

The terms I were using are directly derived from the official docs and
code. Hence the "chunks" of 1-2 kByte in rawbody context. Internal
representations of the message, suited for the various types of rules
and processing. Which is entirely separate from the buffered (sic), raw
pristine input, that will eventually be returned with added headers.

In the context of SA rules, there is no buffer.

There are body rules, regular expressions matched against strings which
comprise a "paragraph" of rendered text. Traditional style, compare with
this very (plain!) text.

And there are rawbody rules, regular expressions matched against chunks
of the textual MIME-parts. "Chunks" of the raw textual parts, that are
at least 1024 byte in size, and commonly delimited by a newline.

In all those previous posts and replies, I never mentioned anything like
a buffer. Neither do the docs, AFAIR.


> > Working around that can get complex, and at least 3 different ways to do
> > that just popped up in my head. Too much to describe in detail, or even
> > get straight right now. Plus, ultimately it depends heavily on the
> > samples.
> 
> I'll send you a pastebin sample off-list, in case you have a chance to
> look in the morning :-)

Scratch "morning", make that "some time of the day". Local time. And
individually felt timezone.


> Thanks, as always.

-- 
char *t="\10pse\0r\0dtu\0.@ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4";
main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1:
(c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}

Reply via email to