summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-11-19 21:25:30 +0000
committerai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-11-19 21:25:30 +0000
commita24d9b0b2ca88899e942049aa174a04024b5387f (patch)
tree12aed87756d14759775d01955ac57e1d37a4ca5d /src/common
parentf77c9c84c46c0b592c0a6fe6e9880eb48c48d4c3 (diff)
downloadhercules-a24d9b0b2ca88899e942049aa174a04024b5387f.tar.gz
hercules-a24d9b0b2ca88899e942049aa174a04024b5387f.tar.bz2
hercules-a24d9b0b2ca88899e942049aa174a04024b5387f.tar.xz
hercules-a24d9b0b2ca88899e942049aa174a04024b5387f.zip
* Various VC6-related fixes and tweaks. [Ai4rei]
- Fixed a typo in VC6 project files, that prevented login-server from compiling (bugreport:4061, since r12727). - Fixed usage of 'long long' in Sql_P_BindSqlDataType preventing SQL VC6 projects from compiling (bugreport:1741, since r10779). - Fixed usage of 'long long' in strtoull preventing VC6 projects from compiling (bugreport:4059, follow up to r14245). - Made strtoull default to base 10 and actually process base 8, to match the normal behavior of this function (bugreport:4059, follow up to r14245). - Fixed functions in db.c not being returned as pointer, causing warnings on VC6. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14466 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common')
-rw-r--r--src/common/db.c32
-rw-r--r--src/common/sql.c4
-rw-r--r--src/common/strlib.c9
-rw-r--r--src/common/strlib.h2
4 files changed, 26 insertions, 21 deletions
diff --git a/src/common/db.c b/src/common/db.c
index 537f26e6a..4dcf1d0b0 100644
--- a/src/common/db.c
+++ b/src/common/db.c
@@ -2229,10 +2229,10 @@ DBComparator db_default_cmp(DBType type)
{
DB_COUNTSTAT(db_default_cmp);
switch (type) {
- case DB_INT: return db_int_cmp;
- case DB_UINT: return db_uint_cmp;
- case DB_STRING: return db_string_cmp;
- case DB_ISTRING: return db_istring_cmp;
+ case DB_INT: return &db_int_cmp;
+ case DB_UINT: return &db_uint_cmp;
+ case DB_STRING: return &db_string_cmp;
+ case DB_ISTRING: return &db_istring_cmp;
default:
ShowError("db_default_cmp: Unknown database type %u\n", type);
return NULL;
@@ -2253,10 +2253,10 @@ DBHasher db_default_hash(DBType type)
{
DB_COUNTSTAT(db_default_hash);
switch (type) {
- case DB_INT: return db_int_hash;
- case DB_UINT: return db_uint_hash;
- case DB_STRING: return db_string_hash;
- case DB_ISTRING: return db_istring_hash;
+ case DB_INT: return &db_int_hash;
+ case DB_UINT: return &db_uint_hash;
+ case DB_STRING: return &db_string_hash;
+ case DB_ISTRING: return &db_istring_hash;
default:
ShowError("db_default_hash: Unknown database type %u\n", type);
return NULL;
@@ -2284,12 +2284,12 @@ DBReleaser db_default_release(DBType type, DBOptions options)
options = db_fix_options(type, options);
if (options&DB_OPT_RELEASE_DATA) { // Release data, what about the key?
if (options&(DB_OPT_DUP_KEY|DB_OPT_RELEASE_KEY))
- return db_release_both; // Release both key and data
- return db_release_data; // Only release data
+ return &db_release_both; // Release both key and data
+ return &db_release_data; // Only release data
}
if (options&(DB_OPT_DUP_KEY|DB_OPT_RELEASE_KEY))
- return db_release_key; // Only release key
- return db_release_nothing; // Release nothing
+ return &db_release_key; // Only release key
+ return &db_release_nothing; // Release nothing
}
/**
@@ -2307,10 +2307,10 @@ DBReleaser db_custom_release(DBRelease which)
{
DB_COUNTSTAT(db_custom_release);
switch (which) {
- case DB_RELEASE_NOTHING: return db_release_nothing;
- case DB_RELEASE_KEY: return db_release_key;
- case DB_RELEASE_DATA: return db_release_data;
- case DB_RELEASE_BOTH: return db_release_both;
+ case DB_RELEASE_NOTHING: return &db_release_nothing;
+ case DB_RELEASE_KEY: return &db_release_key;
+ case DB_RELEASE_DATA: return &db_release_data;
+ case DB_RELEASE_BOTH: return &db_release_both;
default:
ShowError("db_custom_release: Unknown release options %u\n", which);
return NULL;
diff --git a/src/common/sql.c b/src/common/sql.c
index c0668d17c..f7c45c631 100644
--- a/src/common/sql.c
+++ b/src/common/sql.c
@@ -489,8 +489,8 @@ static int Sql_P_BindSqlDataType(MYSQL_BIND* bind, enum SqlDataType buffer_type,
buffer_len = sizeof(long);
break;
case SQLDT_ULONGLONG: bind->is_unsigned = 1;
- case SQLDT_LONGLONG: bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(long long));
- buffer_len = sizeof(long long);
+ case SQLDT_LONGLONG: bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(int64));
+ buffer_len = sizeof(int64);
break;
// floating point
case SQLDT_FLOAT: bind->buffer_type = MYSQL_TYPE_FLOAT;
diff --git a/src/common/strlib.c b/src/common/strlib.c
index c388f949a..7a6c134e7 100644
--- a/src/common/strlib.c
+++ b/src/common/strlib.c
@@ -253,9 +253,9 @@ size_t strnlen (const char* string, size_t maxlen)
#endif
#if defined(WIN32) && defined(_MSC_VER) && _MSC_VER <= 1200
-unsigned long long strtoull(const char* str, char** endptr, int base)
+uint64 strtoull(const char* str, char** endptr, int base)
{
- unsigned long long result;
+ uint64 result;
int count;
int n;
@@ -266,8 +266,13 @@ unsigned long long strtoull(const char* str, char** endptr, int base)
else
if( str[0] == '0' )
base = 8;
+ else
+ base = 10;
}
+ if( base == 8 )
+ count = sscanf(str, "%I64o%n", &result, &n);
+ else
if( base == 10 )
count = sscanf(str, "%I64u%n", &result, &n);
else
diff --git a/src/common/strlib.h b/src/common/strlib.h
index 29af06015..23f1e191a 100644
--- a/src/common/strlib.h
+++ b/src/common/strlib.h
@@ -29,7 +29,7 @@ size_t strnlen (const char* string, size_t maxlen);
#endif
#if defined(WIN32) && defined(_MSC_VER) && _MSC_VER <= 1200
-unsigned long long strtoull(const char* str, char** endptr, int base);
+uint64 strtoull(const char* str, char** endptr, int base);
#endif
int e_mail_check(char* email);