X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/8ee36fb78cf2262aff921b192707704aeed2bb5a..b87d6226fb3e4f0a0af225f819bc273342e8f393:/module/nominatim.c?ds=sidebyside diff --git a/module/nominatim.c b/module/nominatim.c index a0d8c5ae..54632f76 100644 --- a/module/nominatim.c +++ b/module/nominatim.c @@ -1,12 +1,22 @@ +/** + * SPDX-License-Identifier: GPL-2.0-only + * + * This file is part of Nominatim. (https://nominatim.org) + * + * Copyright (C) 2022 by the Nominatim developer community. + * For a full list of authors see the git log. + */ #include "postgres.h" #include "fmgr.h" #include "mb/pg_wchar.h" #include -#ifdef PG_MODULE_MAGIC -PG_MODULE_MAGIC; +#if PG_MAJORVERSION_NUM > 15 +#include "varatt.h" #endif +PG_MODULE_MAGIC; + Datum transliteration( PG_FUNCTION_ARGS ); Datum gettokenstring( PG_FUNCTION_ARGS ); void str_replace(char* buffer, int* len, int* changes, char* from, int fromlen, char* to, int tolen, int); @@ -168,7 +178,7 @@ void str_replace(char* buffer, int* len, int* changes, char* from, int fromlen, p = strstr(buffer, from); while(p) { - if (!isspace || p == buffer || *(p-1) != ' ') + if (!isspace || (p > buffer && *(p-1) != ' ')) { (*changes)++; if (tolen != fromlen) memmove(p+tolen, p+fromlen, *len-(p-buffer)+1);