util: make remaining headers includable from C++

libnotmuch_util.a is supposed to be usable from the library and the
CLI, but much the library is compiled as C++. Add in appropriate
wrapping to prevent symbol mangling. These wrappers already existed in
string-util.h; it seems better to be consistent.
This commit is contained in:
David Bremner 2019-03-02 16:26:06 -04:00
parent 9f7e851263
commit 152b6cac5d
7 changed files with 57 additions and 3 deletions

View file

@ -5,6 +5,10 @@
#include "gmime-extra.h"
#include "notmuch.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _notmuch_crypto {
bool verify;
notmuch_decryption_policy_t decrypt;
@ -34,4 +38,7 @@ _notmuch_crypto_get_gmime_ctx_for_protocol (_notmuch_crypto_t *crypto,
void
_notmuch_crypto_cleanup (_notmuch_crypto_t *crypto);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -25,6 +25,10 @@
#include "function-attributes.h"
#ifdef __cplusplus
extern "C" {
#endif
/* There's no point in continuing when we've detected that we've done
* something wrong internally (as opposed to the user passing in a
* bogus value).
@ -44,4 +48,7 @@ _internal_error (const char *format, ...) PRINTF_ATTRIBUTE (1, 2) NORETURN_ATTRI
_internal_error (format " (%s).\n", \
##__VA_ARGS__, __location__)
#ifdef __cplusplus
}
#endif
#endif

View file

@ -1,11 +1,13 @@
#ifndef _GMIME_EXTRA_H
#define _GMIME_EXTRA_H
#include <gmime/gmime.h>
GMimeStream *g_mime_stream_stdout_new(void);
#include <talloc.h>
#ifdef __cplusplus
extern "C" {
#endif
GMimeStream *g_mime_stream_stdout_new(void);
#if (GMIME_MAJOR_VERSION < 3)
@ -100,4 +102,8 @@ gint64 g_mime_utils_header_decode_date_unix (const char *date);
*/
const char * g_mime_certificate_get_valid_userid (GMimeCertificate *cert);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -1,6 +1,10 @@
#ifndef _HEX_ESCAPE_H
#define _HEX_ESCAPE_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum hex_status {
HEX_SUCCESS = 0,
HEX_SYNTAX_ERROR,
@ -38,4 +42,9 @@ hex_decode (void *talloc_ctx, const char *in, char **out,
*/
hex_status_t
hex_decode_inplace (char *s);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -3,6 +3,10 @@
#include <talloc.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Like talloc_strndup, but take an extra parameter for the internal talloc
* name (for debugging) */
@ -15,4 +19,8 @@ talloc_strndup_named_const (void *ctx, const char *str,
#define talloc_strndup_debug(ctx, str, len) talloc_strndup_named_const (ctx, str, len, __location__)
#ifdef __cplusplus
}
#endif
#endif

View file

@ -25,6 +25,10 @@
#include <sys/types.h>
#include <regex.h>
#ifdef __cplusplus
extern "C" {
#endif
/* xutil.c */
void *
xcalloc (size_t nmemb, size_t size);
@ -49,4 +53,8 @@ int
xregexec (const regex_t *preg, const char *string,
size_t nmatch, regmatch_t pmatch[], int eflags);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -4,6 +4,10 @@
#include "util.h"
#include <zlib.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Like getline, but read from a gzFile. Allocation is with talloc.
* Returns:
*
@ -22,4 +26,9 @@ gz_getline (void *ctx, char **lineptr, ssize_t *bytes_read, gzFile stream);
const char *
gz_error_string (util_status_t status, gzFile stream);
#ifdef __cplusplus
}
#endif
#endif