Kouhei Sutou
null+****@clear*****
Sun Jul 26 18:24:03 JST 2015
Kouhei Sutou 2015-07-26 18:24:03 +0900 (Sun, 26 Jul 2015) New Revision: bd26552b5e77eaf22c9cc8b0c27a0eb5e1dd0d1e https://github.com/groonga/groonga/commit/bd26552b5e77eaf22c9cc8b0c27a0eb5e1dd0d1e Message: windows: extract Windows error code to grn_rc convert code Modified files: lib/error.c lib/grn_ctx.h lib/grn_error.h Modified: lib/error.c (+95 -0) =================================================================== --- lib/error.c 2015-07-26 17:48:01 +0900 (f4bd87d) +++ lib/error.c 2015-07-26 18:24:03 +0900 (d3ae7ac) @@ -25,6 +25,101 @@ #ifdef WIN32 +grn_rc +grn_windows_error_code_to_rc(int error_code) +{ + grn_rc rc; + + switch (error_code) { + case ERROR_FILE_NOT_FOUND : + case ERROR_PATH_NOT_FOUND : + rc = GRN_NO_SUCH_FILE_OR_DIRECTORY; + break; + case ERROR_TOO_MANY_OPEN_FILES : + rc = GRN_TOO_MANY_OPEN_FILES; + break; + case ERROR_ACCESS_DENIED : + rc = GRN_PERMISSION_DENIED; + break; + case ERROR_INVALID_HANDLE : + rc = GRN_INVALID_ARGUMENT; + break; + case ERROR_ARENA_TRASHED : + rc = GRN_ADDRESS_IS_NOT_AVAILABLE; + break; + case ERROR_NOT_ENOUGH_MEMORY : + rc = GRN_NO_MEMORY_AVAILABLE; + break; + case ERROR_INVALID_BLOCK : + case ERROR_BAD_ENVIRONMENT : + rc = GRN_INVALID_ARGUMENT; + break; + case ERROR_BAD_FORMAT : + rc = GRN_INVALID_FORMAT; + break; + case ERROR_INVALID_DATA : + rc = GRN_INVALID_ARGUMENT; + break; + case ERROR_OUTOFMEMORY : + rc = GRN_NO_MEMORY_AVAILABLE; + break; + case ERROR_INVALID_DRIVE : + rc = GRN_INVALID_ARGUMENT; + break; + case ERROR_WRITE_PROTECT : + rc = GRN_PERMISSION_DENIED; + break; + case ERROR_BAD_LENGTH : + rc = GRN_INVALID_ARGUMENT; + break; + case ERROR_SEEK : + rc = GRN_INVALID_SEEK; + break; + case ERROR_NOT_SUPPORTED : + rc = GRN_OPERATION_NOT_SUPPORTED; + break; + case ERROR_NETWORK_ACCESS_DENIED : + rc = GRN_OPERATION_NOT_PERMITTED; + break; + case ERROR_FILE_EXISTS : + rc = GRN_FILE_EXISTS; + break; + case ERROR_INVALID_PARAMETER : + rc = GRN_INVALID_ARGUMENT; + break; + case ERROR_BROKEN_PIPE : + rc = GRN_BROKEN_PIPE; + break; + case ERROR_CALL_NOT_IMPLEMENTED : + rc = GRN_FUNCTION_NOT_IMPLEMENTED; + break; + case ERROR_INVALID_NAME : + rc = GRN_INVALID_ARGUMENT; + break; + case ERROR_BUSY_DRIVE : + case ERROR_PATH_BUSY : + rc = GRN_RESOURCE_BUSY; + break; + case ERROR_BAD_ARGUMENTS : + rc = GRN_INVALID_ARGUMENT; + break; + case ERROR_BUSY : + rc = GRN_RESOURCE_BUSY; + break; + case ERROR_ALREADY_EXISTS : + rc = GRN_FILE_EXISTS; + break; + case ERROR_BAD_EXE_FORMAT : + rc = GRN_EXEC_FORMAT_ERROR; + break; + default: + rc = GRN_UNKNOWN_ERROR; + break; + } + + return rc; +} + # define LANG_ID_NEUTRAL() MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL) # define LANG_ID_USER_DEFAULT() MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT) # define LANG_ID_SYSTEM_DEFAULT() MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT) Modified: lib/grn_ctx.h (+3 -88) =================================================================== --- lib/grn_ctx.h 2015-07-26 17:48:01 +0900 (22316cc) +++ lib/grn_ctx.h 2015-07-26 18:24:03 +0900 (7c4867b) @@ -156,95 +156,10 @@ GRN_API void grn_ctx_impl_set_current_error_message(grn_ctx *ctx); #define SERR(str) do {\ grn_rc rc;\ const char *system_message;\ - int error = GetLastError();\ + int error_code = GetLastError();\ system_message = grn_current_error_message();\ - switch (error) {\ - case ERROR_FILE_NOT_FOUND :\ - case ERROR_PATH_NOT_FOUND :\ - rc = GRN_NO_SUCH_FILE_OR_DIRECTORY;\ - break;\ - case ERROR_TOO_MANY_OPEN_FILES :\ - rc = GRN_TOO_MANY_OPEN_FILES;\ - break;\ - case ERROR_ACCESS_DENIED :\ - rc = GRN_PERMISSION_DENIED;\ - break;\ - case ERROR_INVALID_HANDLE :\ - rc = GRN_INVALID_ARGUMENT;\ - break;\ - case ERROR_ARENA_TRASHED :\ - rc = GRN_ADDRESS_IS_NOT_AVAILABLE;\ - break;\ - case ERROR_NOT_ENOUGH_MEMORY :\ - rc = GRN_NO_MEMORY_AVAILABLE;\ - break;\ - case ERROR_INVALID_BLOCK :\ - case ERROR_BAD_ENVIRONMENT :\ - rc = GRN_INVALID_ARGUMENT;\ - break;\ - case ERROR_BAD_FORMAT :\ - rc = GRN_INVALID_FORMAT;\ - break;\ - case ERROR_INVALID_DATA :\ - rc = GRN_INVALID_ARGUMENT;\ - break;\ - case ERROR_OUTOFMEMORY :\ - rc = GRN_NO_MEMORY_AVAILABLE;\ - break;\ - case ERROR_INVALID_DRIVE :\ - rc = GRN_INVALID_ARGUMENT;\ - break;\ - case ERROR_WRITE_PROTECT :\ - rc = GRN_PERMISSION_DENIED;\ - break;\ - case ERROR_BAD_LENGTH :\ - rc = GRN_INVALID_ARGUMENT;\ - break;\ - case ERROR_SEEK :\ - rc = GRN_INVALID_SEEK;\ - break;\ - case ERROR_NOT_SUPPORTED :\ - rc = GRN_OPERATION_NOT_SUPPORTED;\ - break;\ - case ERROR_NETWORK_ACCESS_DENIED :\ - rc = GRN_OPERATION_NOT_PERMITTED;\ - break;\ - case ERROR_FILE_EXISTS :\ - rc = GRN_FILE_EXISTS;\ - break;\ - case ERROR_INVALID_PARAMETER :\ - rc = GRN_INVALID_ARGUMENT;\ - break;\ - case ERROR_BROKEN_PIPE :\ - rc = GRN_BROKEN_PIPE;\ - break;\ - case ERROR_CALL_NOT_IMPLEMENTED :\ - rc = GRN_FUNCTION_NOT_IMPLEMENTED;\ - break;\ - case ERROR_INVALID_NAME :\ - rc = GRN_INVALID_ARGUMENT;\ - break;\ - case ERROR_BUSY_DRIVE :\ - case ERROR_PATH_BUSY :\ - rc = GRN_RESOURCE_BUSY;\ - break;\ - case ERROR_BAD_ARGUMENTS :\ - rc = GRN_INVALID_ARGUMENT;\ - break;\ - case ERROR_BUSY :\ - rc = GRN_RESOURCE_BUSY;\ - break;\ - case ERROR_ALREADY_EXISTS :\ - rc = GRN_FILE_EXISTS;\ - break;\ - case ERROR_BAD_EXE_FORMAT :\ - rc = GRN_EXEC_FORMAT_ERROR;\ - break;\ - default:\ - rc = GRN_UNKNOWN_ERROR;\ - break;\ - }\ - ERR(rc, "syscall error '%s' (%s)[%d]", str, system_message, error);\ + rc = grn_windows_error_code_to_rc(error_code);\ + ERR(rc, "syscall error '%s' (%s)[%d]", str, system_message, error_code);\ } while (0) #define SOERR(str) do {\ Modified: lib/grn_error.h (+2 -0) =================================================================== --- lib/grn_error.h 2015-07-26 17:48:01 +0900 (a0b18ca) +++ lib/grn_error.h 2015-07-26 18:24:03 +0900 (65a059d) @@ -29,6 +29,8 @@ extern "C" { GRN_API const char *grn_current_error_message(void); GRN_API const char *grn_strerror(int error_code); +GRN_API grn_rc grn_windows_error_code_to_rc(int error_code); + #ifdef __cplusplus } #endif -------------- next part -------------- HTML����������������������������... ダウンロード