:) Guess I should have known that "-que" was common in French, given our own DD... was working from the fact that "unique" was given as being of Fr. etymology at webster.com . Is "uniq" correct anywhere?
-Matt --- On Wed, 8/26/09, Gilles Scokart <gscok...@gmail.com> wrote: > From: Gilles Scokart <gscok...@gmail.com> > Subject: Re: svn commit: r808018 - in /ant/core/trunk: ./ > docs/manual/CoreTypes/ src/main/org/apache/tools/ant/ > src/main/org/apache/tools/ant/filters/ src/tests/antunit/filters/ > src/tests/antunit/filters/expected/ src/tests/antunit/filters/input/ > To: "Ant Developers List" <dev@ant.apache.org> > Date: Wednesday, August 26, 2009, 1:09 PM > The French translation of unique is > ... "unique". > > > Gilles Scokart > > > 2009/8/26 Matt Benson <gudnabr...@yahoo.com> > > > Do we want to stick to English spellings ("unique") or > are we okay with > > "uniq"--presumably correct in French? > > > > -Matt > > > > --- On Wed, 8/26/09, bode...@apache.org > <bode...@apache.org> > wrote: > > > > > From: bode...@apache.org > <bode...@apache.org> > > > Subject: svn commit: r808018 - in > /ant/core/trunk: ./ > > docs/manual/CoreTypes/ src/main/org/apache/tools/ant/ > > src/main/org/apache/tools/ant/filters/ > src/tests/antunit/filters/ > > src/tests/antunit/filters/expected/ > src/tests/antunit/filters/input/ > > > To: notificati...@ant.apache.org > > > Date: Wednesday, August 26, 2009, 9:14 AM > > > Author: bodewig > > > Date: Wed Aug 26 14:14:12 2009 > > > New Revision: 808018 > > > > > > URL: http://svn.apache.org/viewvc?rev=808018&view=rev > > > Log: > > > Now that we have sort, throw in uniq as well > > > > > > Added: > > > > > > > > > ant/core/trunk/src/main/org/apache/tools/ant/filters/UniqFilter.java (with > > > props) > > > > > > > ant/core/trunk/src/tests/antunit/filters/expected/sortuniq.txt (with > > > props) > > > > > > > ant/core/trunk/src/tests/antunit/filters/expected/uniq.txt (with > > > props) > > > > > > > ant/core/trunk/src/tests/antunit/filters/input/uniq.txt (with > > > props) > > > > > > > ant/core/trunk/src/tests/antunit/filters/uniq-test.xml (with > > > props) > > > Modified: > > > ant/core/trunk/WHATSNEW > > > > > > > ant/core/trunk/docs/manual/CoreTypes/filterchain.html > > > > > > > ant/core/trunk/src/main/org/apache/tools/ant/antlib.xml > > > > > > Modified: ant/core/trunk/WHATSNEW > > > URL: > > http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=808018&r1=808017&r2=808018&view=diff > > > > > > ============================================================================== > > > --- ant/core/trunk/WHATSNEW (original) > > > +++ ant/core/trunk/WHATSNEW Wed Aug 26 14:14:12 > 2009 > > > @@ -927,6 +927,9 @@ > > > added. > > > Bugzilla Report 40504. > > > > > > + * A new filterreader <uniqfilter> that > suppresses > > > lines that match > > > + their ancestor line has been > added. > > > + > > > Changes from Ant 1.7.0 TO Ant 1.7.1 > > > > ============================================= > > > > > > > > > Modified: > > > > ant/core/trunk/docs/manual/CoreTypes/filterchain.html > > > URL: > > http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/CoreTypes/filterchain.html?rev=808018&r1=808017&r2=808018&view=diff > > > > > > ============================================================================== > > > --- > ant/core/trunk/docs/manual/CoreTypes/filterchain.html > > > (original) > > > +++ > ant/core/trunk/docs/manual/CoreTypes/filterchain.html > > > Wed Aug 26 14:14:12 2009 > > > @@ -125,6 +125,7 @@ > > > <a > > > > href="#tokenfilter">TokenFilter</a><br> > > > <a > > > > href="../CoreTasks/fixcrlf.html">FixCRLF</a><br> > > > <a > > > > href="#sortfilter">SortFilter</a><br> > > > +<a > > > > href="#sortfilter">UniqFilter</a><br> > > > > > > <h3><a > > > > name="filterreader">FilterReader</a></h3> > > > > > > @@ -1494,97 +1495,21 @@ > > > </copy> > > > </pre></blockquote> > > > > > > -<h3><a > > > > name="sortfilter">SortFilter</a></h3> > > > +<h3><a > > > > name="uniqfilter">UniqFilter</a></h3> > > > > > > -<p>This filter sorts lines > lexicographically but you > > > can specifiy a > > > - custom comparator as well.</p> > > > +<p>Suppresses all lines that match their > ancestor > > > line. It is most > > > + useful if combined with a sort > filter.</p> > > > > > > -<table cellSpacing=0 cellPadding=2 > border=1> > > > - <tr> > > > - <td > vAlign=top><b>Parameter > > > Type</b></td> > > > - <td > vAlign=top><b>Parameter > > > Value</b></td> > > > - <td vAlign=top > > > > align="center"><b>Required</b></td> > > > - </tr> > > > - <tr> > > > - <td > vAlign=top>reverse</td> > > > - <td vAlign=top > align="center">Whether > > > to reverse the sort order > > > - (boolean). Will be > ignored if a > > > custom comparator has been > > > - specified.</td> > > > - <td vAlign=top > > > align="center">No</td> > > > - </tr> > > > - <tr> > > > - <td > vAlign=top>comparator</td> > > > - <td vAlign=top > > > align="center">Classname of a class > > > - implementing > > > <code>java.util.Comparator</code> an > instance > > > of > > > - which will be used when > comparing > > > lines.</td> > > > - <td vAlign=top > > > align="center">No</td> > > > - </tr> > > > -</table> > > > -<p> > > > <h4>Example:</h4> > > > > > > -This will sort the lines. > > > +This suppresses duplicate lines. > > > <blockquote><pre> > > > -<filterreader > > > > classname="org.apache.tools.ant.filters.SortFilter"/> > > > +<filterreader > > > > classname="org.apache.tools.ant.filters.UniqFilter"/> > > > </pre></blockquote> > > > > > > Convenience method: > > > <blockquote><pre> > > > -<sortfilter/> > > > -</pre></blockquote> > > > - > > > -This will reverse the sort order. > > > - > > > -<blockquote><pre> > > > -<filterreader > > > > classname="org.apache.tools.ant.filters.SortFilter"> > > > - <param name="reverse" > > > value="true"/> > > > -</filterreader> > > > -</pre></blockquote> > > > - > > > -Convenience method: > > > -<blockquote><pre> > > > -<sortfilter reverse="true"/> > > > -</pre></blockquote> > > > - > > > -You can use your own comparator, the easiest way > is by > > > using typedef > > > -and the convenience method which allows to > specify the > > > comparator as a > > > -nested element: > > > -<blockquote><pre> > > > -public final class EvenFirstCmp implements > Comparator { > > > - > > > - public int compare(Object o1, > Object o2) { > > > - String s1 = > ((String) > > > o1).substring(5).trim(); > > > - String s2 = > ((String) > > > o2).substring(5).trim(); > > > - int n1 = > > > Integer.parseInt(s1); > > > - int n2 = > > > Integer.parseInt(s2); > > > - if (n1 % 2 == 0) { > > > - if (n2 > % 2 == 0) > > > { > > > - > > > return n1 - n2; > > > - } else > { > > > - > > > return -1; > > > - } > > > - } else { > > > - if (n2 > % 2 == 0) > > > { > > > - > > > return 1; > > > - } else > { > > > - > > > return n1 - n2; > > > - } > > > - } > > > - } > > > -} > > > -</pre></blockquote> > > > - > > > -and used as > > > - > > > -<blockquote><pre> > > > -<typedef > > > > classname="org.apache.tools.ant.filters.EvenFirstCmp" > > > - > > > name="evenfirst"/> > > > -... > > > - <filterchain> > > > - <sortfilter> > > > - <evenfirst/> > > > - </sortfilter> > > > - </filterchain> > > > +<uniqfilter/> > > > </pre></blockquote> > > > > > > </body></html> > > > > > > Modified: > > > > ant/core/trunk/src/main/org/apache/tools/ant/antlib.xml > > > URL: > > http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/antlib.xml?rev=808018&r1=808017&r2=808018&view=diff > > > > > > ============================================================================== > > > --- > ant/core/trunk/src/main/org/apache/tools/ant/antlib.xml > > > (original) > > > +++ > ant/core/trunk/src/main/org/apache/tools/ant/antlib.xml > > > Wed Aug 26 14:14:12 2009 > > > @@ -138,5 +138,7 @@ > > > <!-- filters --> > > > <componentdef name="sortfilter" > > > onerror="ignore" > > > > > > > classname="org.apache.tools.ant.filters.SortFilter"/> > > > + <componentdef name="uniqfilter" > > > onerror="ignore" > > > + > > > > classname="org.apache.tools.ant.filters.UniqFilter"/> > > > </antlib> > > > > > > > > > Added: > > > > ant/core/trunk/src/main/org/apache/tools/ant/filters/UniqFilter.java > > > URL: > > http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/filters/UniqFilter.java?rev=808018&view=auto > > > > > > ============================================================================== > > > --- > > > > ant/core/trunk/src/main/org/apache/tools/ant/filters/UniqFilter.java > > > (added) > > > +++ > > > > ant/core/trunk/src/main/org/apache/tools/ant/filters/UniqFilter.java > > > Wed Aug 26 14:14:12 2009 > > > @@ -0,0 +1,69 @@ > > > +/* > > > + * Licensed to the Apache Software > Foundation (ASF) > > > under one or more > > > + * contributor license agreements. > See the > > > NOTICE file distributed with > > > + * this work for additional information > regarding > > > copyright ownership. > > > + * The ASF licenses this file to You under > the > > > Apache License, Version 2.0 > > > + * (the "License"); you may not use this > file except > > > in compliance with > > > + * the License. You may obtain a > copy of the > > > License at > > > + * > > > + * http://www.apache.org/licenses/LICENSE-2.0 > > > + * > > > + * Unless required by applicable law or > agreed to in > > > writing, software > > > + * distributed under the License is > distributed on > > > an "AS IS" BASIS, > > > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY > KIND, > > > either express or implied. > > > + * See the License for the specific > language > > > governing permissions and > > > + * limitations under the License. > > > + * > > > + */ > > > +package org.apache.tools.ant.filters; > > > + > > > +import java.io.IOException; > > > +import java.io.Reader; > > > + > > > +/** > > > + * Like the Unix uniq(1) command, only returns > lines that > > > are > > > + * different from their ancestor line. > > > + * > > > + * <p>This filter is probably most useful > if used > > > together with a sortfilter.</p> > > > + * > > > + * @since Ant 1.8.0 > > > + */ > > > +public class UniqFilter extends > BaseFilterReader > > > implements ChainableReader { > > > + > > > + private String lastLine = null; > > > + private String currentLine = > null; > > > + > > > + public UniqFilter() { } > > > + > > > + public UniqFilter(Reader rdr) { > > > + super(rdr); > > > + } > > > + > > > + public int read() throws > IOException { > > > + int ch = -1; > > > + if (currentLine != > null) { > > > + ch = > > > currentLine.charAt(0); > > > + if > > > (currentLine.length() == 1) { > > > + > > > currentLine = null; > > > + } else > { > > > + > > > currentLine = currentLine.substring(1); > > > + } > > > + } else { > > > + do { > > > + > > > currentLine = readLine(); > > > + } > while > > > (lastLine != null && currentLine != null > > > + > > > && > > > lastLine.equals(currentLine)); > > > + > lastLine = > > > currentLine; > > > + if > (currentLine > > > != null) { > > > + > > > return read(); > > > + } > > > + } > > > + return ch; > > > + } > > > + > > > + public Reader chain(final Reader > rdr) { > > > + UniqFilter newFilter > = new > > > UniqFilter(rdr); > > > + > > > newFilter.setInitialized(true); > > > + return newFilter; > > > + } > > > +} > > > > > > Propchange: > > > > ant/core/trunk/src/main/org/apache/tools/ant/filters/UniqFilter.java > > > > > > ------------------------------------------------------------------------------ > > > svn:eol-style = native > > > > > > Added: > > > > ant/core/trunk/src/tests/antunit/filters/expected/sortuniq.txt > > > URL: > > http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/filters/expected/sortuniq.txt?rev=808018&view=auto > > > > > > ============================================================================== > > > --- > > > > ant/core/trunk/src/tests/antunit/filters/expected/sortuniq.txt > > > (added) > > > +++ > > > > ant/core/trunk/src/tests/antunit/filters/expected/sortuniq.txt > > > Wed Aug 26 14:14:12 2009 > > > @@ -0,0 +1,4 @@ > > > +A > > > +AA > > > +B > > > +C > > > > > > Propchange: > > > > ant/core/trunk/src/tests/antunit/filters/expected/sortuniq.txt > > > > > > ------------------------------------------------------------------------------ > > > svn:eol-style = native > > > > > > Added: > > > > ant/core/trunk/src/tests/antunit/filters/expected/uniq.txt > > > URL: > > http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/filters/expected/uniq.txt?rev=808018&view=auto > > > > > > ============================================================================== > > > --- > > > > ant/core/trunk/src/tests/antunit/filters/expected/uniq.txt > > > (added) > > > +++ > > > > ant/core/trunk/src/tests/antunit/filters/expected/uniq.txt > > > Wed Aug 26 14:14:12 2009 > > > @@ -0,0 +1,5 @@ > > > +A > > > +AA > > > +B > > > +C > > > +B > > > > > > Propchange: > > > > ant/core/trunk/src/tests/antunit/filters/expected/uniq.txt > > > > > > ------------------------------------------------------------------------------ > > > svn:eol-style = native > > > > > > Added: > > > > ant/core/trunk/src/tests/antunit/filters/input/uniq.txt > > > URL: > > http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/filters/input/uniq.txt?rev=808018&view=auto > > > > > > ============================================================================== > > > --- > ant/core/trunk/src/tests/antunit/filters/input/uniq.txt > > > (added) > > > +++ > ant/core/trunk/src/tests/antunit/filters/input/uniq.txt > > > Wed Aug 26 14:14:12 2009 > > > @@ -0,0 +1,6 @@ > > > +A > > > +AA > > > +AA > > > +B > > > +C > > > +B > > > > > > Propchange: > > > > ant/core/trunk/src/tests/antunit/filters/input/uniq.txt > > > > > > ------------------------------------------------------------------------------ > > > svn:eol-style = native > > > > > > Added: > > > > ant/core/trunk/src/tests/antunit/filters/uniq-test.xml > > > URL: > > http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/filters/uniq-test.xml?rev=808018&view=auto > > > > > > ============================================================================== > > > --- > ant/core/trunk/src/tests/antunit/filters/uniq-test.xml > > > (added) > > > +++ > ant/core/trunk/src/tests/antunit/filters/uniq-test.xml > > > Wed Aug 26 14:14:12 2009 > > > @@ -0,0 +1,49 @@ > > > +<?xml version="1.0"?> > > > +<!-- > > > + Licensed to the Apache > Software > > > Foundation (ASF) under one or more > > > + contributor license > agreements. > > > See the NOTICE file distributed with > > > + this work for additional > information > > > regarding copyright ownership. > > > + The ASF licenses this file to > You under > > > the Apache License, Version 2.0 > > > + (the "License"); you may not > use this > > > file except in compliance with > > > + the License. You may > obtain a copy > > > of the License at > > > + > > > + http://www.apache.org/licenses/LICENSE-2.0 > > > + > > > + Unless required by applicable > law or > > > agreed to in writing, software > > > + distributed under the License > is > > > distributed on an "AS IS" BASIS, > > > + WITHOUT WARRANTIES OR > CONDITIONS OF ANY > > > KIND, either express or implied. > > > + See the License for the > specific > > > language governing permissions and > > > + limitations under the > License. > > > + --> > > > +<project default="antunit" > > > xmlns:au="antlib:org.apache.ant.antunit"> > > > + <import file="../antunit-base.xml" > /> > > > + > > > + <target name="setUp"> > > > + <mkdir dir="${output}"/> > > > + </target> > > > + > > > + <target name="testUniqFilter" > > > depends="setUp"> > > > + <copy file="input/uniq.txt" > > > + > > > tofile="${output}/uniq.txt"> > > > + <filterchain> > > > + <uniqfilter/> > > > + </filterchain> > > > + </copy> > > > + <au:assertFilesMatch > > > + > > > expected="expected/uniq.txt" > > > + > > > actual="${output}/uniq.txt"/> > > > + </target> > > > + > > > + <target name="testSortUniq" > depends="setUp"> > > > + <copy file="input/uniq.txt" > > > + > > > tofile="${output}/uniq.txt"> > > > + <filterchain> > > > + <sortfilter/> > > > + <uniqfilter/> > > > + </filterchain> > > > + </copy> > > > + <au:assertFilesMatch > > > + > > > expected="expected/sortuniq.txt" > > > + > > > actual="${output}/uniq.txt"/> > > > + </target> > > > +</project> > > > > > > Propchange: > > > > ant/core/trunk/src/tests/antunit/filters/uniq-test.xml > > > > > > ------------------------------------------------------------------------------ > > > svn:eol-style = native > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org > > For additional commands, e-mail: dev-h...@ant.apache.org > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org For additional commands, e-mail: dev-h...@ant.apache.org