]> Nishi Git Mirror - gwion.git/commitdiff
:art: Internally rename template plugins
authorJérémie Astor <fennecdjay@gmail.com>
Sat, 30 Jan 2021 18:31:28 +0000 (19:31 +0100)
committerJérémie Astor <fennecdjay@gmail.com>
Sat, 30 Jan 2021 18:31:28 +0000 (19:31 +0100)
src/plug.c

index ca4619004fb17d6146c3c69209548a21fca28827..2d811c92355e51353b7ca56e810b9ab7ccab3fca 100644 (file)
@@ -155,8 +155,15 @@ ANN m_bool plugin_ini(struct Gwion_ *gwion, const m_str iname) {
   const Map map = &gwion->data->plug;
   for(m_uint i = 0; i < map_size(map); ++i) {
     const Plug plug = (Plug)VVAL(map, i);
-    const m_str name = (m_str)VKEY(map, i);
-    if(!strcmp(name, iname)) {
+    const m_str base = (m_str)VKEY(map, i);
+    const size_t size = strlen(iname);
+    char name[size + 1];
+    strcpy(name, iname);
+    for(size_t i = 0; i < size; i++) {
+      if(name[i] == ':' || name[i] == '[' || name[i] == ']')
+       name[i] = '_';
+    }
+    if(!strcmp(name, base)) {
       if(plug->imp)
         return GW_OK;
       const plugin imp = DLSYM(plug->dl, plugin, GWIMPORT_NAME);