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 > >