4848
4949
5050/*
51- * $Revision: 1.1 $
52- * $Id: dmetaphone.c,v 1.1 2004/07/01 03:25:48 joe Exp $
51+ * $Revision: 1.2 $
52+ * $Id: dmetaphone.c,v 1.2 2004/08/20 19:48:14 momjian Exp $
5353 */
5454
5555
@@ -138,12 +138,16 @@ PG_FUNCTION_INFO_V1(dmetaphone);
138138Datum
139139dmetaphone (PG_FUNCTION_ARGS )
140140{
141+ text * arg ,* result ;
142+ int alen ,rsize ;
143+ char * aptr ,* codes [2 ],* code ,* rptr ;
144+
141145#ifdef DMETAPHONE_NOSTRICT
142146if (PG_ARGISNULL (0 ))
143147PG_RETURNNULL ();
144148#endif
145- text * arg = PG_GETARG_TEXT_P (0 );
146- int alen = VARSIZE (arg )- VARHDRSZ ;
149+ arg = PG_GETARG_TEXT_P (0 );
150+ alen = VARSIZE (arg )- VARHDRSZ ;
147151
148152/*
149153 * Postgres' string values might not have trailing nuls.
@@ -153,18 +157,17 @@ dmetaphone(PG_FUNCTION_ARGS)
153157 * (and we don't make space for it).
154158 */
155159
156- char * aptr = palloc (alen + 1 );
160+ aptr = palloc (alen + 1 );
157161memcpy (aptr ,VARDATA (arg ),alen );
158162aptr [alen ]= 0 ;
159- char * codes [2 ];
160163DoubleMetaphone (aptr ,codes );
161- char * code = codes [0 ];
164+ code = codes [0 ];
162165if (!code )
163166code = "" ;
164- int rsize = VARHDRSZ + strlen (code ) ;
165- text * result = (text * )palloc (rsize );
167+ rsize = VARHDRSZ + strlen (code ) ;
168+ result = (text * )palloc (rsize );
166169memset (result ,0 ,rsize );
167- char * rptr = VARDATA (result );
170+ rptr = VARDATA (result );
168171memcpy (rptr ,code ,strlen (code ));
169172VARATT_SIZEP (result )= rsize ;
170173PG_RETURN_TEXT_P (result );
@@ -180,24 +183,27 @@ PG_FUNCTION_INFO_V1(dmetaphone_alt);
180183Datum
181184dmetaphone_alt (PG_FUNCTION_ARGS )
182185{
186+ text * arg ,* result ;
187+ int alen ,rsize ;
188+ char * aptr ,* codes [2 ],* code ,* rptr ;
189+
183190#ifdef DMETAPHONE_NOSTRICT
184191if (PG_ARGISNULL (0 ))
185192PG_RETURNNULL ();
186193#endif
187- text * arg = PG_GETARG_TEXT_P (0 );
188- int alen = VARSIZE (arg )- VARHDRSZ ;
189- char * aptr = palloc (alen + 1 );
190- memcpy (aptr ,VARDATA (arg ),alen );
194+ arg = PG_GETARG_TEXT_P (0 );
195+ alen = VARSIZE (arg )- VARHDRSZ ;
196+ aptr = palloc (alen + 1 );
197+ memcpy (aptr ,VARDATA (arg ),alen );
191198aptr [alen ]= 0 ;
192- char * codes [2 ];
193199DoubleMetaphone (aptr ,codes );
194- char * code = codes [1 ];
200+ code = codes [1 ];
195201if (!code )
196202code = "" ;
197- int rsize = VARHDRSZ + strlen (code ) ;
198- text * result = (text * )palloc (rsize );
203+ rsize = VARHDRSZ + strlen (code ) ;
204+ result = (text * )palloc (rsize );
199205memset (result ,0 ,rsize );
200- char * rptr = VARDATA (result );
206+ rptr = VARDATA (result );
201207memcpy (rptr ,code ,strlen (code ));
202208VARATT_SIZEP (result )= rsize ;
203209PG_RETURN_TEXT_P (result );