summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/cryptopp/misc.h2
-rw-r--r--lib/inifile/iniFile.cpp93
-rw-r--r--lib/inifile/iniFile.h32
-rw-r--r--lib/lua/CMakeLists.txt36
-rw-r--r--lib/zlib/CMakeLists.txt8
-rw-r--r--lib/zlib/example.c.txt (renamed from lib/zlib/example.c)0
-rw-r--r--lib/zlib/minigzip.c.txt (renamed from lib/zlib/minigzip.c)0
7 files changed, 121 insertions, 50 deletions
diff --git a/lib/cryptopp/misc.h b/lib/cryptopp/misc.h
index 2b326dd60..9149b9ac0 100644
--- a/lib/cryptopp/misc.h
+++ b/lib/cryptopp/misc.h
@@ -545,7 +545,7 @@ inline void SecureWipeArray(T *buf, size_t n)
}
// this function uses wcstombs(), which assumes that setlocale() has been called
-static std::string StringNarrow(const wchar_t *str, bool throwOnError = true)
+inline std::string StringNarrow(const wchar_t *str, bool throwOnError = true)
{
#ifdef _MSC_VER
#pragma warning(push)
diff --git a/lib/inifile/iniFile.cpp b/lib/inifile/iniFile.cpp
index da523e783..afa1c110d 100644
--- a/lib/inifile/iniFile.cpp
+++ b/lib/inifile/iniFile.cpp
@@ -137,7 +137,7 @@ bool cIniFile::ReadFile(const AString & a_FileName, bool a_AllowExampleRedirect)
{
valuename = line.substr(0, pLeft);
value = line.substr(pLeft + 1);
- SetValue(keyname, valuename, value);
+ AddValue(keyname, valuename, value);
break;
}
@@ -344,55 +344,79 @@ AString cIniFile::GetValueName(const AString & keyname, const int valueID) const
+void cIniFile::AddValue(const AString & a_KeyName, const AString & a_ValueName, const AString & a_Value)
+{
+ int keyID = FindKey(a_KeyName);
+ if (keyID == noID)
+ {
+ keyID = int(AddKeyName(a_KeyName));
+ }
+
+ keys[keyID].names.push_back(a_ValueName);
+ keys[keyID].values.push_back(a_Value);
+}
+
+
+
+
+
+void cIniFile::AddValueI(const AString & a_KeyName, const AString & a_ValueName, const int a_Value)
+{
+ AddValue(a_KeyName, a_ValueName, Printf("%d", a_Value));
+}
+
+
+
+
+
+void cIniFile::AddValueF(const AString & a_KeyName, const AString & a_ValueName, const double a_Value)
+{
+ AddValue(a_KeyName, a_ValueName, Printf("%f", a_Value));
+}
+
+
+
+
+
bool cIniFile::SetValue(const int keyID, const int valueID, const AString & value)
{
- if ((keyID < (int)keys.size()) && (valueID < (int)keys[keyID].names.size()))
+ if (((size_t)keyID >= keys.size()) || ((size_t)valueID >= keys[keyID].names.size()))
{
- keys[keyID].values[valueID] = value;
+ return false;
}
- return false;
+ keys[keyID].values[valueID] = value;
+ return true;
}
-bool cIniFile::SetValue(const AString & keyname, const AString & valuename, const AString & value, bool const create)
+bool cIniFile::SetValue(const AString & a_KeyName, const AString & a_ValueName, const AString & a_Value, const bool a_CreateIfNotExists)
{
- int keyID = FindKey(keyname);
+ int keyID = FindKey(a_KeyName);
if (keyID == noID)
{
- if (create)
- {
- keyID = int(AddKeyName(keyname));
- }
- else
+ if (!a_CreateIfNotExists)
{
return false;
}
+ keyID = AddKeyName(a_KeyName);
}
- int valueID = FindValue(int(keyID), valuename);
+ int valueID = FindValue(keyID, a_ValueName);
if (valueID == noID)
{
- if (!create)
+ if (!a_CreateIfNotExists)
{
return false;
}
- keys[keyID].names.resize(keys[keyID].names.size() + 1, valuename);
- keys[keyID].values.resize(keys[keyID].values.size() + 1, value);
+ keys[keyID].names.push_back(a_ValueName);
+ keys[keyID].values.push_back(a_Value);
}
else
{
- if (!create)
- {
- keys[keyID].values[valueID] = value;
- }
- else
- {
- keys[keyID].names.resize(keys[keyID].names.size() + 1, valuename);
- keys[keyID].values.resize(keys[keyID].values.size() + 1, value);
- }
+ keys[keyID].values[valueID] = a_Value;
}
return true;
@@ -402,37 +426,32 @@ bool cIniFile::SetValue(const AString & keyname, const AString & valuename, cons
-bool cIniFile::SetValueI(const AString & keyname, const AString & valuename, const int value, bool const create)
+bool cIniFile::SetValueI(const AString & a_KeyName, const AString & a_ValueName, const int a_Value, const bool a_CreateIfNotExists)
{
- AString Data;
- Printf(Data, "%d", value);
- return SetValue(keyname, valuename, Data, create);
+ return SetValue(a_KeyName, a_ValueName, Printf("%d", a_Value), a_CreateIfNotExists);
}
-bool cIniFile::SetValueF(const AString & keyname, const AString & valuename, double const value, bool const create)
+bool cIniFile::SetValueF(const AString & a_KeyName, const AString & a_ValueName, double const a_Value, const bool a_CreateIfNotExists)
{
- AString Data;
- Printf(Data, "%f", value);
- return SetValue(keyname, valuename, Data, create);
+ return SetValue(a_KeyName, a_ValueName, Printf("%f", a_Value), a_CreateIfNotExists);
}
-bool cIniFile::SetValueV(const AString & keyname, const AString & valuename, char * format, ...)
+bool cIniFile::SetValueV(const AString & a_KeyName, const AString & a_ValueName, const char * a_Format, ...)
{
va_list args;
- va_start(args, format);
-
+ va_start(args, a_Format);
AString Data;
- AppendVPrintf(Data, format, args);
+ AppendVPrintf(Data, a_Format, args);
va_end(args);
- return SetValue(keyname, valuename, Data);
+ return SetValue(a_KeyName, a_ValueName, Data);
}
diff --git a/lib/inifile/iniFile.h b/lib/inifile/iniFile.h
index 83d961fc6..40af618dc 100644
--- a/lib/inifile/iniFile.h
+++ b/lib/inifile/iniFile.h
@@ -35,7 +35,7 @@
class cIniFile
{
private:
- bool m_IsCaseInsensitive;
+ bool m_IsCaseInsensitive;
struct key
{
@@ -122,22 +122,32 @@ public:
return (GetValueSetI(keyname, valuename, defValue ? 1 : 0) != 0);
}
- // Sets value of [keyname] valuename =.
- // Specify the optional paramter as false (0) if you do not want it to create
- // the key if it doesn't exist. Returns true if data entered, false otherwise.
+ // Adds a new value to the specified key.
+ // If a value of the same name already exists, creates another one (non-standard INI file)
+ void AddValue (const AString & a_KeyName, const AString & a_ValueName, const AString & a_Value);
+ void AddValueI(const AString & a_KeyName, const AString & a_ValueName, const int a_Value);
+ void AddValueB(const AString & a_KeyName, const AString & a_ValueName, const bool a_Value)
+ {
+ return AddValueI(a_KeyName, a_ValueName, a_Value ? 1 : 0);
+ }
+ void AddValueF(const AString & a_KeyName, const AString & a_ValueName, const double a_Value);
+
+ // Overwrites the value of [keyname].valuename
+ // Specify the optional parameter as false (0) if you do not want the value created if it doesn't exist.
+ // Returns true if value set, false otherwise.
// Overloaded to accept string, int, and double.
- bool SetValue( const int keyID, const int valueID, const AString & value);
- bool SetValue( const AString & keyname, const AString & valuename, const AString & value, const bool create = true);
- bool SetValueI( const AString & keyname, const AString & valuename, const int value, const bool create = true);
- bool SetValueB( const AString & keyname, const AString & valuename, const bool value, const bool create = true)
+ bool SetValue (const int keyID, const int valueID, const AString & value);
+ bool SetValue (const AString & a_KeyName, const AString & a_ValueName, const AString & a_Value, const bool a_CreateIfNotExists = true);
+ bool SetValueI(const AString & a_KeyName, const AString & a_ValueName, const int a_Value, const bool a_CreateIfNotExists = true);
+ bool SetValueB(const AString & a_KeyName, const AString & a_ValueName, const bool a_Value, const bool a_CreateIfNotExists = true)
{
- return SetValueI( keyname, valuename, int(value), create);
+ return SetValueI(a_KeyName, a_ValueName, int(a_Value), a_CreateIfNotExists);
}
- bool SetValueF( const AString & keyname, const AString & valuename, const double value, const bool create = true);
+ bool SetValueF(const AString & a_KeyName, const AString & a_ValueName, const double a_Value, const bool a_CreateIfNotExists = true);
// tolua_end
- bool SetValueV( const AString & keyname, const AString & valuename, char *format, ...);
+ bool SetValueV( const AString & a_KeyName, const AString & a_ValueName, const char * a_Format, ...);
// tolua_begin
diff --git a/lib/lua/CMakeLists.txt b/lib/lua/CMakeLists.txt
index b4b5b5f1d..4babae9b2 100644
--- a/lib/lua/CMakeLists.txt
+++ b/lib/lua/CMakeLists.txt
@@ -1,5 +1,5 @@
-cmake_minimum_required (VERSION 2.6)
+cmake_minimum_required (VERSION 2.8.2)
project (lua)
include_directories ("${PROJECT_SOURCE_DIR}/../../src/")
@@ -21,10 +21,44 @@ endif()
# Lua needs to be linked dynamically on Windows and statically on *nix, so that LuaRocks work
if (WIN32)
add_library(lua SHARED ${SOURCE})
+ set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/MCServer)
+
+ # Output the executable into the $/MCServer folder, so that MCServer can find it:
+ set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/MCServer)
+ SET_TARGET_PROPERTIES(lua PROPERTIES
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/MCServer
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/MCServer
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUGPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASEPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/MCServer
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/MCServer
+ LIBRARY_OUTPUT_DIRECTORY_DEBUGPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ LIBRARY_OUTPUT_DIRECTORY_RELEASEPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/MCServer
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/MCServer
+ RUNTIME_OUTPUT_DIRECTORY_DEBUGPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ RUNTIME_OUTPUT_DIRECTORY_RELEASEPROFILE ${CMAKE_SOURCE_DIR}/MCServer
+ )
+
+ if (MSVC)
+ # Remove SCL warnings, we expect this library to have been tested safe
+ SET_TARGET_PROPERTIES(
+ lua PROPERTIES COMPILE_FLAGS "-D_CRT_SECURE_NO_WARNINGS"
+ )
+ endif()
+
+ # NOTE: The DLL for each configuration is stored at the same place, thus overwriting each other.
+ # This is known, however such behavior is needed for LuaRocks - they always load "lua.dll"
else()
add_library(lua ${SOURCE})
endif()
+# Tell Lua what dynamic loader to use (for LuaRocks):
+if (UNIX)
+ add_definitions(-DLUA_USE_DLOPEN)
+endif()
+
if (UNIX)
target_link_libraries(lua m ${DYNAMIC_LOADER})
endif()
+
diff --git a/lib/zlib/CMakeLists.txt b/lib/zlib/CMakeLists.txt
index fe6dba6ae..b1b74031d 100644
--- a/lib/zlib/CMakeLists.txt
+++ b/lib/zlib/CMakeLists.txt
@@ -9,3 +9,11 @@ file(GLOB SOURCE
)
add_library(zlib ${SOURCE})
+
+if (MSVC)
+ # Remove SCL warnings, we expect this library to have been tested safe
+ SET_TARGET_PROPERTIES(
+ zlib PROPERTIES COMPILE_FLAGS "-D_CRT_SECURE_NO_WARNINGS"
+ )
+endif()
+
diff --git a/lib/zlib/example.c b/lib/zlib/example.c.txt
index f515a4853..f515a4853 100644
--- a/lib/zlib/example.c
+++ b/lib/zlib/example.c.txt
diff --git a/lib/zlib/minigzip.c b/lib/zlib/minigzip.c.txt
index aa7ac7a04..aa7ac7a04 100644
--- a/lib/zlib/minigzip.c
+++ b/lib/zlib/minigzip.c.txt