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]