*: don't include standard C headers inside of extern "C"

Including C headers inside of `extern "C"` breaks use from C++. Hoist
the includes of standard C headers above the block so we don't try
to mangle the stdlib.

I initially tried to scope this with a targeted change but it's too
hard to do correctly that way. This way, we avoid whack-a-mole.

Firefox is working around this in their e21461b7b8b39cc31ba53c47d4f6f310c673ff2f
commit.

Bug: https://bugzilla.mozilla.org/1953080
This commit is contained in:
Sam James 2025-05-27 09:06:08 +01:00
parent e2731914ad
commit b943c31fd8
No known key found for this signature in database
GPG key ID: 738409F520DF9190
207 changed files with 753 additions and 752 deletions

View file

@ -5,12 +5,12 @@
#ifndef AVB_INTERNAL_H
#define AVB_INTERNAL_H
#include <pipewire/pipewire.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <pipewire/pipewire.h>
struct server;
struct avb_mrp;

View file

@ -5,16 +5,16 @@
#ifndef __PIPEWIRE_EXT_CLIENT_NODE0_H__
#define __PIPEWIRE_EXT_CLIENT_NODE0_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <spa/utils/defs.h>
#include <spa/param/param.h>
#include <spa/node/node.h>
#include <pipewire/proxy.h>
#ifdef __cplusplus
extern "C" {
#endif
#define PW_TYPE_INTERFACE_ClientNode PW_TYPE_INFO_INTERFACE_BASE "ClientNode"
#define PW_VERSION_CLIENT_NODE0 0

View file

@ -5,16 +5,16 @@
#ifndef __PIPEWIRE_CLIENT_NODE0_TRANSPORT_H__
#define __PIPEWIRE_CLIENT_NODE0_TRANSPORT_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <string.h>
#include <spa/utils/defs.h>
#include <pipewire/mem.h>
#ifdef __cplusplus
extern "C" {
#endif
/** information about the transport region \memberof pw_client_node */
struct pw_client_node0_transport_info {
int memfd; /**< the memfd of the transport area */

View file

@ -5,10 +5,6 @@
#ifndef PIPEWIRE_WEAK_JACK_H
#define PIPEWIRE_WEAK_JACK_H
#ifdef __cplusplus
extern "C" {
#endif
#include "config.h"
#include <dlfcn.h>
@ -17,6 +13,10 @@ extern "C" {
#include <jack/transport.h>
#include <jack/midiport.h>
#ifdef __cplusplus
extern "C" {
#endif
struct weakjack {
jack_nframes_t (*cycle_wait) (jack_client_t* client);
void (*cycle_signal) (jack_client_t* client, int status);

View file

@ -5,15 +5,15 @@
#ifndef PIPEWIRE_PROTOCOL_NATIVE_CONNECTION_H
#define PIPEWIRE_PROTOCOL_NATIVE_CONNECTION_H
#ifdef __cplusplus
extern "C" {
#endif
#include <spa/utils/defs.h>
#include <spa/utils/hook.h>
#include <pipewire/extensions/protocol-native.h>
#ifdef __cplusplus
extern "C" {
#endif
struct pw_protocol_native_connection_events {
#define PW_VERSION_PROTOCOL_NATIVE_CONNECTION_EVENTS 0
uint32_t version;

View file

@ -5,16 +5,16 @@
#ifndef PIPEWIRE_INTERFACES_V0_H
#define PIPEWIRE_INTERFACES_V0_H
#ifdef __cplusplus
extern "C" {
#endif
#include <spa/utils/defs.h>
#include <spa/param/param.h>
#include <spa/node/node.h>
#include <pipewire/pipewire.h>
#ifdef __cplusplus
extern "C" {
#endif
/** Core */
#define PW_VERSION_CORE_V0 0

View file

@ -5,10 +5,6 @@
#ifndef PIPEWIRE_MANAGER_H
#define PIPEWIRE_MANAGER_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include <spa/utils/defs.h>
@ -16,6 +12,10 @@ extern "C" {
#include <pipewire/pipewire.h>
#ifdef __cplusplus
extern "C" {
#endif
struct client;
struct pw_manager_object;

View file

@ -5,13 +5,13 @@
#ifndef PIPEWIRE_PROTOCOL_PULSE_H
#define PIPEWIRE_PROTOCOL_PULSE_H
#include <spa/utils/defs.h>
#include <spa/utils/hook.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <spa/utils/defs.h>
#include <spa/utils/hook.h>
#define PW_PROTOCOL_PULSE_DEFAULT_PORT 4713
#define PW_PROTOCOL_PULSE_DEFAULT_SOCKET "native"

View file

@ -5,14 +5,14 @@
#ifndef PIPEWIRE_RTSP_CLIENT_H
#define PIPEWIRE_RTSP_CLIENT_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdarg.h>
#include <pipewire/pipewire.h>
#ifdef __cplusplus
extern "C" {
#endif
struct pw_rtsp_client;
struct pw_rtsp_client_events {