Renamed String methods, and reformatted mystring.h

Wed, 20 Jul 2016 16:01:10 +0300

author
Teemu Piippo <teemu@compsta2.com>
date
Wed, 20 Jul 2016 16:01:10 +0300
changeset 145
d0aedc9be448
parent 144
e8d58327cd7f
child 146
81357dcd3da4

Renamed String methods, and reformatted mystring.h

sources/coloredline.cpp file | annotate | diff | comparison | revisions
sources/interface.cpp file | annotate | diff | comparison | revisions
sources/mystring.cpp file | annotate | diff | comparison | revisions
sources/mystring.h file | annotate | diff | comparison | revisions
sources/network/ipaddress.cpp file | annotate | diff | comparison | revisions
sources/network/rconsession.cpp file | annotate | diff | comparison | revisions
sources/network/udpsocket.cpp file | annotate | diff | comparison | revisions
--- a/sources/coloredline.cpp	Wed Jul 20 15:07:57 2016 +0300
+++ b/sources/coloredline.cpp	Wed Jul 20 16:01:10 2016 +0300
@@ -127,11 +127,11 @@
 	{
 		if (ch == ']')
 		{
-			String color = m_incomingColorName.to_lowercase();
+			String color = m_incomingColorName.toLowerCase();
 
 			for (const ColorCodeInfo &colorInfo : colorCodes)
 			{
-				if (String(colorInfo.name).to_lowercase() == color)
+				if (String(colorInfo.name).toLowerCase() == color)
 				{
 					activateColor(colorInfo.color, colorInfo.bold);
 					m_colorCodeStage = 0;
--- a/sources/interface.cpp	Wed Jul 20 15:07:57 2016 +0300
+++ b/sources/interface.cpp	Wed Jul 20 16:01:10 2016 +0300
@@ -513,7 +513,7 @@
 		break;
 	}
 
-	if (not text.is_empty())
+	if (not text.isEmpty())
 		text += " | ";
 
 	text += "Ctrl+N to connect, Ctrl+Q to ";
@@ -717,7 +717,7 @@
 	case '\b':
 		if (m_cursorPosition > 0)
 		{
-			getEditableInput().remove_at(--m_cursorPosition);
+			getEditableInput().removeAt(--m_cursorPosition);
 			m_needInputRender = true;
 		}
 		break;
@@ -726,7 +726,7 @@
 	case 'D' - 'A' + 1: // readline ^D
 		if (m_cursorPosition < getCurrentInput().length())
 		{
-			getEditableInput().remove_at(m_cursorPosition);
+			getEditableInput().removeAt(m_cursorPosition);
 			m_needInputRender = true;
 		}
 		break;
@@ -758,7 +758,7 @@
 		break;
 
 	case 'Y' - 'A' + 1: // readline ^Y - paste previously deleted text
-		if (not m_pasteBuffer.is_empty())
+		if (not m_pasteBuffer.isEmpty())
 		{
 			getEditableInput().insert(m_cursorPosition, m_pasteBuffer);
 			m_cursorPosition += m_pasteBuffer.length();
@@ -806,7 +806,7 @@
 			break;
 
 		case INPUTSTATE_PASSWORD:
-			if (m_inputState == INPUTSTATE_PASSWORD and not getCurrentInput().is_empty())
+			if (m_inputState == INPUTSTATE_PASSWORD and not getCurrentInput().isEmpty())
 			{
 				m_session.disconnect();
 				m_session.set_password(getCurrentInput());
@@ -1034,7 +1034,7 @@
 {
 	String& input = getEditableInput();
 
-	if (input.starts_with(part))
+	if (input.startsWith(part))
 	{
 		if (input[part.length()] != ' ')
 			complete += ' ';
@@ -1053,7 +1053,7 @@
 		return;
 
 	StringList args = input.right(input.length() - 1).split(" ");
-	String command = args[0].to_lowercase();
+	String command = args[0].toLowerCase();
 	args.remove_at(0);
 
 	if (command == "connect")
--- a/sources/mystring.cpp	Wed Jul 20 15:07:57 2016 +0300
+++ b/sources/mystring.cpp	Wed Jul 20 16:01:10 2016 +0300
@@ -39,7 +39,7 @@
 //
 int String::compare (const String& other) const
 {
-	return m_string.compare (other.std_string());
+	return m_string.compare (other.stdString());
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -47,9 +47,9 @@
 void String::trim (int n)
 {
 	if (n > 0)
-		m_string = mid (0, length() - n).std_string();
+		m_string = mid (0, length() - n).stdString();
 	else
-		m_string = mid (n, -1).std_string();
+		m_string = mid (n, -1).stdString();
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -59,7 +59,7 @@
 	String result (m_string);
 
 	for (int pos = 0; (pos = result.find (unwanted)) != -1;)
-		result.remove_at (pos--);
+		result.removeAt (pos--);
 
 	return result;
 }
@@ -72,14 +72,14 @@
 
 	for (String c : unwanted)
 	for (int pos = 0; (pos = result.find (c)) != -1;)
-		result.remove_at (pos--);
+		result.removeAt (pos--);
 
 	return result;
 }
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::to_uppercase() const
+String String::toUpperCase() const
 {
 	String result (m_string);
 
@@ -94,7 +94,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::to_lowercase() const
+String String::toLowerCase() const
 {
 	String result (m_string);
 
@@ -197,21 +197,6 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-int String::word_position (int n) const
-{
-	int count = 0;
-
-	for (char ch : *this)
-	{
-		if (not isspace(ch) or ++count < n)
-			continue;
-	}
-
-	return -1;
-}
-
-// -------------------------------------------------------------------------------------------------
-//
 int String::find (const char* c, int a) const
 {
 	int pos = m_string.find (c, a);
@@ -236,7 +221,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-int String::find_last (const char* c, int a) const
+int String::findLast (const char* c, int a) const
 {
 	if (a == -1 or a >= length())
 		a = length() - 1;
@@ -250,7 +235,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-long String::to_int (bool* ok, int base) const
+long String::toInt (bool* ok, int base) const
 {
 	errno = 0;
 	char* endptr;
@@ -264,7 +249,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-float String::to_float (bool* ok) const
+float String::toFloat (bool* ok) const
 {
 	errno = 0;
 	char* endptr;
@@ -278,7 +263,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-double String::to_double (bool* ok) const
+double String::toDouble (bool* ok) const
 {
 	errno = 0;
 	char* endptr;
@@ -310,7 +295,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-bool String::is_numeric() const
+bool String::isNumeric() const
 {
 	char* endptr;
 	strtol (chars(), &endptr, 10);
@@ -319,7 +304,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-bool String::ends_with (const String& other)
+bool String::endsWith (const String& other) const
 {
 	if (length() < other.length())
 		return false;
@@ -330,7 +315,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-bool String::starts_with (const String& other) const
+bool String::startsWith (const String& other) const
 {
 	if (length() < other.length())
 		return false;
@@ -375,7 +360,7 @@
 
 	for (const String &item : container())
 	{
-		if (result.is_empty() == false)
+		if (result.isEmpty() == false)
 			result += delim;
 
 		result += item;
@@ -386,11 +371,11 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-bool String::mask_against (const String& pattern) const
+bool String::maskAgainst (const String& pattern) const
 {
 	// Elevate to uppercase for case-insensitive matching
-	String pattern_upper = pattern.to_uppercase();
-	String this_upper = to_uppercase();
+	String pattern_upper = pattern.toUpperCase();
+	String this_upper = toUpperCase();
 	const char* maskstring = pattern_upper.chars();
 	const char* mptr = &maskstring[0];
 
@@ -434,7 +419,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::from_number (short int a)
+String String::fromNumber (short int a)
 {
 	char buf[32];
 	::sprintf (buf, "%d", a);
@@ -443,7 +428,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::from_number (int a)
+String String::fromNumber (int a)
 {
 	char buf[32];
 	::sprintf (buf, "%d", a);
@@ -452,7 +437,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::from_number (long int a)
+String String::fromNumber (long int a)
 {
 	char buf[32];
 	::sprintf (buf, "%ld", a);
@@ -461,7 +446,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::from_number (unsigned short int a)
+String String::fromNumber (unsigned short int a)
 {
 	char buf[32];
 	::sprintf (buf, "%u", a);
@@ -470,7 +455,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::from_number (unsigned int a)
+String String::fromNumber (unsigned int a)
 {
 	char buf[32];
 	::sprintf (buf, "%u", a);
@@ -479,7 +464,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::from_number (unsigned long int a)
+String String::fromNumber (unsigned long int a)
 {
 	char buf[32];
 	::sprintf (buf, "%lu", a);
@@ -488,7 +473,7 @@
 
 // -------------------------------------------------------------------------------------------------
 //
-String String::from_number (double a)
+String String::fromNumber (double a)
 {
 	char buf[64];
 	::sprintf (buf, "%f", a);
--- a/sources/mystring.h	Wed Jul 20 15:07:57 2016 +0300
+++ b/sources/mystring.h	Wed Jul 20 16:01:10 2016 +0300
@@ -34,123 +34,106 @@
 #include <stdarg.h>
 #include "basics.h"
 #include "list.h"
+
 BEGIN_ZFC_NAMESPACE
 
-class String;
-class StringList;
 
-// -------------------------------------------------------------------------------------------------
-//
 class String
 {
 public:
-	String() {}
-
-	String (char a)
-	{
-		char buffer[2] = { a, '0' };
-		m_string = buffer;
-	}
-
-	String (const char* data) :
-		m_string (data) {}
-
-	String (const std::string& data) :
-		m_string (data) {}
-
-	String (const Vector<char>& data) :
-		m_string (data.data(), data.size()) {}
-
 	typedef std::string::iterator Iterator;
 	typedef std::string::const_iterator ConstIterator;
 
-	ConstIterator begin() const { return m_string.cbegin(); }
-	int compare (const String &other) const;
-	int count (char needle) const;
-	const char* chars() const { return m_string.c_str(); }
-	ConstIterator end() const { return m_string.end(); }
-	int find (const char* c, int a = 0) const;
-	int find (char ch, int a = 0) const;
-	bool is_empty() const { return m_string[0] == '\0'; }
-	bool is_numeric() const;
-	int find_last (const char*c, int a) const;
-	int length() const { return m_string.length(); }
-	bool mask_against (const String &pattern) const;
-	String md5() const;
-	String mid (int a, int b) const;
-	String right (int length) const;
-	StringList split (const String &del) const;
-	StringList split (char del) const;
-	const std::string& std_string() const { return m_string; }
-	String strip (char unwanted) const;
-	String strip (const List<char> &unwanted) const;
-	double to_double (bool* ok = nullptr) const;
-	float to_float (bool* ok = nullptr) const;
-	long to_int (bool* ok = nullptr, int base = 10) const;
-	String to_lowercase() const;
-	String to_uppercase() const;
-	int word_position (int n) const;
+	String();
+	String(char a);
+	String(const char* data);
+	String(const std::string& data);
+	String(const Vector<char>& data);
 
-	void append (const char* data) { m_string.append (data); }
-	void append (char data) { m_string.push_back (data); }
-	void append (const String& data) { m_string.append (data.chars()); }
-	Iterator begin() { return m_string.begin(); }
-	void clear() { m_string.clear(); }
-	Iterator end() { return m_string.end(); }
-	bool ends_with (const String &other);
-	int index_difference (int a, int b) { modify_index (a); modify_index (b); return b - a; }
-	void insert (int pos, char c) { m_string.insert (m_string.begin() + pos, c); }
-	void insert (int pos, const char*c) { m_string.insert (pos, c); }
-	void modify_index (int &a) { if (a < 0) { a = length() - a; } }
-	void normalize (int (*filter)(int) = &isspace);
-	String normalized (int (*filter)(int) = &isspace) const;
-	void prepend (String a) { m_string = (a + m_string).std_string(); }
-	void remove (int pos, int len) { m_string.replace (pos, len, ""); }
-	void remove_at (int pos) { m_string.erase (m_string.begin() + pos); }
-	void remove_from_end (int len) { remove (length() - len, len); }
-	void remove_from_start (int len) { remove (0, len); }
-	void replace (const char* a, const char* b);
-	void replace (int pos, int n, const String &a) { m_string.replace (pos, n, a.chars()); }
-	void shrink_to_fit() { m_string.shrink_to_fit(); }
-	void __cdecl sprintf (const char* fmtstr, ...);
-	void vsprintf (const char* fmtstr, va_list args);
-	bool starts_with (const String &other) const;
-	void trim (int n);
+	void                        append(const char* data);
+	void                        append(char data);
+	void                        append(const String& data);
+	ConstIterator               begin() const;
+	Iterator                    begin();
+	int                         compare(const String &other) const;
+	int                         count(char needle) const;
+	const char*                 chars() const;
+	void                        clear();
+	ConstIterator               end() const;
+	Iterator                    end();
+	bool                        endsWith(const String &other) const;
+	int                         find(const char* c, int a = 0) const;
+	int                         find(char ch, int a = 0) const;
+	int                         indexDifference(int a, int b);
+	void                        insert(int pos, char c);
+	void                        insert(int pos, const char* c);
+	bool                        isEmpty() const;
+	bool                        isNumeric() const;
+	void                        modifyIndex(int &a) const;
+	int                         findLast(const char*c, int a) const;
+	int                         length() const;
+	bool                        maskAgainst(const String &pattern) const;
+	String                      md5() const;
+	String                      mid(int a, int b) const;
+	void                        normalize(int(*filter)(int) = &isspace);
+	String                      normalized(int(*filter)(int) = &isspace) const;
+	void                        prepend(String a);
+	void                        remove(int pos, int len);
+	void                        removeAt(int pos);
+	void                        removeFromEnd(int len);
+	void                        removeFromStart(int len);
+	void                        replace(const char* a, const char* b);
+	void                        replace(int pos, int n, const String &a);
+	String                      right(int length) const;
+	void                        shrinkToFit();
+	class StringList            split(const String &del) const;
+	class StringList            split(char del) const;
+	void __cdecl                sprintf(const char* fmtstr, ...);
+	bool                        startsWith(const String &other) const;
+	const std::string&          stdString() const;
+	String                      strip(char unwanted) const;
+	String                      strip(const List<char> &unwanted) const;
+	double                      toDouble(bool* ok = nullptr) const;
+	float                       toFloat(bool* ok = nullptr) const;
+	long                        toInt(bool* ok = nullptr, int base = 10) const;
+	String                      toLowerCase() const;
+	String                      toUpperCase() const;
+	void                        trim(int n);
+	void                        vsprintf(const char* fmtstr, va_list args);
 
-	static String from_number (short int a);
-	static String from_number (int a);
-	static String from_number (long int a);
-	static String from_number (unsigned short int a);
-	static String from_number (unsigned int a);
-	static String from_number (unsigned long int a);
-	static String from_number (double a);
+	static String               fromNumber(short int a);
+	static String               fromNumber(int a);
+	static String               fromNumber(long int a);
+	static String               fromNumber(unsigned short int a);
+	static String               fromNumber(unsigned int a);
+	static String               fromNumber(unsigned long int a);
+	static String               fromNumber(double a);
 
-	String operator+ (const String& data) const;
-	String operator+ (const char* data) const;
-	String operator+ (int num) const { return *this + String::from_number (num); }
-	String& operator+= (const String& data) { append (data); return *this; }
-	String& operator+= (const char* data) { append (data); return *this; }
-	String& operator+= (int num) { return operator+= (String::from_number (num)); }
-	String& operator+= (char data) { append (data); return *this; }
-	char& operator[] (int i) { return m_string[i]; }
-	char operator[] (int i) const { return m_string[i]; }
-	bool operator== (const String& other) const { return std_string() == other.std_string(); }
-	bool operator== (const char* other) const { return m_string == other; }
-	bool operator!= (const String& other) const { return std_string() != other.std_string(); }
-	bool operator!= (const char* other) const { return m_string != other; }
-	bool operator> (const String& other) const { return std_string() > other.std_string(); }
-	bool operator< (const String& other) const { return std_string() < other.std_string(); }
-	bool operator>= (const String& other) const { return std_string() >= other.std_string(); }
-	bool operator<= (const String& other) const { return std_string() <= other.std_string(); }
-	operator const char*() const { return chars(); }
-	operator const std::string&() const { return std_string(); }
+	String                      operator+(const String& data) const;
+	String                      operator+(const char* data) const;
+	String                      operator+(int num) const;
+	String&                     operator+=(const String& data);
+	String&                     operator+=(const char* data);
+	String&                     operator+=(int num);
+	String&                     operator+=(char data);
+	char&                       operator[](int i);
+	char                        operator[](int i) const;
+	bool                        operator==(const String& other) const;
+	bool                        operator==(const char* other) const;
+	bool                        operator!=(const String& other) const;
+	bool                        operator!=(const char* other) const;
+	bool                        operator>(const String& other) const;
+	bool                        operator<(const String& other) const;
+	bool                        operator>=(const String& other) const;
+	bool                        operator<=(const String& other) const;
+	                            operator const char*() const;
+	                            operator const std::string&() const;
 
 private:
 	std::string m_string;
 };
 
-// -------------------------------------------------------------------------------------------------
-//
+
 class StringList : public List<String>
 {
 public:
@@ -158,27 +141,302 @@
 
 	StringList() {}
 
-	StringList (int numvalues) :
-		Super (numvalues) {}
+	StringList(int numvalues) :
+		Super(numvalues) {}
 
-	StringList (const Super& other) :
-		Super (other) {}
+	StringList(const Super& other) :
+		Super(other) {}
 
-	String join (const String& delim);
+	String join(const String& delim);
 };
 
-// -------------------------------------------------------------------------------------------------
-//
-inline bool operator== (const char* a, const String& b)
+
+inline bool operator==(const char* a, const String& b);
+inline String operator+(const char* a, const String& b);
+
+// --------------------------------------------------------------------------------------------------------------------
+// Inline implementations
+
+
+inline String::String() {}
+
+
+inline String::String(char a)
+{
+	char buffer[2] = { a, '\0' };
+	m_string = buffer;
+}
+
+
+inline String::String(const char* data) :
+	m_string(data) {}
+
+
+inline String::String(const std::string& data) :
+	m_string(data) {}
+
+
+inline String::String(const Vector<char>& data) :
+	m_string(data.data(), data.size()) {}
+
+
+inline String::ConstIterator String::begin() const
+{
+	return m_string.cbegin();
+}
+
+
+inline const char* String::chars() const
+{
+	return m_string.c_str();
+}
+
+
+inline String::ConstIterator String::end() const
+{
+	return m_string.end();
+}
+
+
+inline bool String::isEmpty() const
+{
+	return m_string[0] == '\0';
+}
+
+
+inline int String::length() const
+{
+	return m_string.length();
+}
+
+
+inline const std::string& String::stdString() const
+{
+	return m_string;
+}
+
+
+inline void String::append(const char* data)
+{
+	m_string.append(data);
+}
+
+
+inline void String::append(char data)
+{
+	m_string.push_back(data);
+}
+
+
+inline void String::append(const String& data)
+{
+	m_string.append(data.chars());
+}
+
+
+inline String::Iterator String::begin()
+{
+	return m_string.begin();
+}
+
+
+inline void String::clear()
+{
+	m_string.clear();
+}
+
+
+inline String::Iterator String::end()
+{
+	return m_string.end();
+}
+
+
+inline int String::indexDifference(int a, int b)
+{
+	modifyIndex(a);
+	modifyIndex(b);
+	return b - a;
+}
+
+
+inline void String::insert(int pos, char c)
+{
+	m_string.insert(m_string.begin() + pos, c);
+}
+
+
+inline void String::insert(int pos, const char* c)
+{
+	m_string.insert(pos, c);
+}
+
+
+inline void String::modifyIndex(int& a) const
+{
+	if (a < 0)
+		a = length() - a;
+}
+
+
+inline void String::prepend(String a)
+{
+	m_string = (a + m_string).stdString();
+}
+
+
+inline void String::remove(int pos, int len)
+{
+	m_string.replace(pos, len, "");
+}
+
+
+inline void String::removeAt(int pos)
+{
+	m_string.erase(m_string.begin() + pos);
+}
+
+
+inline void String::removeFromEnd(int len)
+{
+	remove(length() - len, len);
+}
+
+
+inline void String::removeFromStart(int len)
+{
+	remove(0, len);
+}
+
+
+inline void String::replace(int pos, int n, const String& a)
+{
+	m_string.replace(pos, n, a.chars());
+}
+
+
+inline void String::shrinkToFit()
+{
+	m_string.shrink_to_fit();
+}
+
+
+inline String String::operator+(int num) const
+{
+	return *this + String::fromNumber(num);
+}
+
+
+inline String& String::operator+=(const String& data)
+{
+	append(data);
+	return *this;
+}
+
+
+inline String& String::operator+=(const char* data)
+{
+	append(data);
+	return *this;
+}
+
+
+inline String& String::operator+=(int num)
+{
+	return operator+=(String::fromNumber(num));
+}
+
+
+inline String& String::operator+=(char data)
+{
+	append(data);
+	return *this;
+}
+
+
+inline char& String::operator[](int i)
+{
+	return m_string[i];
+}
+
+
+inline char String::operator[](int i) const
+{
+	return m_string[i];
+}
+
+
+inline bool String::operator==(const String& other) const
+{
+	return stdString() == other.stdString();
+}
+
+
+inline bool String::operator==(const char* other) const
+{
+	return m_string == other;
+}
+
+
+inline bool String::operator!=(const String& other) const
+{
+	return stdString() != other.stdString();
+}
+
+
+inline bool String::operator!=(const char* other) const
+{
+	return m_string != other;
+}
+
+
+inline bool String::operator>(const String& other) const
+{
+	return stdString() > other.stdString();
+}
+
+
+inline bool String::operator<(const String& other) const
+{
+	return stdString() < other.stdString();
+}
+
+
+inline bool String::operator>=(const String& other) const
+{
+	return stdString() >= other.stdString();
+}
+
+
+inline bool String::operator<=(const String& other) const
+{
+	return stdString() <= other.stdString();
+}
+
+
+inline String::operator const char*() const
+{
+	return chars();
+}
+
+
+inline String::operator const std::string&() const
+{
+	return stdString();
+}
+
+
+
+inline bool operator==(const char* a, const String& b)
 {
 	return b == a;
 }
 
-// -------------------------------------------------------------------------------------------------
-//
-inline String operator+ (const char* a, const String& b)
+
+inline String operator+(const char* a, const String& b)
 {
-	return String (a) + b;
+	return String(a) + b;
 }
 
+
 END_ZFC_NAMESPACE
--- a/sources/network/ipaddress.cpp	Wed Jul 20 15:07:57 2016 +0300
+++ b/sources/network/ipaddress.cpp	Wed Jul 20 16:01:10 2016 +0300
@@ -161,7 +161,7 @@
 	}
 
 	if (colonpos != -1)
-		value.port = (unsigned short) input.mid (colonpos + 1, -1).to_int();
+		value.port = (unsigned short) input.mid (colonpos + 1, -1).toInt();
 
 	return value;
 }
--- a/sources/network/rconsession.cpp	Wed Jul 20 15:07:57 2016 +0300
+++ b/sources/network/rconsession.cpp	Wed Jul 20 16:01:10 2016 +0300
@@ -324,7 +324,7 @@
 //
 bool RCONSession::send_command (const String& message)
 {
-	if (m_state != RCON_CONNECTED or message.is_empty())
+	if (m_state != RCON_CONNECTED or message.isEmpty())
 		return false;
 
 	Bytestream packet;
--- a/sources/network/udpsocket.cpp	Wed Jul 20 15:07:57 2016 +0300
+++ b/sources/network/udpsocket.cpp	Wed Jul 20 16:01:10 2016 +0300
@@ -105,7 +105,7 @@
 
 	if (::bind (m_socket, reinterpret_cast<sockaddr*> (&svaddr), sizeof svaddr) == -1)
 	{
-		m_error = String ("Couldn't bind to port ") + String::from_number (port);
+		m_error = String ("Couldn't bind to port ") + String::fromNumber (port);
 		return false;
 	}
 

mercurial