[Groonga-commit] groonga/groonga [master] groonga: convert grn_rc to exit code

Back to archive index

null+****@clear***** null+****@clear*****
2012年 4月 3日 (火) 13:53:46 JST


Kouhei Sutou	2012-04-03 13:53:46 +0900 (Tue, 03 Apr 2012)

  New Revision: cb760461ff22b1b4e87a626485e96eb59f90dc43

  Log:
    groonga: convert grn_rc to exit code

  Modified files:
    src/groonga.c

  Modified: src/groonga.c (+19 -5)
===================================================================
--- src/groonga.c    2012-04-03 13:48:33 +0900 (a2a9b8c)
+++ src/groonga.c    2012-04-03 13:53:46 +0900 (d24b3b0)
@@ -78,6 +78,16 @@ static int64_t default_match_escalation_threshold;
 static int log_level;
 static uint32_t cache_limit;
 
+static int
+grn_rc_to_exit_code(grn_rc rc)
+{
+  if (rc == GRN_SUCCESS) {
+    return EXIT_SUCCESS;
+  } else {
+    return EXIT_FAILURE;
+  }
+}
+
 #ifdef HAVE_LIBEDIT
 #include <locale.h>
 #include <histedit.h>
@@ -724,10 +734,12 @@ do_alone(int argc, char **argv)
         grn_ctx_send(ctx, GRN_TEXT_VALUE(&text), GRN_TEXT_LEN(&text), 0);
         if (ctx->stat == GRN_CTX_QUIT) { break; }
       }
-      exit_code = ctx->rc;
+      exit_code = grn_rc_to_exit_code(ctx->rc);
       grn_obj_unlink(ctx, &text);
     } else {
-      exit_code = grn_ctx_sendv(ctx, argc, argv, 0);
+      grn_rc rc;
+      rc = grn_ctx_sendv(ctx, argc, argv, 0);
+      exit_code = grn_rc_to_exit_code(rc);
     }
     grn_obj_unlink(ctx, &command);
     grn_obj_close(ctx, db);
@@ -786,14 +798,16 @@ g_client(int argc, char **argv)
       GRN_TEXT_INIT(&text, 0);
       while (prompt(ctx, &text) != GRN_END_OF_DATA) {
         grn_ctx_send(ctx, GRN_TEXT_VALUE(&text), GRN_TEXT_LEN(&text), 0);
-        exit_code = ctx->rc;
-        if (exit_code) { break; }
+        exit_code = grn_rc_to_exit_code(ctx->rc);
+        if (ctx->rc != GRN_SUCCESS) { break; }
         if (c_output(ctx)) { goto exit; }
         if (ctx->stat == GRN_CTX_QUIT) { break; }
       }
       grn_obj_unlink(ctx, &text);
     } else {
-      exit_code = grn_ctx_sendv(ctx, argc, argv, 0);
+      grn_rc rc;
+      rc = grn_ctx_sendv(ctx, argc, argv, 0);
+      exit_code = grn_rc_to_exit_code(rc);
       if (c_output(ctx)) { goto exit; }
     }
   } else {




Groonga-commit メーリングリストの案内
Back to archive index