[Groonga-commit] groonga/groonga at bd26552 [master] windows: extract Windows error code to grn_rc convert code

Back to archive index

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����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index