const char * grn_plugin_path(grn_ctx *ctx, grn_id id) { const char *path; uint32_t key_size; const char *system_plugins_dir; size_t system_plugins_dir_size; CRITICAL_SECTION_ENTER(grn_plugins_lock); path = _grn_hash_key(&grn_gctx, grn_plugins, id, &key_size); CRITICAL_SECTION_LEAVE(grn_plugins_lock); if (!path) { return NULL; } system_plugins_dir = grn_plugin_get_system_plugins_dir(); system_plugins_dir_size = strlen(system_plugins_dir); if (strncmp(system_plugins_dir, path, system_plugins_dir_size) == 0) { const char *plugin_name = path + system_plugins_dir_size; while (plugin_name[0] == '/') { plugin_name++; } /* TODO: remove suffix too? */ return plugin_name; } else { return path; } }
const char * grn_plugin_path(grn_ctx *ctx, grn_id id) { uint32_t key_size; return _grn_hash_key(ctx, grn_plugins, id, &key_size); }