Mercurial > cpython-lru_cache-weakref
annotate Modules/soundex.c @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | b2a1c99ca642 |
| children | 38023a425e48 |
| rev | line source |
|---|---|
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 /* |
| 2738 | 2 [Header: soundexmodule.c,v 1.2 95/05/02 15:40:45 dwwillia Exp ] |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 Perform soundex comparisons on strings. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 Soundex is an algorithm that hashes English strings into numerical value. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 Strings that sound the same are hashed to the same value. This allows |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 for non-literal string matching. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 From: David Wayne Williams <dwwillia@iucf.indiana.edu> |
|
3593
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
11 |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
12 Apr 29 1996 - added get_soundex method that returns the soundex of a |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
13 string (chrish@qnx.com) |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
14 May 2 1996 - added doc strings (chrish@qnx.com) |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 #include <string.h> |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 #include <ctype.h> |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 #include "Python.h" |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 |
|
3593
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
21 static char soundex_module__doc__[] = |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
22 "Perform Soundex comparisons on strings, allowing non-literal matching."; |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
23 |
|
3611
453a9f6e9618
make soundex_hash static
Guido van Rossum <guido@python.org>
parents:
3593
diff
changeset
|
24 static void soundex_hash(char *str, char *result) |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 { |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 char *sptr = str; /* pointer into str */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 char *rptr = result; /* pointer into result */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 |
|
4599
b2a1c99ca642
Add case for 'R' and a little bit of cleanup. Andrew Kuchling.
Guido van Rossum <guido@python.org>
parents:
3611
diff
changeset
|
29 if(*str == '\0') |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 { |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 strcpy(result,"000000"); |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 return; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 } |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 /* Preserve the first character of the input string. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 *(rptr++) = toupper(*(sptr++)); |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 /* Translate the rest of the input string into result. The following |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 transformations are used: |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 |
|
4599
b2a1c99ca642
Add case for 'R' and a little bit of cleanup. Andrew Kuchling.
Guido van Rossum <guido@python.org>
parents:
3611
diff
changeset
|
42 1) All vowels, W, and H, are skipped. |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 2) BFPV = 1 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 CGJKQSXZ = 2 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 DT = 3 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 L = 4 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 MN = 5 |
|
4599
b2a1c99ca642
Add case for 'R' and a little bit of cleanup. Andrew Kuchling.
Guido van Rossum <guido@python.org>
parents:
3611
diff
changeset
|
49 R = 6 |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 3) Only translate the first of adjacent equal translations. I.E. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 remove duplicate digits. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 |
|
4599
b2a1c99ca642
Add case for 'R' and a little bit of cleanup. Andrew Kuchling.
Guido van Rossum <guido@python.org>
parents:
3611
diff
changeset
|
55 for(;(rptr - result) < 6 && *sptr != '\0';sptr++) |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 { |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 switch (toupper(*sptr)) |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 { |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 case 'W': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 case 'H': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 case 'A': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 case 'I': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
63 case 'O': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
64 case 'U': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
65 case 'Y': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
66 break; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 case 'B': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 case 'F': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
69 case 'P': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
70 case 'V': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
71 if(*(rptr - 1) != '1') |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
72 *(rptr++) = '1'; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
73 break; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
74 case 'C': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
75 case 'G': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
76 case 'J': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
77 case 'K': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
78 case 'Q': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
79 case 'S': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
80 case 'X': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
81 case 'Z': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
82 if(*(rptr - 1) != '2') |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
83 *(rptr++) = '2'; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
84 break; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
85 case 'D': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
86 case 'T': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
87 if(*(rptr - 1) != '3') |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
88 *(rptr++) = '3'; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
89 break; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
90 case 'L': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
91 if(*(rptr - 1) != '4') |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
92 *(rptr++) = '4'; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
93 break; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
94 case 'M': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
95 case 'N': |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
96 if(*(rptr - 1) != '5') |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
97 *(rptr++) = '5'; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
98 break; |
|
4599
b2a1c99ca642
Add case for 'R' and a little bit of cleanup. Andrew Kuchling.
Guido van Rossum <guido@python.org>
parents:
3611
diff
changeset
|
99 case 'R': |
|
b2a1c99ca642
Add case for 'R' and a little bit of cleanup. Andrew Kuchling.
Guido van Rossum <guido@python.org>
parents:
3611
diff
changeset
|
100 if(*(rptr -1) != '6') |
|
b2a1c99ca642
Add case for 'R' and a little bit of cleanup. Andrew Kuchling.
Guido van Rossum <guido@python.org>
parents:
3611
diff
changeset
|
101 *(rptr++) = '6'; |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
102 default: |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
103 break; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
104 } |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
105 } |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
106 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
107 /* Pad 0's on right side of string out to 6 characters. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
108 */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
109 for(; rptr < result + 6; rptr++) |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
110 *rptr = '0'; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
111 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
112 /* Terminate the result string. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
113 */ |
|
4599
b2a1c99ca642
Add case for 'R' and a little bit of cleanup. Andrew Kuchling.
Guido van Rossum <guido@python.org>
parents:
3611
diff
changeset
|
114 *(result + 6) = '\0'; |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
115 } |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
116 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
117 |
|
3593
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
118 /* Return the actual soundex value. */ |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
119 /* Added by Chris Herborth (chrish@qnx.com) */ |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
120 static char soundex_get_soundex__doc__[] = |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
121 "Return the (English) Soundex hash value for a string."; |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
122 static PyObject * |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
123 get_soundex(PyObject *self, PyObject *args) |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
124 { |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
125 char *str; |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
126 char sdx[7]; |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
127 |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
128 if(!PyArg_ParseTuple( args, "s", &str)) |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
129 return NULL; |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
130 |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
131 soundex_hash(str, sdx); |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
132 |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
133 return PyString_FromString(sdx); |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
134 } |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
135 |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
136 static char soundex_sound_similar__doc__[] = |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
137 "Compare two strings to see if they sound similar (English)."; |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
138 static PyObject * |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
139 sound_similar(PyObject *self, PyObject *args) |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
140 { |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
141 char *str1, *str2; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
142 char res1[7], res2[7]; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
143 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
144 if(!PyArg_ParseTuple(args, "ss", &str1, &str2)) |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
145 return NULL; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
146 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
147 soundex_hash(str1, res1); |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
148 soundex_hash(str2, res2); |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
149 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
150 if(!strcmp(res1,res2)) |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
151 return Py_BuildValue("i",1); |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
152 else |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
153 return Py_BuildValue("i",0); |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
154 } |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
155 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
156 /* Python Method Table. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
157 */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
158 static PyMethodDef SoundexMethods[] = |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
159 { |
|
3593
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
160 {"sound_similar", sound_similar, 1, soundex_sound_similar__doc__}, |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
161 {"get_soundex", get_soundex, 1, soundex_get_soundex__doc__}, |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
162 |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
163 {NULL, NULL } /* sentinel */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
164 }; |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
165 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
166 |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
167 /* Register the method table. |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
168 */ |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
169 void |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
170 initsoundex() |
|
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
171 { |
|
3593
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
172 (void) Py_InitModule4("soundex", |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
173 SoundexMethods, |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
174 soundex_module__doc__, |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
175 (PyObject *)NULL, |
|
de987fd67c94
Added __doc__ strings. Added get_soundex().
Guido van Rossum <guido@python.org>
parents:
2738
diff
changeset
|
176 PYTHON_API_VERSION); |
|
2737
3cf896d24e50
new modules soundex.c and environment.c
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
177 } |
