From c0cfa1412f01a7c6c76b0c82eef12bb50f299c85 Mon Sep 17 00:00:00 2001 From: stalker57241 Date: Sat, 25 Jul 2026 00:08:18 +0300 Subject: [PATCH 1/8] Added .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d163863 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file From 01fb94c283902807cc57be9bb9fd257f50717d34 Mon Sep 17 00:00:00 2001 From: stalker57241 Date: Sat, 25 Jul 2026 00:45:01 +0300 Subject: [PATCH 2/8] fixed Windows part --- src/cds.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cds.c b/src/cds.c index ae72b51..03abcfb 100644 --- a/src/cds.c +++ b/src/cds.c @@ -253,7 +253,11 @@ char* cdsMapToString(cdsmap* map) { char* buffer = calloc(map->recordCount * (1 + 16 + 1 + 8 + 3 + 8), sizeof(char)); uint64_t offset = 0; while (cursor != NULL) { + #ifdef WIN32 + sprintf(buffer, "%s\n%s %I64d + %I64d", buffer, cursor->filename, offset, cursor->length); + #else sprintf(buffer, "%s\n%s %ld + %ld", buffer, cursor->filename, offset, cursor->length); + #endif offset += cursor->length; cursor = cursor->next; } From 0f3ca14fe591fea934b24582d231d8a33201e08d Mon Sep 17 00:00:00 2001 From: stalker57241 Date: Sat, 25 Jul 2026 00:46:19 +0300 Subject: [PATCH 3/8] Fixed FILE redeclaration --- include/00ways/cds.h | 2 +- src/cds.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/00ways/cds.h b/include/00ways/cds.h index 36275ef..672e7d1 100644 --- a/include/00ways/cds.h +++ b/include/00ways/cds.h @@ -2,7 +2,7 @@ #define __00ways_cds_h #include -typedef struct _IO_FILE FILE; +#include typedef struct cdsmap cdsmap; cdsmap* cdsMapFile(const char* filename); diff --git a/src/cds.c b/src/cds.c index 03abcfb..a7c03e0 100644 --- a/src/cds.c +++ b/src/cds.c @@ -5,6 +5,7 @@ #include #include #include + static const char magicNumber[2] = { 0xCD, 0x50 From 020ef5864cd99ef67e8e83d0d7654c5623548ae2 Mon Sep 17 00:00:00 2001 From: stalker57241 Date: Sat, 25 Jul 2026 00:49:52 +0300 Subject: [PATCH 4/8] More fixes for windows --- src/cds.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/cds.c b/src/cds.c index a7c03e0..9b1c516 100644 --- a/src/cds.c +++ b/src/cds.c @@ -6,6 +6,11 @@ #include #include +#if !defined(max) || !defined(min) +#define max(a, b) (a > b ? a : b) +#define min(a, b) (a < b ? a : b) +#endif + static const char magicNumber[2] = { 0xCD, 0x50 @@ -43,7 +48,11 @@ static int fwriteSized(FILE* stream, enum cdsSize size, uint64_t* data) { return 1; return 0; case BYTE_8: + #ifdef WIN32 + printf("writing bytes: 8(%02llX)\n", d.u64); + #else printf("writing bytes: 8(%02lX)\n", d.u64); + #endif if (fwrite(&(d.u64), sizeof(uint64_t), 1, stream) < 1) return 1; return 0; @@ -62,8 +71,6 @@ static int skipSized(FILE* stream, enum cdsSize size) { } return 0; } -#define max(a, b) (a > b ? a : b) -#define min(a, b) (a < b ? a : b) struct cdsRecord { char* filename; uint64_t length; From 656f643e1c84eee6dd1c4b0ad60d1b0da2291437 Mon Sep 17 00:00:00 2001 From: stalker57241 Date: Sat, 25 Jul 2026 00:52:25 +0300 Subject: [PATCH 5/8] More windows fixes. getline impl found --- src/cds.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/cds.c b/src/cds.c index 9b1c516..5e00a57 100644 --- a/src/cds.c +++ b/src/cds.c @@ -6,6 +6,61 @@ #include #include +#ifdef WIN32 +/* This code is public domain -- Will Hartung 4/9/09 */ +size_t getline(char **lineptr, size_t *n, FILE *stream) { + char *bufptr = NULL; + char *p = bufptr; + size_t size; + int c; + + if (lineptr == NULL) { + return -1; + } + if (stream == NULL) { + return -1; + } + if (n == NULL) { + return -1; + } + bufptr = *lineptr; + size = *n; + + c = fgetc(stream); + if (c == EOF) { + return -1; + } + if (bufptr == NULL) { + bufptr = malloc(128); + if (bufptr == NULL) { + return -1; + } + size = 128; + } + p = bufptr; + while(c != EOF) { + if ((p - bufptr) > (size - 1)) { + size = size + 128; + bufptr = realloc(bufptr, size); + if (bufptr == NULL) { + return -1; + } + } + *p++ = c; + if (c == '\n') { + break; + } + c = fgetc(stream); + } + + *p++ = '\0'; + *lineptr = bufptr; + *n = size; + + return p - bufptr - 1; +} +#endif + #if !defined(max) || !defined(min) #define max(a, b) (a > b ? a : b) #define min(a, b) (a < b ? a : b) From ca7786bba3784ddf74b45cff7d8e8635a7731b18 Mon Sep 17 00:00:00 2001 From: stalker57241 Date: Sat, 25 Jul 2026 00:54:43 +0300 Subject: [PATCH 6/8] Found out _WIN32 --- src/cds.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cds.c b/src/cds.c index 5e00a57..95f89cc 100644 --- a/src/cds.c +++ b/src/cds.c @@ -6,7 +6,7 @@ #include #include -#ifdef WIN32 +#ifdef _WIN32 /* This code is public domain -- Will Hartung 4/9/09 */ size_t getline(char **lineptr, size_t *n, FILE *stream) { char *bufptr = NULL; @@ -103,7 +103,7 @@ static int fwriteSized(FILE* stream, enum cdsSize size, uint64_t* data) { return 1; return 0; case BYTE_8: - #ifdef WIN32 + #ifdef _WIN32 printf("writing bytes: 8(%02llX)\n", d.u64); #else printf("writing bytes: 8(%02lX)\n", d.u64); @@ -316,7 +316,7 @@ char* cdsMapToString(cdsmap* map) { char* buffer = calloc(map->recordCount * (1 + 16 + 1 + 8 + 3 + 8), sizeof(char)); uint64_t offset = 0; while (cursor != NULL) { - #ifdef WIN32 + #ifdef _WIN32 sprintf(buffer, "%s\n%s %I64d + %I64d", buffer, cursor->filename, offset, cursor->length); #else sprintf(buffer, "%s\n%s %ld + %ld", buffer, cursor->filename, offset, cursor->length); From 3a0c2bdc91b3db46f7ebf95c66dcc689286a63d1 Mon Sep 17 00:00:00 2001 From: stalker57241 Date: Sat, 25 Jul 2026 00:56:05 +0300 Subject: [PATCH 7/8] Wrong place for `getline` --- src/cds.c | 54 ------------------------------------------------------ src/main.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/cds.c b/src/cds.c index 95f89cc..186f5c2 100644 --- a/src/cds.c +++ b/src/cds.c @@ -6,60 +6,6 @@ #include #include -#ifdef _WIN32 -/* This code is public domain -- Will Hartung 4/9/09 */ -size_t getline(char **lineptr, size_t *n, FILE *stream) { - char *bufptr = NULL; - char *p = bufptr; - size_t size; - int c; - - if (lineptr == NULL) { - return -1; - } - if (stream == NULL) { - return -1; - } - if (n == NULL) { - return -1; - } - bufptr = *lineptr; - size = *n; - - c = fgetc(stream); - if (c == EOF) { - return -1; - } - if (bufptr == NULL) { - bufptr = malloc(128); - if (bufptr == NULL) { - return -1; - } - size = 128; - } - p = bufptr; - while(c != EOF) { - if ((p - bufptr) > (size - 1)) { - size = size + 128; - bufptr = realloc(bufptr, size); - if (bufptr == NULL) { - return -1; - } - } - *p++ = c; - if (c == '\n') { - break; - } - c = fgetc(stream); - } - - *p++ = '\0'; - *lineptr = bufptr; - *n = size; - - return p - bufptr - 1; -} -#endif #if !defined(max) || !defined(min) #define max(a, b) (a > b ? a : b) diff --git a/src/main.c b/src/main.c index 035ddbe..b772a59 100644 --- a/src/main.c +++ b/src/main.c @@ -4,6 +4,60 @@ #include #include +#ifdef _WIN32 +/* This code is public domain -- Will Hartung 4/9/09 */ +size_t getline(char **lineptr, size_t *n, FILE *stream) { + char *bufptr = NULL; + char *p = bufptr; + size_t size; + int c; + + if (lineptr == NULL) { + return -1; + } + if (stream == NULL) { + return -1; + } + if (n == NULL) { + return -1; + } + bufptr = *lineptr; + size = *n; + + c = fgetc(stream); + if (c == EOF) { + return -1; + } + if (bufptr == NULL) { + bufptr = malloc(128); + if (bufptr == NULL) { + return -1; + } + size = 128; + } + p = bufptr; + while(c != EOF) { + if ((p - bufptr) > (size - 1)) { + size = size + 128; + bufptr = realloc(bufptr, size); + if (bufptr == NULL) { + return -1; + } + } + *p++ = c; + if (c == '\n') { + break; + } + c = fgetc(stream); + } + + *p++ = '\0'; + *lineptr = bufptr; + *n = size; + + return p - bufptr - 1; +} +#endif static enum { STATE_NULL = 0, STATE_READ = 1, From 8f692808510d24eca6e57c83c2981587327e1937 Mon Sep 17 00:00:00 2001 From: stalker57241 Date: Sat, 25 Jul 2026 01:00:51 +0300 Subject: [PATCH 8/8] Fixing... --- src/cds.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/cds.c b/src/cds.c index 186f5c2..28f9ffd 100644 --- a/src/cds.c +++ b/src/cds.c @@ -60,7 +60,7 @@ static int fwriteSized(FILE* stream, enum cdsSize size, uint64_t* data) { } return 0; } -static int freadSized(uint64_t* data, enum cdsSize size, FILE* stream) { +static size_t freadSized(uint64_t* data, enum cdsSize size, FILE* stream) { return fread(data, size, 1, stream); } static int skipSized(FILE* stream, enum cdsSize size) { @@ -134,8 +134,13 @@ cdsmap* cdsMapFile(const char* filename) { map->recordCount = recordCount; fclose(fptr); printf("map %s:\n", map->filename); + #ifdef _WIN32 + printf("Origin: %lld\n", map->origin); + printf("Records: %lld\n", map->recordCount); + #else printf("Origin: %ld\n", map->origin); printf("Records: %ld\n", map->recordCount); + #endif return map; } cdsmap* cdsMapCreate(const char* filename, int recordcount) { @@ -224,7 +229,11 @@ int cdsMapWriteFileHeader(cdsmap* map, FILE** pfptr) { printf("Unable to write file\n"); return 1; } + #ifdef _WIN32 + printf("[write] recordCount: %lld\n", map->recordCount); + #else printf("[write] recordCount: %ld\n", map->recordCount); + #endif enum cdsSize size; if (map->recordCount > UINT32_MAX) size = BYTE_8; else if (map->recordCount > UINT16_MAX) size = BYTE_4;