Index: cpp/frams/param/multiparamload.cpp
===================================================================
--- cpp/frams/param/multiparamload.cpp	(revision 950)
+++ cpp/frams/param/multiparamload.cpp	(revision 973)
@@ -1,4 +1,4 @@
 // This file is a part of Framsticks SDK.  http://www.framsticks.com/
-// Copyright (C) 1999-2018  Maciej Komosinski and Szymon Ulatowski.
+// Copyright (C) 1999-2020  Maciej Komosinski and Szymon Ulatowski.
 // See LICENSE.txt for details.
 
@@ -158,11 +158,11 @@
 		}
 		buf = trim(buf);
-		if (buf.len() == 0)
-			unexpected_line = 0;
-		else if ((buf.len() > 1) && (buf[buf.len() - 1] == ':'))
+		if (buf.length() == 0)
+			unexpected_line = 0;
+		else if ((buf.length() > 1) && (buf[buf.length() - 1] == ':'))
 		{
 			unexpected_line = 0;
 			lastunknown = 0;
-			lastunknown = buf.substr(0, buf.len() - 1);
+			lastunknown = buf.substr(0, buf.length() - 1);
 			lastobject.setEmpty();
 			FOREACH(ExtObject*, o, objects)
@@ -193,5 +193,5 @@
 					thisfilename ? SString::sprintf(" while reading '%s'", thisfilename).c_str() : "");
 			}
-				break;
+			break;
 
 			case 1:
@@ -293,6 +293,6 @@
 		if (stat == OnError)
 		{
-		abort();
-		return 0;
+			abort();
+			return 0;
 		}
 	return 1;
Index: cpp/frams/param/mutableparam.cpp
===================================================================
--- cpp/frams/param/mutableparam.cpp	(revision 950)
+++ cpp/frams/param/mutableparam.cpp	(revision 973)
@@ -1,4 +1,4 @@
 // This file is a part of Framsticks SDK.  http://www.framsticks.com/
-// Copyright (C) 1999-2019  Maciej Komosinski and Szymon Ulatowski.
+// Copyright (C) 1999-2020  Maciej Komosinski and Szymon Ulatowski.
 // See LICENSE.txt for details.
 
@@ -33,5 +33,5 @@
 int MutableParam::findGroup(const SString name, int ignoreprefix)
 {
-	int skipprefix = grprefix.len() ? grprefix.len() + 2 : 0;
+	int skipprefix = grprefix.length() ? grprefix.length() + 2 : 0;
 	for (int i = 0; i < groups.size(); i++)
 	{
@@ -57,5 +57,5 @@
 	{
 		tmp = grprefix;
-		if (tmp.len()) tmp += ": ";
+		if (tmp.length()) tmp += ": ";
 		tmp += gname;
 	}
Index: cpp/frams/param/param.cpp
===================================================================
--- cpp/frams/param/param.cpp	(revision 950)
+++ cpp/frams/param/param.cpp	(revision 973)
@@ -1,4 +1,4 @@
 // This file is a part of Framsticks SDK.  http://www.framsticks.com/
-// Copyright (C) 1999-2019  Maciej Komosinski and Szymon Ulatowski.
+// Copyright (C) 1999-2020  Maciej Komosinski and Szymon Ulatowski.
 // See LICENSE.txt for details.
 
@@ -56,5 +56,5 @@
 	int j;
 	for (int i = 0; i < n; i++)
-		if ((!(flags(i)&PARAM_READONLY))
+		if ((!(flags(i) & PARAM_READONLY))
 			&& (*type(i) != 'p'))
 		{
@@ -71,5 +71,5 @@
 	ExtValue v;
 	for (int i = 0; i < n; i++)
-		if ((!(flags(i)&PARAM_READONLY))
+		if ((!(flags(i) & PARAM_READONLY))
 			&& (*type(i) != 'p'))
 		{
@@ -178,5 +178,5 @@
 		else
 		{
-			if (def.len() > 0) setExtValue(i, ExtValue(def)); else setExtValue(i, ExtValue::empty());
+			if (def.length() > 0) setExtValue(i, ExtValue(def)); else setExtValue(i, ExtValue::empty());
 		}
 	}
@@ -303,5 +303,5 @@
 int ParamInterface::saveprop(VirtFILE* f, int i, const char* p, bool force)
 {
-	if ((flags(i)&PARAM_DONTSAVE) && (!force)) return 0;
+	if ((flags(i) & PARAM_DONTSAVE) && (!force)) return 0;
 	const char *typ = type(i);
 	if (*typ == 'p') return 0;
@@ -323,5 +323,5 @@
 	quoteTilde(ws);
 	w = ws.c_str();
-	if (ws.len() > 50) cr = 1;
+	if (ws.length() > 50) cr = 1;
 	else for (t = w; *t; t++) if ((*t == 10) || (*t == 13)) { cr = 1; break; }
 	if (cr) f->Vputs("~\n");
@@ -334,6 +334,6 @@
 {
 	SString ret = getName();
-	ret+=".";
-	ret+=id(prop);
+	ret += ".";
+	ret += id(prop);
 	return ret;
 }
@@ -342,13 +342,13 @@
 {
 	SString name_dot_prop = nameDotProperty(prop);
-	if (strcmp(getName(),getLongName())==0)
-		{
-		if (strcmp(id(prop),name(prop))==0)
+	if (strcmp(getName(), getLongName()) == 0)
+	{
+		if (strcmp(id(prop), name(prop)) == 0)
 			return name_dot_prop;
 		else
-			return SString("'")+name(prop)+"': "+name_dot_prop;
-		}
-	else
-		return SString("'")+name(prop)+"' in '"+getLongName()+"': "+name_dot_prop;
+			return SString("'") + name(prop) + "': " + name_dot_prop;
+	}
+	else
+		return SString("'") + name(prop) + "' in '" + getLongName() + "': " + name_dot_prop;
 }
 
@@ -394,5 +394,5 @@
 	// t+=SString(getName()); t+=':';
 	for (i = 0; p = id(i); i++)
-		if (!((fl = flags(i))&PARAM_DONTSAVE))
+		if (!((fl = flags(i)) & PARAM_DONTSAVE))
 		{
 			if (defdata && isequal(i, defdata))
@@ -469,5 +469,5 @@
 			nameDotPropertyForMessages(i).c_str(),
 			::sstringDelimitAndShorten(svaluetoset, 30, show_length, quote, quote).c_str(),
-			(setflags&PSET_HITMAX) ? (s_type ? "long" : "big") : "small", s_type ? "Truncated" : "Adjusted",
+			(setflags & PSET_HITMAX) ? (s_type ? "long" : "big") : "small", s_type ? "Truncated" : "Adjusted",
 			::sstringDelimitAndShorten(actual, 30, show_length, quote, quote).c_str()
 		);
@@ -583,5 +583,5 @@
 			else
 				seen[i] = true;
-			if (!(flags(i)&PARAM_DONTLOAD))
+			if (!(flags(i) & PARAM_DONTLOAD))
 			{
 				if (p0[p_len + 1] == '~')
@@ -600,5 +600,5 @@
 					int ch; while ((ch = f->Vgetc()) != EOF) if (ch == '\n') break;
 					unquoteTilde(s);
-					if (options.linenum && (flags(i)&PARAM_LINECOMMENT))
+					if (options.linenum && (flags(i) & PARAM_LINECOMMENT))
 						s = SString::sprintf("@file %s\n@line %d\n", f->VgetPath(), *options.linenum + 1) + s;
 					setFromString(i, s.c_str(), false);
@@ -943,5 +943,5 @@
 	if (err != NULL)
 		logPrintf("SimpleAbstractParam", "sanityCheck", LOG_ERROR,
-			  "Invalid ParamEntry for %s (%s)", nameDotPropertyForMessages(i).c_str(), err);
+			"Invalid ParamEntry for %s (%s)", nameDotPropertyForMessages(i).c_str(), err);
 }
 #endif
@@ -1054,5 +1054,5 @@
 	ExtValue v;
 	ParamEntry *pe = entry(i);
-	if (pe->flags&PARAM_READONLY) return PSET_RONLY;
+	if (pe->flags & PARAM_READONLY) return PSET_RONLY;
 	paInt xcopy = x; //only needed for messageOnExceedRange(): retain original, requested value of x because it may be changed below
 	paInt mn = 0, mx = 0, de = 0;
@@ -1088,5 +1088,5 @@
 	ExtValue v;
 	ParamEntry *pe = entry(i);
-	if (pe->flags&PARAM_READONLY) return PSET_RONLY;
+	if (pe->flags & PARAM_READONLY) return PSET_RONLY;
 	double xcopy = x; //only needed for messageOnExceedRange(): retain original, requested value of x because it may be changed below
 	double mn = 0, mx = 0, de = 0;
@@ -1124,5 +1124,5 @@
 	const SString *xx = &x;
 	ParamEntry *pe = entry(i);
-	if (pe->flags&PARAM_READONLY) return PSET_RONLY;
+	if (pe->flags & PARAM_READONLY) return PSET_RONLY;
 	SString xcopy = x; //only needed for messageOnExceedRange(): retain original, requested value of x because it may be changed below
 	const char* t = pe->type + 1;
@@ -1132,5 +1132,5 @@
 	if (sscanf(t, "%d %d", &mn, &mx) == 2) //using getMinMax would also get default value, which is not needed here
 	{
-		if ((x.len() > mx) && (mx > 0))
+		if ((x.length() > mx) && (mx > 0))
 		{
 			vs = x.substr(0, mx);
@@ -1163,6 +1163,6 @@
 	ExtValue v;
 	ParamEntry *pe = entry(i);
-	if (pe->flags&PARAM_READONLY) return PSET_RONLY;
-	if (pe->flags&PARAM_OBJECTSET)
+	if (pe->flags & PARAM_READONLY) return PSET_RONLY;
+	if (pe->flags & PARAM_OBJECTSET)
 	{
 		ExtObject o = getObject(i);
@@ -1200,5 +1200,5 @@
 	SANITY_CHECK(i);
 	ParamEntry *pe = entry(i);
-	if (pe->flags&PARAM_READONLY) return PSET_RONLY;
+	if (pe->flags & PARAM_READONLY) return PSET_RONLY;
 	ExtValue xcopy = x; //only needed for messageOnExceedRange(): retain original, requested value of x because it may be changed below
 	if (pe->fun2)
@@ -1255,8 +1255,8 @@
 {
 	const char *beg = s.c_str() + poz;
-	if (poz >= s.len()) { poz = s.len(); len = 0; return s.c_str() + s.len(); }
+	if (poz >= s.length()) { poz = s.length(); len = 0; return s.c_str() + s.length(); }
 	const char *lf = strchr(beg, '\n');
-	if (!lf) { lf = s.c_str() + s.len() - 1; poz = s.len(); }
-	else { poz = (int)(lf - s.c_str()) + 1; if (poz > s.len()) poz = s.len(); }
+	if (!lf) { lf = s.c_str() + s.length() - 1; poz = s.length(); }
+	else { poz = (int)(lf - s.c_str()) + 1; if (poz > s.length()) poz = s.length(); }
 	while (lf >= beg) if ((*lf == '\n') || (*lf == '\r')) lf--; else break;
 	len = (int)(lf - beg) + 1;
@@ -1278,5 +1278,5 @@
 	SString tmpvalue;
 	bool parse_failed = false;
-	if (options.offset >= s.len()) return fields_loaded;
+	if (options.offset >= s.length()) return fields_loaded;
 	t = s.c_str() + options.offset;
 
@@ -1316,5 +1316,5 @@
 		if (field_end == t)	// skip empty value
 		{
-			t++; if (i>=0) i++;
+			t++; if (i >= 0) i++;
 			continue;
 		}
@@ -1332,9 +1332,9 @@
 #ifdef WARN_MISSING_NAME
 		else // no parameter name
-			{
+		{
 #ifdef SAVE_SELECTED_NAMES
 			if ((i < 0) // field after unknown field
-			    || (i >= getPropCount()) // field after last field
-			    || !(flags(i)&PARAM_CANOMITNAME)) // valid field but it can't be skipped
+				|| (i >= getPropCount()) // field after last field
+				|| !(flags(i) & PARAM_CANOMITNAME)) // valid field but it can't be skipped
 #endif
 			{
@@ -1344,5 +1344,5 @@
 					logPrintf("Param", "loadSingleLine", LOG_WARN, "Value after the last property of '%s'", getName());
 			}
-			}
+		}
 		//else skipping a skippable field
 #endif
@@ -1364,5 +1364,5 @@
 			ret = setFromString(i, value, true);
 			fields_loaded++;
-			if (ret&PSET_PARSEFAILED)
+			if (ret & PSET_PARSEFAILED)
 				parse_failed = true;
 			*(char*)valstop = remember;
