]> git.mxchange.org Git - simgear.git/commitdiff
Error messages when installing property aliases fails.
authorThorstenB <brehmt@gmail.com>
Thu, 5 Apr 2012 18:03:07 +0000 (20:03 +0200)
committerThorstenB <brehmt@gmail.com>
Thu, 5 Apr 2012 18:03:07 +0000 (20:03 +0200)
simgear/props/props.cxx

index 5fe9bc90b10d88a19efe31489ceb9686b7662906..95b85c77f6bc0d23934b04dfad4ab086df1a68cc 100644 (file)
@@ -778,13 +778,39 @@ SGPropertyNode::~SGPropertyNode ()
 bool
 SGPropertyNode::alias (SGPropertyNode * target)
 {
-  if (target == 0 || _type == props::ALIAS || _tied)
-    return false;
-  clearValue();
-  get(target);
-  _value.alias = target;
-  _type = props::ALIAS;
-  return true;
+  if (target && (_type != props::ALIAS) && (!_tied))
+  {
+    clearValue();
+    get(target);
+    _value.alias = target;
+    _type = props::ALIAS;
+    return true;
+  }
+
+#if PROPS_STANDALONE
+#else
+  if (!target)
+  {
+    SG_LOG(SG_GENERAL, SG_ALERT,
+           "Failed to create alias for " << getPath() << ". "
+           "The target property does not exist.");
+  }
+  else
+  if (_type == props::ALIAS)
+  {
+    SG_LOG(SG_GENERAL, SG_ALERT,
+           "Failed to create alias at " << target->getPath() << ". "
+           "Source "<< getPath() << " is also an alias. Unsupported recursion.");
+  }
+  else
+  if (_tied)
+  {
+    SG_LOG(SG_GENERAL, SG_ALERT, "Failed to create alias at " << target->getPath() << ". "
+           "Source " << getPath() << " is a tied property.");
+  }
+#endif
+
+  return false;
 }