https://issues.dlang.org/show_bug.cgi?id=24505

--- Comment #2 from kinke <ki...@gmx.net> ---
The mixin template could work (the module is the .c file), but I doubt it'd be
a big improvement over simply ignoring a conflicting macro - as the importer
needs to know about such (potentially platform-dependant) header details, i.e.,
what symbol might be a macro.

Another manual solution could be to skip the translation if the macro is
undefined later via `#undef stat` - that would be doable in the .c file
including the headers, without having to patch the original headers.

Note that the Postgres header
(https://github.com/postgres/postgres/blob/master/src/include/port/win32_port.h)
is actually even a bit worse, defining 3 `stat` 'symbols':
```
#define stat microsoft_native_stat
#include <sys/stat.h>
#undef stat
[…]
struct stat { … };
[…]
#define stat(path, sb)          _pgstat64(path, sb)
```

--

Reply via email to