From 8a91354f7b94c669c77fe628a81f9bfe9f599ef0 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 14 Oct 2024 00:05:43 +0200 Subject: Interface changes, progress with python --- src/core/io_moves.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/core/io_moves.h') diff --git a/src/core/io_moves.h b/src/core/io_moves.h index be43568..806887b 100644 --- a/src/core/io_moves.h +++ b/src/core/io_moves.h @@ -43,6 +43,7 @@ writemoves(uint8_t *m, int n, uint64_t buf_size, char *buf) { int i; uint64_t len; + int64_t written; const char *s; char *b; @@ -51,16 +52,16 @@ writemoves(uint8_t *m, int n, uint64_t buf_size, char *buf) return NISSY_ERROR_BUFFER_SIZE; } - for (i = 0, b = buf; i < n; i++, b++, buf_size--) { + for (i = 0, b = buf, written = 0; i < n; i++, b++, written++) { s = movestr[m[i]]; len = strlen(s); - if (len >= buf_size) { + if (len + written >= buf_size) { LOG("Error: the given buffer is too small for " "writing the given moves.\n"); goto writemoves_error; } memcpy(b, s, len); - buf_size -= len; + written += len; b += len; *b = ' '; } @@ -69,7 +70,7 @@ writemoves(uint8_t *m, int n, uint64_t buf_size, char *buf) b--; /* Remove last space */ *b = '\0'; - return buf_size; + return written; writemoves_error: *buf = '\0'; -- cgit v1.3