Changeset: 46ca0cf07d2e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/46ca0cf07d2e
Modified Files:
        clients/odbc/driver/ODBCGlobal.h
        clients/odbc/driver/ODBCUtil.c
Branch: odbc-tls
Log Message:

Turn ODBCLOG into a static inline function

Rather than a macro if C99 and a regular function otherwise.


diffs (133 lines):

diff --git a/clients/odbc/driver/ODBCGlobal.h b/clients/odbc/driver/ODBCGlobal.h
--- a/clients/odbc/driver/ODBCGlobal.h
+++ b/clients/odbc/driver/ODBCGlobal.h
@@ -101,50 +101,45 @@ extern const wchar_t *ODBCdebug;
 extern const char *ODBCdebug;
 #endif
 
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901
+static inline void ODBCLOG(_In_z_ _Printf_format_string_ const char *fmt, ...)
+       __attribute__((__format__(__printf__, 1, 2)));
+
+static inline void
+ODBCLOG(const char *fmt, ...)
+{
+       va_list ap;
+
+       va_start(ap, fmt);
+       if (ODBCdebug == NULL) {
 #ifdef NATIVE_WIN32
-#define ODBCLOG(...)                                                   \
-       do {                                                            \
-               if (ODBCdebug == NULL) {                                \
-                       if ((ODBCdebug = _wgetenv(L"ODBCDEBUG")) == NULL) \
-                               ODBCdebug = _wcsdup(L"");               \
-                       else                                            \
-                               ODBCdebug = _wcsdup(ODBCdebug);         \
-               }                                                       \
-               if (ODBCdebug != NULL && *ODBCdebug != 0) {             \
-                       FILE *_f;                                       \
-                       _f = _wfopen(ODBCdebug, L"a");                  \
-                       if (_f == NULL)                                 \
-                               _f = stderr;                            \
-                       fprintf(_f, __VA_ARGS__);                       \
-                       if (_f != stderr)                               \
-                               fclose(_f);                             \
-               }                                                       \
-       } while (0)
+               if ((ODBCdebug = _wgetenv(L"ODBCDEBUG")) == NULL)
+                       ODBCdebug = _wcsdup(L"");
+               else
+                       ODBCdebug = _wcsdup(ODBCdebug);
 #else
-#define ODBCLOG(...)                                                   \
-       do {                                                            \
-               if (ODBCdebug == NULL) {                                \
-                       if ((ODBCdebug = getenv("ODBCDEBUG")) == NULL)  \
-                               ODBCdebug = strdup("");                 \
-                       else                                            \
-                               ODBCdebug = strdup(ODBCdebug);          \
-               }                                                       \
-               if (ODBCdebug != NULL && *ODBCdebug != 0) {             \
-                       FILE *_f;                                       \
-                       _f = fopen(ODBCdebug, "a");                     \
-                       if (_f == NULL)                                 \
-                               _f = stderr;                            \
-                       fprintf(_f, __VA_ARGS__);                       \
-                       if (_f != stderr)                               \
-                               fclose(_f);                             \
-               }                                                       \
-       } while (0)
+               if ((ODBCdebug = getenv("ODBCDEBUG")) == NULL)
+                       ODBCdebug = strdup("");
+               else
+                       ODBCdebug = strdup(ODBCdebug);
 #endif
+       }
+       if (ODBCdebug != NULL && *ODBCdebug != 0) {
+               FILE *f;
+
+#ifdef NATIVE_WIN32
+               f = _wfopen(ODBCdebug, L"a");
 #else
-extern void ODBCLOG(_In_z_ _Printf_format_string_ const char *fmt, ...)
-       __attribute__((__format__(__printf__, 1, 2)));
+               f = fopen(ODBCdebug, "a");
 #endif
+               if (f) {
+                       vfprintf(f, fmt, ap);
+                       fclose(f);
+               } else
+                       vfprintf(stderr, fmt, ap);
+       }
+       va_end(ap);
+}
+
 
 char *translateCType(SQLSMALLINT ValueType);
 char *translateSQLType(SQLSMALLINT ParameterType);
diff --git a/clients/odbc/driver/ODBCUtil.c b/clients/odbc/driver/ODBCUtil.c
--- a/clients/odbc/driver/ODBCUtil.c
+++ b/clients/odbc/driver/ODBCUtil.c
@@ -2624,41 +2624,5 @@ translateCompletionType(SQLSMALLINT Comp
        }
 }
 
-#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901
-void
-ODBCLOG(const char *fmt, ...)
-{
-       va_list ap;
 
-       va_start(ap, fmt);
-       if (ODBCdebug == NULL) {
-#ifdef NATIVE_WIN32
-               if ((ODBCdebug = _wgetenv(L"ODBCDEBUG")) == NULL)
-                       ODBCdebug = _wcsdup(L"");
-               else
-                       ODBCdebug = _wcsdup(ODBCdebug);
-#else
-               if ((ODBCdebug = getenv("ODBCDEBUG")) == NULL)
-                       ODBCdebug = strdup("");
-               else
-                       ODBCdebug = strdup(ODBCdebug);
 #endif
-       }
-       if (ODBCdebug != NULL && *ODBCdebug != 0) {
-               FILE *f;
-
-#ifdef NATIVE_WIN32
-               f = _wfopen(ODBCdebug, L"a");
-#else
-               f = fopen(ODBCdebug, "a");
-#endif
-               if (f) {
-                       vfprintf(f, fmt, ap);
-                       fclose(f);
-               } else
-                       vfprintf(stderr, fmt, ap);
-       }
-       va_end(ap);
-}
-#endif
-#endif
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to