Compare commits

...

2 Commits

Author SHA1 Message Date
William Bell
47db2ca27d fix for winblows 2025-08-18 06:40:59 +01:00
William Bell
2e7b3b4baa fix for winblows 2025-08-18 06:38:30 +01:00
2 changed files with 21 additions and 1 deletions

View File

@@ -33,8 +33,16 @@ add_custom_command(
# Step 2: Custom target for lexer # Step 2: Custom target for lexer
add_custom_target(GenerateLexer DEPENDS ${LEXER_C} ${LEXER_H}) add_custom_target(GenerateLexer DEPENDS ${LEXER_C} ${LEXER_H})
set(SOURCES
external/xxhash/xxhash.c external/cwalk/src/cwalk.c external/libdye/src/dye.c ${CFILES} ${LEXER_C}
)
if(NOT WIN32)
list(APPEND SOURCES external/linenoise/linenoise.c)
endif()
# Step 3: Add executable # Step 3: Add executable
add_executable(argon external/xxhash/xxhash.c external/cwalk/src/cwalk.c external/libdye/src/dye.c external/linenoise/linenoise.c ${CFILES} ${LEXER_C}) add_executable(argon ${SOURCES})
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
target_include_directories(argon PRIVATE ${CMAKE_SOURCE_DIR}/external/cwalk/include) target_include_directories(argon PRIVATE ${CMAKE_SOURCE_DIR}/external/cwalk/include)
target_include_directories(argon PRIVATE ${CMAKE_SOURCE_DIR}/external/libdye/include) target_include_directories(argon PRIVATE ${CMAKE_SOURCE_DIR}/external/libdye/include)

View File

@@ -3,7 +3,10 @@
* *
* SPDX-License-Identifier: GPL-3.0-or-later * SPDX-License-Identifier: GPL-3.0-or-later
*/ */
#if defined(_WIN32) || defined(_WIN64)
#else
#include "../external/linenoise/linenoise.h" #include "../external/linenoise/linenoise.h"
#endif
#include "./lexer/lexer.h" #include "./lexer/lexer.h"
#include "./runtime/call/call.h" #include "./runtime/call/call.h"
#include "./runtime/objects/functions/functions.h" #include "./runtime/objects/functions/functions.h"
@@ -96,6 +99,7 @@ int execute_code(FILE *stream, char *path, Stack *scope,
return 0; return 0;
} }
#if defined(_WIN32) || defined(_WIN64)
// Simple input function // Simple input function
char *input(const char *prompt) { char *input(const char *prompt) {
printf("%s", prompt); printf("%s", prompt);
@@ -117,6 +121,7 @@ char *input(const char *prompt) {
return buffer; return buffer;
} }
#endif
char *read_all_stdin(size_t *out_len) { char *read_all_stdin(size_t *out_len) {
size_t size = 1024; size_t size = 1024;
@@ -194,7 +199,11 @@ int shell() {
memcpy(prompt, textBefore, strlen(textBefore)); memcpy(prompt, textBefore, strlen(textBefore));
memcpy(prompt + strlen(textBefore), indentStr, isz + 1); memcpy(prompt + strlen(textBefore), indentStr, isz + 1);
#if defined(_WIN32) || defined(_WIN64)
char *inp = input(prompt);
#else
char *inp = linenoise(prompt); char *inp = linenoise(prompt);
#endif
free(prompt); free(prompt);
if (!inp) { if (!inp) {
@@ -205,10 +214,13 @@ int shell() {
free(indentStr); free(indentStr);
return 0; return 0;
} }
#if defined(_WIN32) || defined(_WIN64)
#else
if (inp[0] != '\0') { if (inp[0] != '\0') {
// Optionally add line to history // Optionally add line to history
linenoiseHistoryAdd(inp); linenoiseHistoryAdd(inp);
} }
#endif
// Append line to totranslate // Append line to totranslate
size_t length = strlen(inp); size_t length = strlen(inp);