Bladeren bron

* 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://svn.code.sf.net/p/rathena/svn/trunk@14466 54d463be-8e91-2dee-dedb-b68131a5f0ec

ai4rei 14 jaren geleden
bovenliggende
commit
68fda95c60
7 gewijzigde bestanden met toevoegingen van 35 en 23 verwijderingen
  1. 7 0
      Changelog-Trunk.txt
  2. 16 16
      src/common/db.c
  3. 2 2
      src/common/sql.c
  4. 7 2
      src/common/strlib.c
  5. 1 1
      src/common/strlib.h
  6. 1 1
      vcproj-6/login-server_sql.dsp
  7. 1 1
      vcproj-6/login-server_txt.dsp

+ 7 - 0
Changelog-Trunk.txt

@@ -1,5 +1,12 @@
 Date	Added
 
+2010/11/19
+	* 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.
 2010/11/16
 	* Added a missing argument to a warning containing a format specifier. [Paradox924X]
 2010/11/15

+ 16 - 16
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;

+ 2 - 2
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;

+ 7 - 2
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

+ 1 - 1
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);

+ 1 - 1
vcproj-6/login-server_sql.dsp

@@ -231,7 +231,7 @@ SOURCE=..\src\login\loginlog.h
 # End Source File
 # Begin Source File
 
-SOURCE=..\src\login\loginlog_sql.h
+SOURCE=..\src\login\loginlog_sql.c
 # End Source File
 # End Group
 # End Target

+ 1 - 1
vcproj-6/login-server_txt.dsp

@@ -219,7 +219,7 @@ SOURCE=..\src\login\loginlog.h
 # End Source File
 # Begin Source File
 
-SOURCE=..\src\login\loginlog_txt.h
+SOURCE=..\src\login\loginlog_txt.c
 # End Source File
 # End Group
 # End Target