aboutsummaryrefslogtreecommitdiff
path: root/shell.c
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-07-03 17:15:24 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-07-03 17:15:24 +0200
commit425eee24421bf0a19c7e0199d2e3ecba3318c8f4 (patch)
treee6e84901c00593da4f165584e19878b3f6d34b60 /shell.c
parent4a16da26dacdb37b9ef8d3d11e10ecb94b0cf396 (diff)
downloadnissy-core-425eee24421bf0a19c7e0199d2e3ecba3318c8f4.tar.gz
nissy-core-425eee24421bf0a19c7e0199d2e3ecba3318c8f4.zip
Preparing for table stats
Diffstat (limited to '')
-rw-r--r--shell.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/shell.c b/shell.c
index 5cd8fb2..03618de 100644
--- a/shell.c
+++ b/shell.c
@@ -29,6 +29,7 @@ typedef struct {
29 int8_t maxmoves; 29 int8_t maxmoves;
30 int8_t optimal; 30 int8_t optimal;
31 int64_t maxsolutions; 31 int64_t maxsolutions;
32 uint8_t id[16];
32} args_t; 33} args_t;
33 34
34static void print_cube_result(int64_t, char [static 22]); 35static void print_cube_result(int64_t, char [static 22]);
@@ -40,6 +41,7 @@ static int64_t applymoves_exec(args_t *);
40static int64_t applytrans_exec(args_t *); 41static int64_t applytrans_exec(args_t *);
41static int64_t frommoves_exec(args_t *); 42static int64_t frommoves_exec(args_t *);
42static int64_t convert_exec(args_t *); 43static int64_t convert_exec(args_t *);
44static int64_t gencube_exec(args_t *);
43static int64_t datasize_exec(args_t *); 45static int64_t datasize_exec(args_t *);
44static int64_t gendata_exec(args_t *); 46static int64_t gendata_exec(args_t *);
45static int64_t solve_exec(args_t *); 47static int64_t solve_exec(args_t *);
@@ -63,6 +65,7 @@ static bool set_minmoves(int, char **, args_t *);
63static bool set_maxmoves(int, char **, args_t *); 65static bool set_maxmoves(int, char **, args_t *);
64static bool set_optimal(int, char **, args_t *); 66static bool set_optimal(int, char **, args_t *);
65static bool set_maxsolutions(int, char **, args_t *); 67static bool set_maxsolutions(int, char **, args_t *);
68static bool set_id(int, char **, args_t *);
66 69
67#define COMMAND(N, E) { .name = N, .exec = E } 70#define COMMAND(N, E) { .name = N, .exec = E }
68struct { 71struct {
@@ -75,6 +78,7 @@ struct {
75 COMMAND("applytrans", applytrans_exec), 78 COMMAND("applytrans", applytrans_exec),
76 COMMAND("frommoves", frommoves_exec), 79 COMMAND("frommoves", frommoves_exec),
77 COMMAND("convert", convert_exec), 80 COMMAND("convert", convert_exec),
81 COMMAND("gencube", gencube_exec),
78 COMMAND("datasize", datasize_exec), 82 COMMAND("datasize", datasize_exec),
79 COMMAND("gendata", gendata_exec), 83 COMMAND("gendata", gendata_exec),
80 COMMAND("solve", solve_exec), 84 COMMAND("solve", solve_exec),
@@ -102,6 +106,7 @@ struct {
102 OPTION("-M", 1, set_maxmoves), 106 OPTION("-M", 1, set_maxmoves),
103 OPTION("-O", 1, set_optimal), 107 OPTION("-O", 1, set_optimal),
104 OPTION("-n", 1, set_maxsolutions), 108 OPTION("-n", 1, set_maxsolutions),
109 OPTION("-id", 16, set_id),
105 OPTION(NULL, 0, NULL) 110 OPTION(NULL, 0, NULL)
106}; 111};
107 112
@@ -215,6 +220,18 @@ convert_exec(args_t *args)
215} 220}
216 221
217static int64_t 222static int64_t
223gencube_exec(args_t *args)
224{
225 char result[PRINTCUBE_BUFFER_SIZE];
226 int64_t ret;
227
228 ret = nissy_gencube(args->id, args->str_options, result);
229 print_str_result(ret, result);
230
231 return ret;
232}
233
234static int64_t
218datasize_exec(args_t *args) 235datasize_exec(args_t *args)
219{ 236{
220 int64_t ret; 237 int64_t ret;
@@ -551,6 +568,21 @@ set_maxsolutions(int argc, char **argv, args_t *args)
551 return parse_int64(argv[0], &args->maxsolutions); 568 return parse_int64(argv[0], &args->maxsolutions);
552} 569}
553 570
571static bool
572set_id(int argc, char **argv, args_t *args)
573{
574 int i;
575 int64_t n;
576
577 for (i = 0; i < 16; i++) {
578 if (!parse_int64(argv[i], &n))
579 return false;
580 args->id[i] = (uint8_t)n;
581 }
582
583 return true;
584}
585
554void log_stderr(const char *str, ...) 586void log_stderr(const char *str, ...)
555{ 587{
556 va_list args; 588 va_list args;

Generated with cgit - Back to sebastiano.tronto.net