aboutsummaryrefslogtreecommitdiff
path: root/contrib/fuzzystrmatch/dmetaphone.c
Commit message (Collapse)AuthorAge
* pgindent run for 9.5Bruce Momjian2015-05-23
|
* Replace a bunch more uses of strncpy() with safer coding.Tom Lane2015-01-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | strncpy() has a well-deserved reputation for being unsafe, so make an effort to get rid of nearly all occurrences in HEAD. A large fraction of the remaining uses were passing length less than or equal to the known strlen() of the source, in which case no null-padding can occur and the behavior is equivalent to memcpy(), though doubtless slower and certainly harder to reason about. So just use memcpy() in these cases. In other cases, use either StrNCpy() or strlcpy() as appropriate (depending on whether padding to the full length of the destination buffer seems useful). I left a few strncpy() calls alone in the src/timezone/ code, to keep it in sync with upstream (the IANA tzcode distribution). There are also a few such calls in ecpg that could possibly do with more analysis. AFAICT, none of these changes are more than cosmetic, except for the four occurrences in fe-secure-openssl.c, which are in fact buggy: an overlength source leads to a non-null-terminated destination buffer and ensuing misbehavior. These don't seem like security issues, first because no stack clobber is possible and second because if your values of sslcert etc are coming from untrusted sources then you've got problems way worse than this. Still, it's undesirable to have unpredictable behavior for overlength inputs, so back-patch those four changes to all active branches.
* Add missing va_end() call to a early exit in dmetaphone.c's StringAt().Andres Freund2015-01-04
| | | | | | | Pointed out by Coverity. Backpatch to all supported branches, the code has been that way for a long while.
* Define META_FREE in a way that doesn't cause -Wempty-body warnings.Andres Freund2014-09-26
| | | | | | | | | That get rids of the only -Wempty-body warning when compiling postgres with gcc 4.8/9. As 6550b901f shows, it's useful to be able to use that option routinely. Without asserts there's many more warnings, but that's food for another commit.
* Create function prototype as part of PG_FUNCTION_INFO_V1 macroPeter Eisentraut2014-04-18
| | | | | | | | | | | | | | | | | Because of gcc -Wmissing-prototypes, all functions in dynamically loadable modules must have a separate prototype declaration. This is meant to detect global functions that are not declared in header files, but in cases where the function is called via dfmgr, this is redundant. Besides filling up space with boilerplate, this is a frequent source of compiler warnings in extension modules. We can fix that by creating the function prototype as part of the PG_FUNCTION_INFO_V1 macro, which such modules have to use anyway. That makes the code of modules cleaner, because there is one less place where the entry points have to be listed, and creates an additional check that functions have the right prototype. Remove now redundant prototypes from contrib and other modules.
* fuzzystrmatch: replace broken link in C commentBruce Momjian2013-09-10
| | | | Albe Laurenz
* Standardize treatment of strcmp() return valuePeter Eisentraut2011-12-27
| | | | | Always compare the return value to 0, don't use cute tricks like if (!strcmp(...)).
* Remove cvs keywords from all files.Magnus Hagander2010-09-20
|
* pgindent run for 9.0, second runBruce Momjian2010-07-06
|
* Make dmetaphone.c safe for pgindent and fussy compilers. Still to do: make ↵Andrew Dunstan2010-04-05
| | | | it properly encoding aware w.r.t. chars U+00C7 and U+00D1.
* 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef listBruce Momjian2009-06-11
| | | | provided by Andrew.
* Simplify and standardize conversions between TEXT datums and ordinary CTom Lane2008-03-25
| | | | | | | | | | | | | | | | | | | | strings. This patch introduces four support functions cstring_to_text, cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and two macros CStringGetTextDatum and TextDatumGetCString. A number of existing macros that provided variants on these themes were removed. Most of the places that need to make such conversions now require just one function or macro call, in place of the multiple notational layers that used to be needed. There are no longer any direct calls of textout or textin, and we got most of the places that were using handmade conversions via memcpy (there may be a few still lurking, though). This commit doesn't make any serious effort to eliminate transient memory leaks caused by detoasting toasted text objects before they reach text_to_cstring. We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few places where it was easy, but much more could be done. Brendan Jurd and Tom Lane
* Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len).Tom Lane2007-02-27
| | | | | | | | | | | Get rid of VARATT_SIZE and VARATT_DATA, which were simply redundant with VARSIZE and VARDATA, and as a consequence almost no code was using the longer names. Rename the length fields of struct varlena and various derived structures to catch anyplace that was accessing them directly; and clean up various places so caught. In itself this patch doesn't change any behavior at all, but it is necessary infrastructure if we hope to play any games with the representation of varlena headers. Greg Stark and Tom Lane
* Fix bugs in plpgsql and ecpg caused by assuming that isspace() would onlyTom Lane2006-09-22
| | | | | | | | | return true for exactly the characters treated as whitespace by their flex scanners. Per report from Victor Snezhko and subsequent investigation. Also fix a passel of unsafe usages of <ctype.h> functions, that is, ye olde char-vs-unsigned-char issue. I won't miss <ctype.h> when we are finally able to stop using it.
* Fix a few places where $Id$ and $Header$ CVS tags had crept into theTom Lane2006-07-16
| | | | source tree. They should all be $PostgreSQL$ of course.
* Fix a passel of recently-committed violations of the rule 'thou shaltTom Lane2006-07-14
| | | | | have no other gods before c.h'. Also remove some demonstrably redundant #include lines, mostly of <errno.h> which was added to c.h years ago.
* Add CVS tag lines to files that were lacking them.Bruce Momjian2006-03-11
|
* Standard pgindent run for 8.1.Bruce Momjian2005-10-15
|
* One of the web pages mentioned in dmetaphone.c has moved. Also fixBruce Momjian2005-09-30
| | | | | | | | | | a few typos in comments. The dictionaries I checked list "altho" as a variant of "although," but I didn't find any other instances of the former in the source tree so I changed it. Michael Fuhr
* Adjust comments previously moved to column 1 by pgident.Bruce Momjian2004-10-07
|
* Pgindent run for 8.0.Bruce Momjian2004-08-29
|
* I notice that contrib/fuzzystrmatch/dmetaphone.c doesn't compile cleanlyBruce Momjian2004-08-20
| | | | | | | | as it stands - it mixes declarations in code, C++-style. The attached patch shifts declarations to the tops of functions and enables this file to compile cleanly as C. Richard Poole
* Add double metaphone code from Andrew Dunstan. Also change metaphone so thatJoe Conway2004-07-01
an empty input string causes an empty output string to be returned, instead of throwing an ERROR -- per complaint from Aaron Hillegass, and consistent with double metaphone. Fix examples in README.soundex pointed out by James Robinson.