Kouhei Sutou
null+****@clear*****
Thu Jan 22 20:24:45 JST 2015
Kouhei Sutou 2015-01-22 20:24:45 +0900 (Thu, 22 Jan 2015) New Revision: a62b9547ccaca105056ac6be316b3be30b5ffe80 https://github.com/groonga/groonga/commit/a62b9547ccaca105056ac6be316b3be30b5ffe80 Message: mecab: add workaround for mecab_strerror(NULL) on MeCab 0.993 Reported by Shuhei Tanuma. Thanks!!! Modified files: plugins/tokenizers/mecab.c Modified: plugins/tokenizers/mecab.c (+19 -3) =================================================================== --- plugins/tokenizers/mecab.c 2015-01-22 11:06:53 +0900 (0edd9ac) +++ plugins/tokenizers/mecab.c 2015-01-22 20:24:45 +0900 (49e4b5c) @@ -1,5 +1,5 @@ /* -*- c-basic-offset: 2 -*- */ -/* Copyright(C) 2009-2012 Brazil +/* Copyright(C) 2009-2015 Brazil This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -22,6 +22,7 @@ #include <mecab.h> +#include <stdlib.h> #include <string.h> #include <ctype.h> @@ -38,6 +39,21 @@ typedef struct { grn_tokenizer_token token; } grn_mecab_tokenizer; +static const char * +mecab_global_error_message(void) +{ + double version; + + version = atof(mecab_version()); + /* MeCab <= 0.993 doesn't support mecab_strerror(NULL). */ + if (version <= 0.993) { + return "Unknown"; + } + + return mecab_strerror(NULL); +} + + static grn_encoding translate_mecab_charset_to_grn_encoding(const char *charset) { @@ -96,7 +112,7 @@ mecab_init(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data) GRN_PLUGIN_ERROR(ctx, GRN_TOKENIZER_ERROR, "[tokenizer][mecab] " "mecab_new2() failed on mecab_init(): %s", - mecab_strerror(NULL)); + mecab_global_error_message()); } else { sole_mecab_encoding = get_mecab_encoding(sole_mecab); } @@ -273,7 +289,7 @@ check_mecab_dictionary_encoding(grn_ctx *ctx) GRN_PLUGIN_ERROR(ctx, GRN_TOKENIZER_ERROR, "[tokenizer][mecab] " "mecab_new2 failed in check_mecab_dictionary_encoding: %s", - mecab_strerror(NULL)); + mecab_global_error_message()); } #endif } -------------- next part -------------- HTML����������������������������...Download