Module Name:    src
Committed By:   rillig
Date:           Sun May 22 08:28:11 UTC 2022

Modified Files:
        src/games/gomoku: main.c

Log Message:
gomoku: extract read_move from main

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/games/gomoku/main.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/games/gomoku/main.c
diff -u src/games/gomoku/main.c:1.52 src/games/gomoku/main.c:1.53
--- src/games/gomoku/main.c:1.52	Sun May 22 08:22:43 2022
+++ src/games/gomoku/main.c	Sun May 22 08:28:10 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.52 2022/05/22 08:22:43 rillig Exp $	*/
+/*	$NetBSD: main.c,v 1.53 2022/05/22 08:28:10 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994
@@ -36,7 +36,7 @@
 __COPYRIGHT("@(#) Copyright (c) 1994\
  The Regents of the University of California.  All rights reserved.");
 /*	@(#)main.c	8.4 (Berkeley) 5/4/95	*/
-__RCSID("$NetBSD: main.c,v 1.52 2022/05/22 08:22:43 rillig Exp $");
+__RCSID("$NetBSD: main.c,v 1.53 2022/05/22 08:28:10 rillig Exp $");
 
 #include <sys/stat.h>
 #include <curses.h>
@@ -176,6 +176,32 @@ set_input_sources(enum input_source *inp
 	}
 }
 
+static int
+read_move(void)
+{
+again:
+	if (interactive) {
+		ask("Select move, (S)ave or (Q)uit.");
+		int s = get_coord();
+		if (s == SAVE) {
+			save_game();
+			goto again;
+		}
+		if (s != RESIGN && board[s].s_occ != EMPTY) {
+			beep();
+			goto again;
+		}
+		return s;
+	} else {
+		char buf[128];
+		if (!get_line(buf, sizeof(buf), NULL))
+			return RESIGN;
+		if (buf[0] == '\0')
+			goto again;
+		return ctos(buf);
+	}
+}
+
 int
 main(int argc, char **argv)
 {
@@ -276,29 +302,7 @@ again:
 			goto top;
 
 		case USER: /* input comes from standard input */
-		getinput:
-			if (interactive) {
-				ask("Select move, (S)ave or (Q)uit.");
-				curmove = get_coord();
-				if (curmove == SAVE) {
-					save_game();
-					goto getinput;
-				}
-				if (curmove != RESIGN &&
-				    board[curmove].s_occ != EMPTY) {
-					/*misclog("Illegal move");*/
-					beep();
-					goto getinput;
-				}
-			} else {
-				if (!get_line(buf, sizeof(buf), NULL)) {
-					curmove = RESIGN;
-					break;
-				}
-				if (buf[0] == '\0')
-					goto getinput;
-				curmove = ctos(buf);
-			}
+			curmove = read_move();
 			break;
 
 		case PROGRAM: /* input comes from the program */

Reply via email to