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]