Index: cpp/frams/util/3d.cpp
===================================================================
--- cpp/frams/util/3d.cpp	(revision 371)
+++ cpp/frams/util/3d.cpp	(revision 372)
@@ -4,5 +4,5 @@
 
 #include <common/nonstd_math.h>
-#include <common/framsg.h>
+#include <common/hmessage.h>
 #include "3d.h"
 
@@ -17,5 +17,5 @@
 {
 	double q = x*x + y*y + z*z;
-	if (q < 0) { if (report_errors) FMprintf("Pt3D", "operator()", FMLV_ERROR, "sqrt(%g): domain error", q); return 0; }
+	if (q < 0) { if (report_errors) Hprintf("Pt3D", "operator()", HMLV_ERROR, "sqrt(%g): domain error", q); return 0; }
 	return sqrt(q);
 }
@@ -24,5 +24,5 @@
 {
 	double len = length();
-	if (fabs(len) < 1e-50) { if (report_errors) FMprintf("Pt3D", "normalize()", FMLV_WARN, "vector[%g,%g,%g] too small", x, y, z); x = 1; y = 0; z = 0; return false; }
+	if (fabs(len) < 1e-50) { if (report_errors) Hprintf("Pt3D", "normalize()", HMLV_WARN, "vector[%g,%g,%g] too small", x, y, z); x = 1; y = 0; z = 0; return false; }
 	operator/=(len);
 	return true;
@@ -64,5 +64,5 @@
 	if (dx == 0 && dy == 0)
 	{
-		if (report_errors) FMprintf("Pt3D", "getAngle()", FMLV_WARN, "atan2(%g,%g)", dy, dx);
+		if (report_errors) Hprintf("Pt3D", "getAngle()", HMLV_WARN, "atan2(%g,%g)", dy, dx);
 		return 0; // incorrect result, but there is no correct one
 	}
@@ -147,5 +147,5 @@
 {
 	double q = x*x + y*y;
-	if (q < 0) { if (Pt3D::report_errors) FMprintf("", "d2()", FMLV_ERROR, "sqrt(%g): domain error", q); return 0; }
+	if (q < 0) { if (Pt3D::report_errors) Hprintf("", "d2()", HMLV_ERROR, "sqrt(%g): domain error", q); return 0; }
 	return sqrt(q);
 }
Index: cpp/frams/util/extvalue.cpp
===================================================================
--- cpp/frams/util/extvalue.cpp	(revision 371)
+++ cpp/frams/util/extvalue.cpp	(revision 372)
@@ -98,5 +98,5 @@
 	if (warn)
 	{
-		FMprintf("ExtValue", "getObjectTarget", FMLV_WARN, "%s object expected, %s found", classname, interfaceName());
+		Hprintf("ExtValue", "getObjectTarget", HMLV_WARN, "%s object expected, %s found", classname, interfaceName());
 	}
 
@@ -269,5 +269,5 @@
 			if (tmp.len() > 30) tmp = tmp.substr(0, 30) + "...";
 			if (type == TString) tmp = SString("\"") + tmp + SString("\"");
-			FMprintf("ExtValue", "getObjectTarget", FMLV_WARN, "%s object expected, %s found", classname, tmp.c_str());
+			Hprintf("ExtValue", "getObjectTarget", HMLV_WARN, "%s object expected, %s found", classname, tmp.c_str());
 		}
 		return NULL;
@@ -419,5 +419,5 @@
 				context->v2->typeAndValue().c_str());
 		}
-		FMprintf("ExtValue", "interpretCompare", FMLV_ERROR, "%s", msg.c_str());
+		Hprintf("ExtValue", "interpretCompare", HMLV_ERROR, "%s", msg.c_str());
 		ret = -1;
 	}
@@ -448,5 +448,5 @@
 		{
 		case TDouble:
-			FMprintf("ExtValue", "add", FMLV_WARN, "Adding %s to %s", src.typeAndValue().c_str(), typeAndValue().c_str());
+			Hprintf("ExtValue", "add", HMLV_WARN, "Adding %s to %s", src.typeAndValue().c_str(), typeAndValue().c_str());
 			setDouble(double(getInt()) + src.getDouble());
 			return;
@@ -487,5 +487,5 @@
 	default:;
 	}
-	FMprintf("ExtValue", "add", FMLV_ERROR, "Can't add %s to %s", src.typeAndValue().c_str(), typeAndValue().c_str());
+	Hprintf("ExtValue", "add", HMLV_ERROR, "Can't add %s to %s", src.typeAndValue().c_str(), typeAndValue().c_str());
 }
 
@@ -502,5 +502,5 @@
 			return;
 		case TDouble:
-			FMprintf("ExtValue", "subtract", FMLV_WARN, "Subtracting %s from %s", src.typeAndValue().c_str(), typeAndValue().c_str());
+			Hprintf("ExtValue", "subtract", HMLV_WARN, "Subtracting %s from %s", src.typeAndValue().c_str(), typeAndValue().c_str());
 			setDouble(double(getInt()) - src.getDouble());
 			return;
@@ -520,5 +520,5 @@
 	default:;
 	}
-	FMprintf("ExtValue", "subtract", FMLV_ERROR, "Can't subtract %s from %s", src.typeAndValue().c_str(), typeAndValue().c_str());
+	Hprintf("ExtValue", "subtract", HMLV_ERROR, "Can't subtract %s from %s", src.typeAndValue().c_str(), typeAndValue().c_str());
 }
 
@@ -535,5 +535,5 @@
 			return;
 		case TDouble:
-			FMprintf("ExtValue", "multiply", FMLV_WARN, "Multiplying %s by %s", typeAndValue().c_str(), src.typeAndValue().c_str());
+			Hprintf("ExtValue", "multiply", HMLV_WARN, "Multiplying %s by %s", typeAndValue().c_str(), src.typeAndValue().c_str());
 			setDouble(double(getInt())*src.getDouble());
 			return;
@@ -591,8 +591,7 @@
 	default:;
 	}
-	FMprintf("ExtValue", "multiply", FMLV_WARN, "Can't multiply %s by %s", typeAndValue().c_str(), src.typeAndValue().c_str());
-}
-
-#include <common/framsg.h>
+	Hprintf("ExtValue", "multiply", HMLV_WARN, "Can't multiply %s by %s", typeAndValue().c_str(), src.typeAndValue().c_str());
+}
+
 /*#include "fpu_control.h"
 #include <signal.h>
@@ -612,5 +611,5 @@
 	else
 	{
-		FMprintf("ExtValue", "divide", FMLV_CRITICAL, "Division by zero: %d/0", idata());
+		Hprintf("ExtValue", "divide", HMLV_CRITICAL, "Division by zero: %d/0", idata());
 		setInvalid();
 	}
@@ -621,5 +620,5 @@
 	if (a == 0.0)
 	{
-		FMprintf("ExtValue", "divide", FMLV_CRITICAL, "Division by zero: %s/0.0", getString().c_str());
+		Hprintf("ExtValue", "divide", HMLV_CRITICAL, "Division by zero: %s/0.0", getString().c_str());
 		setInvalid();
 	}
@@ -630,5 +629,5 @@
 		if (!finite(tmp))
 		{
-			FMprintf("ExtValue", "divide", FMLV_CRITICAL, "Overflow %s/%g", getString().c_str(), a); setInvalid();
+			Hprintf("ExtValue", "divide", HMLV_CRITICAL, "Overflow %s/%g", getString().c_str(), a); setInvalid();
 		}
 		else
@@ -636,5 +635,5 @@
 		// niby dobrze ale lepiej byloby to robic bardziej systematycznie a nie tylko w dzieleniu?
 		//if (isnan(ddata())) //http://www.digitalmars.com/d/archives/c++/Traping_divide_by_zero_5728.html
-		//	  { FMprintf("ExtValue","divide",FMLV_ERROR,"not-a-number",(const char*)getString()); setInvalid(); }
+		//	  { Hprintf("ExtValue","divide",HMLV_ERROR,"not-a-number",(const char*)getString()); setInvalid(); }
 		fpExceptEnable();
 	}
@@ -652,5 +651,5 @@
 			return;
 		case TDouble:
-			FMprintf("ExtValue", "divide", FMLV_WARN, "Dividing %s by %s", typeAndValue().c_str(), src.typeAndValue().c_str());
+			Hprintf("ExtValue", "divide", HMLV_WARN, "Dividing %s by %s", typeAndValue().c_str(), src.typeAndValue().c_str());
 			divDouble(src.ddata());
 			return;
@@ -674,5 +673,5 @@
 	default:;
 	}
-	FMprintf("ExtValue", "divide", FMLV_ERROR, "Can't divide %s by %s", typeAndValue().c_str(), src.typeAndValue().c_str());
+	Hprintf("ExtValue", "divide", HMLV_ERROR, "Can't divide %s by %s", typeAndValue().c_str(), src.typeAndValue().c_str());
 }
 
@@ -779,5 +778,5 @@
 
 	case TObj: case TUnknown: case TInvalid:
-		FMprintf("ExtValue", "modulo", FMLV_WARN, "Can't apply modulo to %s", typeDescription().c_str());
+		Hprintf("ExtValue", "modulo", HMLV_WARN, "Can't apply modulo to %s", typeDescription().c_str());
 
 	default:;
@@ -792,5 +791,5 @@
 	{
 		if (error)
-			FMprintf("ExtValue", "parseInt", FMLV_ERROR, "Could not parse '%s'%s", s, strict ? " (strict)" : "");
+			Hprintf("ExtValue", "parseInt", HMLV_ERROR, "Could not parse '%s'%s", s, strict ? " (strict)" : "");
 		return false;
 	}
@@ -806,5 +805,5 @@
 	{
 		if (error)
-			FMprintf("ExtValue", "parseDouble", FMLV_ERROR, "Could not parse '%s'", s);
+			Hprintf("ExtValue", "parseDouble", HMLV_ERROR, "Could not parse '%s'", s);
 		return false;
 	}
@@ -837,5 +836,5 @@
 	case TString: return getInt(sdata().c_str());
 	case TObj:
-		FMprintf("ExtValue", "getInt", FMLV_WARN, "Getting integer value from object reference (%s)", getString().c_str());
+		Hprintf("ExtValue", "getInt", HMLV_WARN, "Getting integer value from object reference (%s)", getString().c_str());
 		return (paInt)(intptr_t)odata().param;
 	default:;
@@ -852,5 +851,5 @@
 	case TString: return getDouble(sdata().c_str());
 	case TObj:
-		FMprintf("ExtValue", "getDouble", FMLV_WARN, "Getting floating point value from object reference (%s)", getString().c_str());
+		Hprintf("ExtValue", "getDouble", HMLV_WARN, "Getting floating point value from object reference (%s)", getString().c_str());
 		return (double)(intptr_t)odata().param;
 	default:;
@@ -990,5 +989,5 @@
 		else
 		{
-			FMprintf("ExtValue", "deserialize", FMLV_ERROR, "Missing '\"' in string: '%s'", ret);
+			Hprintf("ExtValue", "deserialize", HMLV_ERROR, "Missing '\"' in string: '%s'", ret);
 			return NULL;
 		}
@@ -1012,5 +1011,5 @@
 				else if (*p != ']')
 				{
-					FMprintf("ExtValue", "deserialize", FMLV_ERROR, "Missing ',' in Vector: '%s'", p);
+					Hprintf("ExtValue", "deserialize", HMLV_ERROR, "Missing ',' in Vector: '%s'", p);
 					return NULL;
 				}
@@ -1038,5 +1037,5 @@
 			if ((!ret) || (args[1].getType() != TString)) { p = NULL; break; }
 			p = ret;
-			if (*p != ':') { FMprintf("ExtValue", "deserialize", FMLV_ERROR, "Missing ':' in Dictionary: '%s'", p); p = NULL; break; }
+			if (*p != ':') { Hprintf("ExtValue", "deserialize", HMLV_ERROR, "Missing ':' in Dictionary: '%s'", p); p = NULL; break; }
 			p++;
 			ret = args[0].deserialize(p);
@@ -1047,5 +1046,5 @@
 			else if (*p != '}')
 			{
-				FMprintf("ExtValue", "deserialize", FMLV_ERROR, "Missing ',' in Dictionary: '%s'", p);
+				Hprintf("ExtValue", "deserialize", HMLV_ERROR, "Missing ',' in Dictionary: '%s'", p);
 				return NULL;
 			}
@@ -1087,5 +1086,5 @@
 			}
 		}
-		FMprintf("ExtValue", "deserialize", FMLV_ERROR, "Invalid reference: '%s'", in - 1);
+		Hprintf("ExtValue", "deserialize", HMLV_ERROR, "Invalid reference: '%s'", in - 1);
 		return NULL;
 	}
@@ -1134,8 +1133,8 @@
 		}
 		setEmpty();
-		FMprintf("ExtValue", "deserialize", FMLV_WARN, "object of class \"%s\" could not be deserialized", clsname.c_str());
+		Hprintf("ExtValue", "deserialize", HMLV_WARN, "object of class \"%s\" could not be deserialized", clsname.c_str());
 		return ret;
 	}
-	FMprintf("ExtValue", "deserialize", FMLV_ERROR, "Bad syntax: '%s'", in);
+	Hprintf("ExtValue", "deserialize", HMLV_ERROR, "Bad syntax: '%s'", in);
 	setEmpty();
 	return NULL;
Index: cpp/frams/util/sstringutils.cpp
===================================================================
--- cpp/frams/util/sstringutils.cpp	(revision 371)
+++ cpp/frams/util/sstringutils.cpp	(revision 372)
@@ -5,5 +5,5 @@
 #include "sstringutils.h"
 #include <frams/virtfile/virtfile.h>
-#include <common/framsg.h>
+#include <common/hmessage.h>
 #include <common/nonstd.h>
 
@@ -19,5 +19,5 @@
 	}
 	else if (framsgmodule)
-		FMprintf(framsgmodule, "loadSString", FMLV_WARN, error ? error : "can't open file \"%s\"", filename);
+		Hprintf(framsgmodule, "loadSString", HMLV_WARN, error ? error : "can't open file \"%s\"", filename);
 	return ret;
 }
