Sure it does, in a way. Lines that don't contain a given substring or
pattern are omitted, so 'modified' into 'null' strings.

I do agree though that from a user stand-point, a negate attribute to
<linecontains> and <linecontainsregexp> makes more sense.

Matt, <linecontains*> are a special kind of 'conditional' filters,
saying yea or nay given a string, or don't otherwise modify the
string. What might be more useful and generic would be a filter that
used instances of a new StringCondition interface that could be
combine with <not>, <or>, etc... just like condition.

Just thinking out loud. This might be silly. --DD

On 7/11/06, Aaron Davies <[EMAIL PROTECTED]> wrote:
On 7/11/06, Matt Benson <[EMAIL PROTECTED]> wrote:
> --- Aaron Davies <[EMAIL PROTECTED]> wrote:
>
> > On 7/11/06, Dominique Devienne <[EMAIL PROTECTED]>
> > wrote:
> > So which approach are you going to be taking? Adding
> > a "not" attribute
> > to the relevant filters  sounds like the simplest to
> > me.
>
> I understand your position, but from my own viewpoint
> I would rather write a single "unmodified"
> FilterReader that nests another FilterReader than add
> negation logic to all Ant's existing built-in
> FilterReaders, plus place the burden on the author of
> any not yet written, imposing a handicap on any
> preexisting FilterReader implementation, etc., etc.
> Again, the concept of a single negation filter
> originated, as far as I know, with me (yes, I know
> it's impossible to have a truly original thought, but
> to the best I can tell I was the first person to
> suggest it in the context of Ant).  It is a preference
> of mine to have small, reusable pieces... an echo of
> the Unix philosophy and probably relating to AOP as
> well.  While my original concept of a <not> filter was
> shown to be impractical, <unmodified> seems a fairly
> easy concept to grasp.  Its most complex aspect would
> probably be the fact that it should have the ability
> to use tempfiles if applied to too-large data, but
> this could be left as a todo (I don't think most of
> Ant's built-in filters deal too well with HUGE input).
>
> So... in there you can find my answer and its
> justification.

So how exactly would you use this with a grep? A simple
linecontains/linecontainsregexp doesn't modify the lines it matches,
AFAIK.

> -Matt
>
> >
> > > By all means, be my guest Matt ;-) --DD
> > >
> > > On 7/11/06, Matt Benson <[EMAIL PROTECTED]>
> > wrote:
> > > > --- Dominique Devienne <[EMAIL PROTECTED]>
> > wrote:
> > > >
> > > > > this are not conditions, but filters. There's
> > no
> > > > > <not>.
> > > > >
> > > > > I guess a negate attribute on
> > <linecontains[regexp]>
> > > > > would be
> > > > > required, or a <unchanged> weird pseudo filter
> > that
> > > > > accept a nested
> > > > > filter, and 'reverses' the nested filter's
> > job, by
> > > > > accepting only
> > > > > lines unchanged by the nested filter.
> > > >
> > > > Hmm... I like that.  Semantically superior to
> > <not>
> > > > wrt to filters and covers all of what could
> > reasonably
> > > > be expected of the hypothetical "not filter."
> > Do you
> > > > want to write it or should I?  ;)
> > > >
> > > > -Matt
> > > >
> > > > >
> > > > > Or some regexp wizardry of course. --DD
> > > > >
> > > > > On 7/11/06, Master, Tariq (Abbeywood)
> > > > > <[EMAIL PROTECTED]> wrote:
> > > > > >
> > > > > >
> > > > > > I'm sure I read an example in the ant manual
> > using
> > > > > the <not> element.
> > > > > > (having inet access issues so no direct
> > linke -
> > > > > sorry)
> > > > > >
> > > > > >
> > > > > > -----Original Message-----
> > > > > > From: Aaron Davies
> > [mailto:[EMAIL PROTECTED]
> > > > > > Sent: 11 July 2006 16:20
> > > > > > To: Ant Users
> > > > > > Subject: Line *Doesn't* Contain?
> > > > > >
> > > > > > How can I do a negative filter in a
> > filterchain?
> > > > > I've tried to use a
> > > > > > negative lookahead regexp /.*(?!foo).*/, but
> > so
> > > > > far no luck.
> > > > > > --
> > > > > > Aaron Davies
> > > > > > [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> >
> ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail:
> > > > > [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail:
> > > > > [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> >
> ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail:
> > > > > [EMAIL PROTECTED]
> > > > > For additional commands, e-mail:
> > > > > [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > __________________________________________________
> > > > Do You Yahoo!?
> > > > Tired of spam?  Yahoo! Mail has the best spam
> > protection around
> > > > http://mail.yahoo.com
> > > >
> > > >
> >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > > > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > >
> > >
> >
> >
> > --
> > Aaron Davies
> > [EMAIL PROTECTED]
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> >
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Aaron Davies
[EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to