From d43826fb9e4f50b20de90fead3bfc7c3e72b8a93 Mon Sep 17 00:00:00 2001 From: Yann Dirson Date: Tue, 17 Dec 2013 21:47:28 +0100 Subject: [PATCH] Stop hardcoding filenames inside pat2inc, use commandline parameters. --- gnushogi/Makefile.in | 5 ++--- gnushogi/makepattern.c | 7 +++---- gnushogi/pat2inc.c | 15 +++++++++++---- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/gnushogi/Makefile.in b/gnushogi/Makefile.in index f0c8684..3d5de97 100644 --- a/gnushogi/Makefile.in +++ b/gnushogi/Makefile.in @@ -94,7 +94,6 @@ BINBOOK = -DBINBOOK=\"$(LIBDIR)/$(PROGNAME).bbk\" # patterns may be described in order to support the correct order of moves. PATTERNFILE=$(ROOT)/misc/$(PROGNAME).pat -PATTERN = -DPATTERNFILE=\"$(PATTERNFILE)\" all: @@ -186,7 +185,7 @@ main.o: main.c # pattern textfile must be used. makepattern.o: makepattern.c - $(CC) $(CFLAGS) $(PATTERN) -c $< + $(CC) $(CFLAGS) -c $< pattern.o: pattern.c $(CC) $(CFLAGS) -c $< @@ -216,7 +215,7 @@ sizetest.o: sizetest.c $(CC) $(CFLAGS) -c $< pattern.inc: $(PATTERNFILE) pat2inc - ./pat2inc + ./pat2inc $< $@ # # Other targets. diff --git a/gnushogi/makepattern.c b/gnushogi/makepattern.c index 947c4bc..e24cfcd 100644 --- a/gnushogi/makepattern.c +++ b/gnushogi/makepattern.c @@ -36,7 +36,6 @@ #define MAX_OPENING_SEQUENCE 20 #define MAX_PATTERN 200 -static char *patternfile = PATTERNFILE; small_short pattern_data[MAX_PATTERN_DATA]; /* minimal ShowMessage to avoid dependency on extraneous display code */ @@ -191,7 +190,7 @@ ScanPattern (char *s, short *pindex) void -ReadOpeningSequences (short *pindex) +ReadOpeningSequences (short *pindex, const char* patternfile) { FILE *fd; char s[256]; @@ -250,14 +249,14 @@ ReadOpeningSequences (short *pindex) void -WriteOpeningSequences (short pindex) +WriteOpeningSequences (short pindex, const char* patternincfile) { FILE *fd; short n = 0; short max_pattern = 0; short max_opening_sequence = 0; - fd = fopen ("pattern.inc", "w"); + fd = fopen (patternincfile, "w"); fprintf(fd, "#define MAX_PATTERN_DATA %d\n\n", pindex); fprintf(fd, "small_short pattern_data[MAX_PATTERN_DATA] =\n{\n"); diff --git a/gnushogi/pat2inc.c b/gnushogi/pat2inc.c index 0d464cf..24147fb 100644 --- a/gnushogi/pat2inc.c +++ b/gnushogi/pat2inc.c @@ -35,8 +35,8 @@ #include "pattern.h" -extern void ReadOpeningSequences(short *pindex); -extern void WriteOpeningSequences(short pindex); +extern void ReadOpeningSequences(short *pindex, const char* patternfile); +extern void WriteOpeningSequences(short pindex, const char* patternincfile); small_short board[NO_SQUARES]; small_short color[NO_SQUARES]; @@ -46,6 +46,13 @@ main(int argc, char **argv) { short sq, side, max_pattern_data; + if (argc != 3) { + fprintf(stderr, "Usage: %s gnushogi.pat pattern.inc\n", argv[0]); + exit(1); + } + char* patternfile = argv[1]; + char* patternincfile = argv[2]; + #ifdef TEST_DISTANCE short d; char s[80]; @@ -83,8 +90,8 @@ main(int argc, char **argv) #endif - ReadOpeningSequences(&max_pattern_data); - WriteOpeningSequences(max_pattern_data); + ReadOpeningSequences(&max_pattern_data, patternfile); + WriteOpeningSequences(max_pattern_data, patternincfile); return 0; } -- 1.7.0.4