static cell_t SQL_QuoteString(IPluginContext *pContext, const cell_t *params) { IDatabase *db = NULL; HandleError err; if ((err = g_DBMan.ReadHandle(params[1], DBHandle_Database, (void **)&db)) != HandleError_None) { return pContext->ThrowNativeError("Invalid database Handle %x (error: %d)", params[1], err); } char *input, *output; size_t maxlength = (size_t)params[4]; pContext->LocalToString(params[2], &input); pContext->LocalToString(params[3], &output); size_t written; bool s = db->QuoteString(input, output, maxlength, &written); cell_t *addr; pContext->LocalToPhysAddr(params[5], &addr); *addr = (cell_t)written; return s ? 1 : 0; }
static cell AMX_NATIVE_CALL SQL_QuoteStringFmt(AMX *amx, cell *params) { int len; char *str = MF_FormatAmxString(amx, params, 4, &len); size_t newsize; static char buffer[8192]; if (params[1] != 0) { IDatabase *pDb = (IDatabase *)GetHandle(params[1], Handle_Database); if (!pDb) { MF_LogError(amx, AMX_ERR_NATIVE, "Invalid database handle: %d", params[1]); return 0; } if (pDb->QuoteString(str, buffer, sizeof(buffer)-1, &newsize) == 0) { MF_SetAmxString(amx, params[2], buffer, params[3]); return newsize; } else { return -1; } } else { if (g_Mysql.QuoteString(str, buffer, sizeof(buffer)-1, &newsize) == 0) { MF_SetAmxString(amx, params[2], buffer, params[3]); return newsize; } else { return -1; } } }