]> git.cworth.org Git - grrobot/commitdiff
Add --watch option
authorKeith Packard <keithp@keithp.com>
Sat, 5 Jul 2003 05:41:10 +0000 (05:41 +0000)
committerKeith Packard <keithp@keithp.com>
Sat, 5 Jul 2003 05:41:10 +0000 (05:41 +0000)
src/args.c
src/args.h
src/grrobot.c

index 98aa80cb2feccd95ae3ffc1ed944fd34045ff214..aee5e940531a66a4ca54753aed555a419c779b12 100644 (file)
@@ -44,6 +44,7 @@ static struct argp_option options[] = {
     {"port",           'p', "PORT", 0, "Port of server"},
     {"user",           'u', "USERNAME", 0, "Username for conection"},
     {"game",           'g', "GAME", 0, "Game to join"},
+    {"watch",          'w', 0, 0,      "Watch instad of join"},
     { 0 }
 };
 
@@ -65,6 +66,9 @@ parse_opt (int key, char *arg, struct argp_state *state)
     case 'g':
        args->game = arg;
        break;
+    case 'w':
+       args->watch = 1;
+       break;
 
     case ARGP_KEY_ARG:
        argp_usage (state);
@@ -101,6 +105,7 @@ args_parse(args_t *args, int argc, char *argv[])
     args->game = getenv ("RR_GAME");
     if (args->game == NULL)
        args->game = ARGS_GAME_DEFAULT;
+    args->watch = 0;
 
     return argp_parse (&argp, argc, argv, 0, 0, args);
 }
index 7799c48baf5015ae13b73318fe71dcb343937a0d..423411a7826ed66f629bbc3c1bee63754bd0b81d 100644 (file)
@@ -44,6 +44,7 @@ typedef struct args
     char *port;
     char *user;
     char *game;
+    int watch;
 } args_t;
 
 error_t
index 903a164c47e3d63059c83f23f2397ef61da77acd..209c599d9fc1db6a3f5a31fd10ca996d985cbff1 100644 (file)
@@ -92,9 +92,16 @@ main (int argc, char **argv)
        return 1;
     }
 
-    status = rr_client_join (game.client, args.game);
-    if (status == RR_STATUS_NO_GAME) {
-       status = rr_client_new (game.client, args.game);
+    if (args.watch) {
+       status = rr_client_watch (game.client, args.game);
+       if (status == RR_STATUS_NO_GAME) {
+           fprintf (stderr, "No game %s to watch\n", args.game);
+       }
+    } else {
+       status = rr_client_join (game.client, args.game);
+       if (status == RR_STATUS_NO_GAME) {
+           status = rr_client_new (game.client, args.game);
+       }
     }
 
     game.board = rr_board_create (16, 16);