]> Nishi Git Mirror - gwion.git/commitdiff
Revert ":art: Allow per nspc operator"
authorJérémie Astor <astor.jeremie@wanadoo.fr>
Sat, 9 May 2020 20:27:10 +0000 (22:27 +0200)
committerJérémie Astor <astor.jeremie@wanadoo.fr>
Sat, 9 May 2020 20:27:10 +0000 (22:27 +0200)
This reverts commit 97efe195d7dfe4d011707e25d3896aaa72e1e44c.

src/parse/operator.c

index 49c2eba0ad022965030ada52dcda3904a0eb9e9c..15c2bdd79b17b52d047bc891711b8209680ac988 100644 (file)
@@ -128,12 +128,14 @@ ANN static m_bool op_exist(const struct OpChecker* ock, const Nspc n) {
 }
 
 ANN m_bool add_op(const Gwion gwion, const struct Op_Import* opi) {
-  const Nspc nspc = gwion->env->curr;
+  Nspc n = gwion->env->curr;
+  do {
+    struct OpChecker ock = { gwion->env, &n->info->op_map, opi, 0 };
+    CHECK_BB(op_exist(&ock, n))
+  } while((n = n->parent));
+  if(!gwion->env->curr->info->op_map.ptr)
+    map_init(&gwion->env->curr->info->op_map);
   struct OpChecker ock = { gwion->env, &gwion->env->curr->info->op_map, opi, 0 };
-  if(!nspc->info->op_map.ptr)
-    map_init(&nspc->info->op_map);
-  else
-    CHECK_BB(op_exist(&ock, nspc))
   const Vector v = op_vector(gwion->mp, &ock);
   const M_Operator* mo = new_mo(gwion->mp, opi);
   vector_add(v, (vtype)mo);