| /*------------------------------------------------------------------------- |
| * |
| * header.h |
| * Replacement header file for Snowball stemmer modules |
| * |
| * The Snowball stemmer modules do #include "header.h", and think they |
| * are including snowball/libstemmer/header.h. We adjust the CPPFLAGS |
| * so that this file is found instead, and thereby we can modify the |
| * headers they see. The main point here is to ensure that pg_config.h |
| * is included before any system headers such as <stdio.h>; without that, |
| * we have portability issues on some platforms due to variation in |
| * largefile options across different modules in the backend. |
| * |
| * NOTE: this file should not be included into any non-snowball sources! |
| * |
| * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group |
| * |
| * src/include/snowball/header.h |
| * |
| *------------------------------------------------------------------------- |
| */ |
| #ifndef SNOWBALL_HEADR_H |
| #define SNOWBALL_HEADR_H |
| |
| /* |
| * It's against Postgres coding conventions to include postgres.h in a |
| * header file, but we allow the violation here because the alternative is |
| * to modify the machine-generated .c files provided by the Snowball project. |
| */ |
| #include "postgres.h" |
| |
| /* Some platforms define MAXINT and/or MININT, causing conflicts */ |
| #ifdef MAXINT |
| #undef MAXINT |
| #endif |
| #ifdef MININT |
| #undef MININT |
| #endif |
| |
| /* Now we can include the original Snowball header.h */ |
| #include "snowball/libstemmer/header.h" /* pgrminclude ignore */ |
| |
| /* |
| * Redefine standard memory allocation interface to pgsql's one. |
| * This allows us to control where the Snowball code allocates stuff. |
| */ |
| #ifdef malloc |
| #undef malloc |
| #endif |
| #define malloc(a) palloc(a) |
| |
| #ifdef calloc |
| #undef calloc |
| #endif |
| #define calloc(a,b) palloc0((a) * (b)) |
| |
| #ifdef realloc |
| #undef realloc |
| #endif |
| #define realloc(a,b) repalloc(a,b) |
| |
| #ifdef free |
| #undef free |
| #endif |
| #define free(a) pfree(a) |
| |
| #endif /* SNOWBALL_HEADR_H */ |