Skip to content

Commit

Permalink
C/C has been moved to v3.3.4 & fix of the build with xcode
Browse files Browse the repository at this point in the history
Renamed macro test, that caused compilation issues on XCode
Moved fuxncions used in extern C blocks to an extern C block.
Fixed MacOS related erro in cmake
  • Loading branch information
lawrinn committed Apr 13, 2023
1 parent 162e5af commit 2eca650
Show file tree
Hide file tree
Showing 11 changed files with 70 additions and 50 deletions.
4 changes: 2 additions & 2 deletions driver/CMakeLists.txt
Expand Up @@ -169,7 +169,7 @@ ELSE()
SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "")
ENDIF()
ADD_CUSTOM_COMMAND(TARGET ${LIBRARY_NAME} POST_BUILD
COMMAND ${CMAKE_SOURCE_DIR}/osxpostbuild.sh ARGS $<TARGET_FILE:${LIBRARY_NAME}>
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/osxpostbuild.sh ARGS $<TARGET_FILE:${LIBRARY_NAME}>
)
ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES AIX)
SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/driver/maodbc.def")
Expand Down Expand Up @@ -212,7 +212,7 @@ IF(WITH_MSI)
ENDIF()
ELSEIF(APPLE)
ADD_CUSTOM_COMMAND(TARGET ${LIBRARY_NAME} POST_BUILD
COMMAND ${CMAKE_SOURCE_DIR}/osxpostbuild.sh ARGS $<TARGET_FILE:${LIBRARY_NAME}>
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/osxpostbuild.sh ARGS $<TARGET_FILE:${LIBRARY_NAME}>
)
ENDIF()

Expand Down
10 changes: 5 additions & 5 deletions driver/ma_connection.cpp
Expand Up @@ -624,19 +624,19 @@ SQLRETURN MADB_DbcGetTrackedCurrentDB(MADB_Dbc* Dbc, SQLPOINTER CurrentDB, SQLIN
}
/* }}} */

BOOL MADB_SqlMode(MADB_Dbc *Connection, enum enum_madb_sql_mode SqlMode)
bool MADB_SqlMode(MADB_Dbc *Connection, enum enum_madb_sql_mode SqlMode)
{
unsigned int ServerStatus;

mariadb_get_infov(Connection->mariadb, MARIADB_CONNECTION_SERVER_STATUS, (void*)&ServerStatus);
switch (SqlMode)
{
case MADB_NO_BACKSLASH_ESCAPES:
return test(ServerStatus & SERVER_STATUS_NO_BACKSLASH_ESCAPES);
return ServerStatus & SERVER_STATUS_NO_BACKSLASH_ESCAPES;
case MADB_ANSI_QUOTES:
return test(ServerStatus & SERVER_STATUS_ANSI_QUOTES);
return ServerStatus & SERVER_STATUS_ANSI_QUOTES;
}
return FALSE;
return false;
}
/* }}} */

Expand Down Expand Up @@ -2281,7 +2281,7 @@ SQLRETURN MADB_DbcTrackSession(MADB_Dbc* Dbc)
if (strncmp(key, "autocommit", keyLength) == 0)
{
/* Seemingly it's ON or OFF, but checking also lowercase and '0' or '1' */
Dbc->AutoCommit= test(length > 1 && (value[1] == 'N' || value[1] == 'n') || length == 1 && *value == '1');
Dbc->AutoCommit= MADBTEST(length > 1 && (value[1] == 'N' || value[1] == 'n') || length == 1 && *value == '1');
}
else if (strncmp(key, MADB_GetTxIsolationVarName(Dbc), keyLength) == 0)
{
Expand Down
2 changes: 1 addition & 1 deletion driver/ma_connection.h
Expand Up @@ -55,7 +55,7 @@ bool HasMoreResults(MADB_Dbc *Dbc);
SQLRETURN MADB_SQLDisconnect(SQLHDBC ConnectionHandle);
SQLRETURN MADB_DbcFree(MADB_Dbc *Connection);
MADB_Dbc * MADB_DbcInit(MADB_Env *Env);
BOOL MADB_SqlMode(MADB_Dbc *Connection, enum enum_madb_sql_mode SqlMode);
bool MADB_SqlMode(MADB_Dbc *Connection, enum enum_madb_sql_mode SqlMode);
/* Has platform versions */
char* MADB_GetDefaultPluginsDir(char* Buffer, size_t Size);

Expand Down
8 changes: 4 additions & 4 deletions driver/ma_desc.cpp
Expand Up @@ -211,7 +211,7 @@ MADB_SetIrdRecord(MADB_Stmt *Stmt, MADB_DescRecord *Record, const MYSQL_FIELD *F
case MYSQL_TYPE_NEWDECIMAL:
Record->NumPrecRadix= 10;
Record->Scale= Field->decimals;
Record->Precision= (SQLSMALLINT)Field->length - test(Record->Unsigned == SQL_FALSE) - test(Record->Scale > 0);
Record->Precision= (SQLSMALLINT)Field->length - MADBTEST(Record->Unsigned == SQL_FALSE) - MADBTEST(Record->Scale > 0);
if (Record->Precision == 0)
{
Record->Precision= Record->Scale;
Expand Down Expand Up @@ -381,13 +381,13 @@ void MADB_FixDisplaySize(MADB_DescRecord *Record, const MY_CHARSET_INFO *charset
Record->DisplaySize= 1;
break;
case SQL_TINYINT:
Record->DisplaySize= 4 - test(Record->Unsigned == SQL_TRUE);
Record->DisplaySize= 4 - MADBTEST(Record->Unsigned == SQL_TRUE);
break;
case SQL_SMALLINT:
Record->DisplaySize= 6 - test(Record->Unsigned == SQL_TRUE);
Record->DisplaySize= 6 - MADBTEST(Record->Unsigned == SQL_TRUE);
break;
case SQL_INTEGER:
Record->DisplaySize= 11 - test(Record->Unsigned == SQL_TRUE);
Record->DisplaySize= 11 - MADBTEST(Record->Unsigned == SQL_TRUE);
break;
case SQL_REAL:
Record->DisplaySize= 14;
Expand Down
18 changes: 9 additions & 9 deletions driver/ma_helper.cpp
Expand Up @@ -341,7 +341,7 @@ SQLULEN MADB_GetDataSize(SQLSMALLINT SqlType, unsigned long long OctetLength, BO
case SQL_INTEGER:
return 10;
case SQL_BIGINT:
return 20 - test(Unsigned != FALSE);
return 20 - MADBTEST(Unsigned != FALSE);
case SQL_REAL:
return 7;
case SQL_DOUBLE:
Expand Down Expand Up @@ -383,14 +383,14 @@ size_t MADB_GetDisplaySize(const MYSQL_FIELD *Field, MARIADB_CHARSET_INFO *chars
case MYSQL_TYPE_BIT:
return (Field->length == 1) ? 1 : (Field->length + 7) / 8 * 2;
case MYSQL_TYPE_TINY:
return 4 - test(Field->flags & UNSIGNED_FLAG);
return 4 - MADBTEST(Field->flags & UNSIGNED_FLAG);
case MYSQL_TYPE_SHORT:
case MYSQL_TYPE_YEAR:
return 6 - test(Field->flags & UNSIGNED_FLAG);
return 6 - MADBTEST(Field->flags & UNSIGNED_FLAG);
case MYSQL_TYPE_INT24:
return 9 - test(Field->flags & UNSIGNED_FLAG);
return 9 - MADBTEST(Field->flags & UNSIGNED_FLAG);
case MYSQL_TYPE_LONG:
return 11 - test(Field->flags & UNSIGNED_FLAG);
return 11 - MADBTEST(Field->flags & UNSIGNED_FLAG);
case MYSQL_TYPE_LONGLONG:
return 20;
case MYSQL_TYPE_DOUBLE:
Expand All @@ -401,8 +401,8 @@ size_t MADB_GetDisplaySize(const MYSQL_FIELD *Field, MARIADB_CHARSET_INFO *chars
case MYSQL_TYPE_NEWDECIMAL:
{
/* The edge case like decimal(1,1)*/
size_t Precision= Field->length - test((Field->flags & UNSIGNED_FLAG) == 0) - test(Field->decimals != 0);
return Field->length + test(Precision == Field->decimals);
size_t Precision= Field->length - MADBTEST((Field->flags & UNSIGNED_FLAG) == 0) - MADBTEST(Field->decimals != 0);
return Field->length + MADBTEST(Precision == Field->decimals);
}
case MYSQL_TYPE_DATE:
return SQL_DATE_LEN; /* YYYY-MM-DD */
Expand Down Expand Up @@ -470,8 +470,8 @@ size_t MADB_GetOctetLength(const MYSQL_FIELD *Field, unsigned short MaxCharLen)
case MYSQL_TYPE_NEWDECIMAL:
{
/* The edge case like decimal(1,1)*/
size_t Precision= Field->length - test((Field->flags & UNSIGNED_FLAG) == 0) - test(Field->decimals != 0);
return Field->length + test(Precision == Field->decimals);
size_t Precision= Field->length - MADBTEST((Field->flags & UNSIGNED_FLAG) == 0) - MADBTEST(Field->decimals != 0);
return Field->length + MADBTEST(Precision == Field->decimals);
}
case MYSQL_TYPE_DATE:
return sizeof(SQL_DATE_STRUCT);
Expand Down
4 changes: 2 additions & 2 deletions driver/ma_helper.h
Expand Up @@ -84,8 +84,8 @@ extern my_bool DummyError;
#ifndef MAX
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef test
#define test(a) ((a) ? 1 : 0)
#ifndef MADBTEST
#define MADBTEST(a) ((a) ? 1 : 0)
#endif

#define BUFFER_CHAR_LEN(blen,wchar) (wchar) ? (blen) / sizeof(SQLWCHAR) : (blen)
Expand Down
50 changes: 29 additions & 21 deletions driver/ma_platform_posix.cpp
Expand Up @@ -33,27 +33,9 @@ extern Client_Charset utf8;
char LogFile[256];


void InitializeCriticalSection(CRITICAL_SECTION *cs)
{
pthread_mutexattr_t attr;

pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(cs, &attr);
}

int DSNPrompt_Lookup(MADB_Prompt *prompt, const char * SetupLibName)
{
return MADB_PROMPT_NOT_SUPPORTED;
}


int DSNPrompt_Free (MADB_Prompt *prompt)
{
prompt->LibraryHandle= NULL;

return 0;
}
#ifdef __cplusplus
extern "C" {
#endif

/* Mimicking of VS' _snprintf */
int _snprintf(char *buffer, size_t count, const char *format, ...)
Expand Down Expand Up @@ -101,6 +83,32 @@ int strcpy_s(char *dest, size_t buffer_size, const char *src)
return 0;
}

#ifdef __cplusplus
}
#endif

void InitializeCriticalSection(CRITICAL_SECTION *cs)
{
pthread_mutexattr_t attr;

pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(cs, &attr);
}

int DSNPrompt_Lookup(MADB_Prompt *prompt, const char * SetupLibName)
{
return MADB_PROMPT_NOT_SUPPORTED;
}


int DSNPrompt_Free (MADB_Prompt *prompt)
{
prompt->LibraryHandle= NULL;

return 0;
}


const char* GetDefaultLogDir()
{
Expand Down
14 changes: 12 additions & 2 deletions driver/ma_platform_posix.h
Expand Up @@ -52,8 +52,6 @@

#define _i64toa(a,b,c) longlong2str((a),(b),(c))

/* Mimicking of VS' _snprintf */
int _snprintf(char *buffer, size_t count, const char *format, ...);

/* Error codes fo strcpy_s */
#ifndef EINVAL
Expand All @@ -62,8 +60,20 @@ int _snprintf(char *buffer, size_t count, const char *format, ...);
#ifndef ERANGE
# define ERANGE 34
#endif


#ifdef __cplusplus
extern "C" {
#endif

/* Mimicking of VS' _snprintf */
int _snprintf(char *buffer, size_t count, const char *format, ...);
int strcpy_s(char *dest, size_t buffer_size, const char *src);

#ifdef __cplusplus
}
#endif

#define strncpy_s(a,b,c,d) strncpy((a),(c),(b))

/* Critical section -> pthread mutex */
Expand Down
6 changes: 4 additions & 2 deletions driver/ma_statement.cpp
Expand Up @@ -16,13 +16,15 @@
or write to the Free Software Foundation, Inc.,
51 Franklin St., Fifth Floor, Boston, MA 02110, USA
*************************************************************************************/
#include "ma_odbc.h"

#include "ServerSidePreparedStatement.h"
#include "ClientSidePreparedStatement.h"
#include "interface/ResultSet.h"
#include "ResultSetMetaData.h"
#include "interface/Exception.h"

#include "ma_odbc.h"

#define MADB_MIN_QUERY_LEN 5


Expand Down Expand Up @@ -1718,7 +1720,7 @@ SQLRETURN MADB_FixFetchedValues(MADB_Stmt *Stmt, int RowNumber, int64_t SaveCurs
char *p= (char *)Stmt->result[i].buffer;
if (p)
{
*p= test(*p != '\0');
*p= MADBTEST(*p != '\0');
}
}
break;
Expand Down
2 changes: 1 addition & 1 deletion driver/ma_typeconv.cpp
Expand Up @@ -313,7 +313,7 @@ SQLLEN MADB_CalculateLength(MADB_Stmt *Stmt, SQLLEN *OctetLengthPtr, MADB_DescRe
case SQL_C_WCHAR:
/* CRec->OctetLength eq 0 means not 0-length buffer, but that this value is not specified. Thus -1, for SqlwcsLen
and SafeStrlen that means buffer len is not specified */
return SqlwcsLen((SQLWCHAR *)DataPtr, BufferLen/sizeof(SQLWCHAR) - test(BufferLen == 0)) * sizeof(SQLWCHAR);
return SqlwcsLen((SQLWCHAR *)DataPtr, BufferLen/sizeof(SQLWCHAR) - MADBTEST(BufferLen == 0)) * sizeof(SQLWCHAR);
break;
case SQL_C_BINARY:
case SQL_VARBINARY:
Expand Down
2 changes: 1 addition & 1 deletion libmariadb

0 comments on commit 2eca650

Please sign in to comment.