Kouhei Sutou
null+****@clear*****
Tue Dec 23 00:19:53 JST 2014
Kouhei Sutou 2014-12-23 00:19:53 +0900 (Tue, 23 Dec 2014) New Revision: ec352e38f536562fd8eaae0cd514a5f9b3770574 https://github.com/groonga/groonga/commit/ec352e38f536562fd8eaae0cd514a5f9b3770574 Message: mrb: export system Ruby scripts directory Modified files: lib/grn_mrb.h lib/mrb.c Modified: lib/grn_mrb.h (+2 -1) =================================================================== --- lib/grn_mrb.h 2014-12-22 23:59:10 +0900 (b12fd6b) +++ lib/grn_mrb.h 2014-12-23 00:19:53 +0900 (7fae820) @@ -1,6 +1,6 @@ /* -*- c-basic-offset: 2 -*- */ /* - Copyright(C) 2013 Brazil + Copyright(C) 2013-2014 Brazil This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -34,6 +34,7 @@ extern "C" { GRN_API mrb_value grn_mrb_eval(grn_ctx *ctx, const char *script, int script_length); GRN_API mrb_value grn_mrb_load(grn_ctx *ctx, const char *path); GRN_API grn_rc grn_mrb_to_grn(grn_ctx *ctx, mrb_value mrb_object, grn_obj *grn_object); +GRN_API const char *grn_mrb_get_system_ruby_scripts_dir(grn_ctx *ctx); #endif #ifdef __cplusplus Modified: lib/mrb.c (+16 -6) =================================================================== --- lib/mrb.c 2014-12-22 23:59:10 +0900 (abd5854) +++ lib/mrb.c 2014-12-23 00:19:53 +0900 (c781564) @@ -34,7 +34,7 @@ static char *win32_ruby_scripts_dir = NULL; static char win32_ruby_scripts_dir_buffer[PATH_MAX]; static const char * -grn_mrb_get_system_ruby_scripts_dir(void) +grn_mrb_get_default_system_ruby_scripts_dir(void) { if (!win32_ruby_scripts_dir) { const char *base_dir; @@ -53,12 +53,25 @@ grn_mrb_get_system_ruby_scripts_dir(void) # else /* WIN32 */ static const char * -grn_mrb_get_system_ruby_scripts_dir(void) +grn_mrb_get_default_system_ruby_scripts_dir(void) { return GRN_RUBY_SCRIPTS_DIR; } # endif /* WIN32 */ +const char * +grn_mrb_get_system_ruby_scripts_dir(grn_ctx *ctx) +{ + const char *ruby_scripts_dir; + + ruby_scripts_dir = getenv("GRN_RUBY_SCRIPTS_DIR"); + if (!ruby_scripts_dir) { + ruby_scripts_dir = grn_mrb_get_default_system_ruby_scripts_dir(); + } + + return ruby_scripts_dir; +} + static grn_bool grn_mrb_expand_script_path(grn_ctx *ctx, const char *path, char *expanded_path) { @@ -72,10 +85,7 @@ grn_mrb_expand_script_path(grn_ctx *ctx, const char *path, char *expanded_path) strcpy(expanded_path, ctx->impl->mrb.base_directory); strcat(expanded_path, "/"); } else { - ruby_scripts_dir = getenv("GRN_RUBY_SCRIPTS_DIR"); - if (!ruby_scripts_dir) { - ruby_scripts_dir = grn_mrb_get_system_ruby_scripts_dir(); - } + ruby_scripts_dir = grn_mrb_get_system_ruby_scripts_dir(ctx); strcpy(expanded_path, ruby_scripts_dir); dir_last_char = ruby_scripts_dir[strlen(expanded_path) - 1]; -------------- next part -------------- HTML����������������������������... Download