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]

Reply via email to