From 1e1fd628207034b0412c50e289f146d34c5baf71 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Fri, 14 Mar 2025 16:18:29 +0100 Subject: Replaced datasize with solverinfo --- src/solvers/coord/common.h | 18 ++++++++++++++++++ src/solvers/coord/types_macros.h | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src/solvers') diff --git a/src/solvers/coord/common.h b/src/solvers/coord/common.h index f21a903..d570b6d 100644 --- a/src/solvers/coord/common.h +++ b/src/solvers/coord/common.h @@ -7,6 +7,7 @@ STATIC void append_coord_name(const coord_t *, char *); STATIC coord_t *parse_coord(const char *, int); STATIC uint8_t parse_axis(const char *, int); STATIC void parse_coord_and_axis(const char *, int, coord_t **, uint8_t *); +STATIC int64_t dataid_coord(const char *, char [static NISSY_DATAID_SIZE]); STATIC void append_coord_name(const coord_t *coord, char *str) @@ -61,3 +62,20 @@ parse_coord_and_axis(const char *str, int n, coord_t **coord, uint8_t *axis) if (axis != NULL) *axis = i == n ? UINT8_ERROR : parse_axis(str+i+1, n-i-1); } + +STATIC int64_t +dataid_coord(const char *ca, char dataid[static NISSY_DATAID_SIZE]) +{ + coord_t *c; + + parse_coord_and_axis(ca, strlen(ca), &c, NULL); + + if (c == NULL) { + LOG("dataid_coord: cannot parse coordinate from '%s'\n", ca); + return NISSY_ERROR_INVALID_SOLVER; + } + + strcpy(dataid, c->name); + + return NISSY_OK; +} diff --git a/src/solvers/coord/types_macros.h b/src/solvers/coord/types_macros.h index 594f594..84085ad 100644 --- a/src/solvers/coord/types_macros.h +++ b/src/solvers/coord/types_macros.h @@ -3,7 +3,7 @@ #define COORD_MASK(i) (UINT8_C(0xF) << COORD_SHIFT(i)) typedef struct { - char name[255]; + const char name[255]; uint64_t (*coord)(cube_t, const void *); cube_t (*cube)(uint64_t, const void *); size_t (*gendata)(void *); -- cgit v1.3