Here is a patch to fix CRLF problems in Soundex.java. I'm going to submit a few patches in the next couple of days, I'll hit the "low hanging fruit" first, and move on to patches after that.
If you are interested, http://nagoya.apache.org/wiki/apachewiki.cgi?action=edit&id=CodecProjectPage s shows a little list of thoughts for Codec. If you've got input, (and I know that people have had input in the past), let's start s discussion either on this list or on that page. I'm going to submit a few patches in the next couple of days, I'll hit the low hanging fruit first, and move on to patches after that. Right now, I've got a patch from Iulian that needs some looking at, and some old submissions from Kyle Burton. -------- Tim O'Brien > -----Original Message----- > From: Rodney Waldhoff [mailto:[EMAIL PROTECTED]] > Sent: Friday, January 31, 2003 6:34 AM > To: Jakarta Commons Developers List > Subject: RE: Wiki and [codec] > > > On Wed, 29 Jan 2003, Henri Yandell wrote: > > > > > I see one: > > > > Jan 20 Iulian Musat (11,350) [Sandbox] [Codec] [PATCH] Base64 > > Ok, I'll try to take a look. > > > Plus a patch that Tim himself was reworking because it was cvs > > clashing with a change of yours Rodney. > > I'm not sure what this one is. I haven't touched anything in > codec since Nov 18 of last year. > > > Hen > > > > > On Wed, 29 Jan 2003, Rodney Waldhoff wrote: > > > > > On Wed, 29 Jan 2003, O'brien, Tim wrote: > > > > > > > On a related note, [codec] is languishing. We've had two code > > > > submissions that haven't been taken up in recent > months. I think > > > > it might be time for a repolishing of the proposal. My > DayJob is > > > > 24/7 these days, but I'll take a crack at a project plan in the > > > > coming week if no one else steps up to the plate. > > > > > > Tim, if you can point me to the patches that fell through the > > > cracks, and even better, endorse them as reasonable and > tested, I'd > > > be more than happy to take a look. > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >
Index: Soundex.java =================================================================== RCS file: /home/cvspublic/jakarta-commons-sandbox/codec/src/java/org/apache/commons/codec/Soundex.java,v retrieving revision 1.4 diff -u -r1.4 Soundex.java --- Soundex.java 18 Nov 2002 13:00:26 -0000 1.4 +++ Soundex.java 31 Jan 2003 18:47:08 -0000 @@ -1,4 +1,144 @@ -/* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2001-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" and * "Apache Commons" must not be used to endorse or promote products * derived from this software without prior written permission. For * written permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", * "Apache Turbine", nor may "Apache" appear in their name, without * prior written permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.commons.codec; -/** * Encodes a string into a refined soundex value. * A refined soundex code is optimized for spell checking word. * "Soundex" method originally developed by Margaret Odell and * Robert Russell * * http://www.bluepoof.com/Soundex/info2.html * * @todo Needs internationalisation in a future release. * * @author [EMAIL PROTECTED] * @author [EMAIL PROTECTED] * @version $Revision: 1.4 $ $Date: 2002/11/18 13:00:26 $ */ public class Soundex implements Encoder { static public final char[] US_ENGLISH_MAPPING = "01230120022455012623010202".toCharArray(); static public final Soundex US_ENGLISH = new Soundex(); private char[] soundexMapping; private int maxLength = 4; - public Soundex() { this(US_ENGLISH_MAPPING); } - public Soundex(char[] mapping) { this.soundexMapping = mapping; } /** * Get the SoundEx value of a string. * This implementation is taken from the code-snippers on * http://www.sourceforge.net/ */ public String soundex(String str) { if(null == str || str.length() == 0) { return str; } char out[] = { '0', '0', '0', '0' }; char last, mapped; int incount = 1, count = 1; out[0] = Character.toUpperCase( str.charAt(0) ); last = getMappingCode( str.charAt(0) ); while( (incount < str.length() ) && (mapped = getMappingCode(str.charAt(incount++))) != 0 && (count < maxLength) ) { if( (mapped != '0') && (mapped != last) ) { out[count++] = mapped; } last = mapped; } return new String(out); } public String encode(String pString) { return( soundex( pString ) ); } /** * Used internally by the SoundEx algorithm. */ private char getMappingCode(char c) { if( !Character.isLetter(c) ) { return 0; } else { return soundexMapping[Character.toUpperCase(c) - 'A']; } } /** * Returns the maxLength. Standard Soundex * @return int */ public int getMaxLength() { return maxLength; } /** * Sets the maxLength. * @param maxLength The maxLength to set */ public void setMaxLength(int maxLength) { this.maxLength = maxLength; } } \ No newline at end of file +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001-2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache Commons" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact [EMAIL PROTECTED] + * + * 5. Products derived from this software may not be called "Apache", + * "Apache Turbine", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */package org.apache.commons.codec; + +/** + * Encodes a string into a refined soundex value. + * A refined soundex code is optimized for spell checking word. + * "Soundex" method originally developed by Margaret Odell and + * Robert Russell + * + * http://www.bluepoof.com/Soundex/info2.html + * + * @todo Needs internationalisation in a future release. + * + * @author [EMAIL PROTECTED] + * @author [EMAIL PROTECTED] + * @version $Revision: 1.4 $ $Date: 2002/11/18 13:00:26 $ + */ +public class Soundex implements Encoder { + + static public final char[] US_ENGLISH_MAPPING = + "01230120022455012623010202".toCharArray(); + + static public final Soundex US_ENGLISH = new Soundex(); + + private char[] soundexMapping; + private int maxLength = 4; + + + public Soundex() { + this(US_ENGLISH_MAPPING); + } + + public Soundex(char[] mapping) { + this.soundexMapping = mapping; + } + + /** + * Get the SoundEx value of a string. + * This implementation is taken from the code-snippers on + * http://www.sourceforge.net/ + */ + public String soundex(String str) { + if(null == str || str.length() == 0) { return str; } + + char out[] = { '0', '0', '0', '0' }; + char last, mapped; + int incount = 1, count = 1; + out[0] = Character.toUpperCase( str.charAt(0) ); + last = getMappingCode( str.charAt(0) ); + while( (incount < str.length() ) && + (mapped = getMappingCode(str.charAt(incount++))) != 0 && + (count < maxLength) ) + { + if( (mapped != '0') && (mapped != last) ) { + out[count++] = mapped; + } + last = mapped; + } + return new String(out); + } + + public String encode(String pString) { + return( soundex( pString ) ); + } + + /** + * Used internally by the SoundEx algorithm. + */ + private char getMappingCode(char c) { + if( !Character.isLetter(c) ) { + return 0; + } else { + return soundexMapping[Character.toUpperCase(c) - 'A']; + } + } + + /** + * Returns the maxLength. Standard Soundex + * @return int + */ + public int getMaxLength() { + return maxLength; + } + + /** + * Sets the maxLength. + * @param maxLength The maxLength to set + */ + public void setMaxLength(int maxLength) { + this.maxLength = maxLength; + } + +}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]