Пример #1
0
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;
    }
}
Пример #2
0
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);
}