diff options
Diffstat (limited to 'src/solvers/coord/common.h')
| -rw-r--r-- | src/solvers/coord/common.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/solvers/coord/common.h b/src/solvers/coord/common.h index d570b6d..8553658 100644 --- a/src/solvers/coord/common.h +++ b/src/solvers/coord/common.h | |||
| @@ -4,9 +4,9 @@ coord_t *all_coordinates[] = { | |||
| 4 | }; | 4 | }; |
| 5 | 5 | ||
| 6 | STATIC void append_coord_name(const coord_t *, char *); | 6 | STATIC void append_coord_name(const coord_t *, char *); |
| 7 | STATIC coord_t *parse_coord(const char *, int); | 7 | STATIC coord_t *parse_coord(size_t n, const char [n]); |
| 8 | STATIC uint8_t parse_axis(const char *, int); | 8 | STATIC uint8_t parse_axis(size_t n, const char [n]); |
| 9 | STATIC void parse_coord_and_axis(const char *, int, coord_t **, uint8_t *); | 9 | STATIC void parse_coord_and_axis(size_t n, const char [n], coord_t **, uint8_t *); |
| 10 | STATIC int64_t dataid_coord(const char *, char [static NISSY_DATAID_SIZE]); | 10 | STATIC int64_t dataid_coord(const char *, char [static NISSY_DATAID_SIZE]); |
| 11 | 11 | ||
| 12 | STATIC void | 12 | STATIC void |
| @@ -22,7 +22,7 @@ append_coord_name(const coord_t *coord, char *str) | |||
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | STATIC coord_t * | 24 | STATIC coord_t * |
| 25 | parse_coord(const char *coord, int n) | 25 | parse_coord(size_t n, const char coord[n]) |
| 26 | { | 26 | { |
| 27 | int i; | 27 | int i; |
| 28 | 28 | ||
| @@ -34,7 +34,7 @@ parse_coord(const char *coord, int n) | |||
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | STATIC uint8_t | 36 | STATIC uint8_t |
| 37 | parse_axis(const char *axis, int n) | 37 | parse_axis(size_t n, const char axis[n]) |
| 38 | { | 38 | { |
| 39 | if (!strncmp(axis, "UD", n) || !strncmp(axis, "DU", n)) { | 39 | if (!strncmp(axis, "UD", n) || !strncmp(axis, "DU", n)) { |
| 40 | return AXIS_UD; | 40 | return AXIS_UD; |
| @@ -48,19 +48,24 @@ parse_axis(const char *axis, int n) | |||
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | STATIC void | 50 | STATIC void |
| 51 | parse_coord_and_axis(const char *str, int n, coord_t **coord, uint8_t *axis) | 51 | parse_coord_and_axis( |
| 52 | size_t n, | ||
| 53 | const char str[n], | ||
| 54 | coord_t **coord, | ||
| 55 | uint8_t *axis | ||
| 56 | ) | ||
| 52 | { | 57 | { |
| 53 | int i; | 58 | size_t i; |
| 54 | 59 | ||
| 55 | for (i = 0; i < n; i++) | 60 | for (i = 0; i < n; i++) |
| 56 | if (str[i] == '_') | 61 | if (str[i] == '_') |
| 57 | break; | 62 | break; |
| 58 | 63 | ||
| 59 | if (coord != NULL) | 64 | if (coord != NULL) |
| 60 | *coord = parse_coord(str, i); | 65 | *coord = parse_coord(i, str); |
| 61 | 66 | ||
| 62 | if (axis != NULL) | 67 | if (axis != NULL) |
| 63 | *axis = i == n ? UINT8_ERROR : parse_axis(str+i+1, n-i-1); | 68 | *axis = i == n ? UINT8_ERROR : parse_axis(n-i-1, str+i+1); |
| 64 | } | 69 | } |
| 65 | 70 | ||
| 66 | STATIC int64_t | 71 | STATIC int64_t |
| @@ -68,7 +73,7 @@ dataid_coord(const char *ca, char dataid[static NISSY_DATAID_SIZE]) | |||
| 68 | { | 73 | { |
| 69 | coord_t *c; | 74 | coord_t *c; |
| 70 | 75 | ||
| 71 | parse_coord_and_axis(ca, strlen(ca), &c, NULL); | 76 | parse_coord_and_axis(strlen(ca), ca, &c, NULL); |
| 72 | 77 | ||
| 73 | if (c == NULL) { | 78 | if (c == NULL) { |
| 74 | LOG("dataid_coord: cannot parse coordinate from '%s'\n", ca); | 79 | LOG("dataid_coord: cannot parse coordinate from '%s'\n", ca); |
