On 21 March 2014 22:17, Steve Hay <[email protected]> wrote:
> Testing a mod_perl & libapreq build on Windows I have come across a
> problem introduced into the current SVN trunk of libapreq by revision
> 1124400.
>
> The attached patch fixes the problem for me on Windows, and hopefully
> for any NeXT and NetWare users out there too, but it seems I don't
> have commit access to apreq. Please could somebody apply this (and
> even test the non-Windows cases first if possible too)?
The original patch fixed the build on Windows, but not quite as
intended: It used nothing for the definition of AT_INLINE, instead of
using __inline as I had intended. (The main thing is not to use inline
(or __inline__), which MS VC++ doesn't understand.)
The attached patch corrects that.
Index: library/t/at.h
===================================================================
--- library/t/at.h (revision 1610182)
+++ library/t/at.h (working copy)
@@ -77,8 +77,17 @@
};
+#if defined(WIN32)
+#define AT_INLINE __inline
+#elif !defined(__GNUC__) || __GNUC__ < 2 || \
+ (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ||\
+ defined(NEXT) || defined(NETWARE)
+#define AT_INLINE
+#else
+#define AT_INLINE __inline__
+#endif
-static inline
+static AT_INLINE
int at_report(at_t *t, const char *msg) {
at_report_t *r = t->report;
return r->func(r, msg);
@@ -129,7 +138,7 @@
int at_comment(at_t *t, const char *fmt, va_list vp);
-static inline
+static AT_INLINE
void at_debug(at_t *t, const char *fmt, ...) {
va_list vp;
va_start(vp, fmt);
@@ -138,7 +147,7 @@
va_end(vp);
}
-static inline
+static AT_INLINE
void at_trace(at_t *t, const char *fmt, ...) {
va_list vp;
va_start(vp, fmt);
@@ -150,7 +159,7 @@
/* These are "checks". */
-static inline
+static AT_INLINE
void at_check(at_t *t, int is_ok, const char *label, const char *file,
int line, const char *fmt, ...)
{
@@ -268,7 +277,7 @@
__FILE__, __LINE__, fmt, a, b)
-static inline
+static AT_INLINE
void at_skip(at_t *t, int n, const char *reason, const char *file, int line) {
char buf[256];
while (n-- > 0) {
@@ -285,7 +294,7 @@
/* Report utilities. */
at_report_t *at_report_file_make(FILE *f);
-inline
+AT_INLINE
static at_report_t *at_report_stdout_make(void)
{
return at_report_file_make(stdout);