+ if (path.size ())
+ {
+ Context *current = this;
+
+ // start at 1. The first one (index 0) will be us.
+ for (int i = 0; i < path.size (); i++)
+ {
+ SCM ops = (i == path.size () -1) ? operations : SCM_EOL;
+
+ current = current->create_context (path[i],
+ "\\new",
+ ops);
+ }
+
+ return current;
+ }
+
+ /*
+ Don't go up to Global_context, because global goes down to
+ Score_context
+ */
+ Context *ret = 0;
+ if (daddy_context_ && !dynamic_cast<Global_context *> (daddy_context_))
+ ret = daddy_context_->create_unique_context (n, operations);
+ else
+ {
+ warning (_f ("can't find or create new `%s'",
+ ly_symbol2string (n).to_str0 ()));
+ ret = 0;
+ }
+ return ret;
+}