From 82b6f2ab39ca1b78b2f249f62ac98278d8b84c13 Mon Sep 17 00:00:00 2001 From: lyon Date: Thu, 1 Dec 2022 18:11:58 +0800 Subject: [PATCH] add multi file when pre-compile test ok --- package/PikaStdLib/PikaStdData_FILEIO.c | 1 + port/linux/api-make-linux.sh | 4 +++- .../PikaStdLib/PikaStdData_FILEIO.c | 1 + test/assets/test.txt | 1 + tools/pikaByteCodeGen/main.c | 24 ++++++++++++++----- 5 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 test/assets/test.txt diff --git a/package/PikaStdLib/PikaStdData_FILEIO.c b/package/PikaStdLib/PikaStdData_FILEIO.c index 105cb5a9a..181f688e3 100644 --- a/package/PikaStdLib/PikaStdData_FILEIO.c +++ b/package/PikaStdLib/PikaStdData_FILEIO.c @@ -48,6 +48,7 @@ void PikaStdData_FILEIO_close(PikaObj* self) { return; } pikaFree(f, sizeof(PIKAFS_FILE)); + obj_setPtr(self, "_f", NULL); return; } FILE* f = obj_getPtr(self, "_f"); diff --git a/port/linux/api-make-linux.sh b/port/linux/api-make-linux.sh index bf2fa0e48..c0bbbf610 100644 --- a/port/linux/api-make-linux.sh +++ b/port/linux/api-make-linux.sh @@ -1,2 +1,4 @@ cd package/pikascript -./rust-msc-latest-linux --add-file ../../test/assets/widget_config.ini +./rust-msc-latest-linux \ +--add-file ../../test/assets/widget_config.ini \ +--add-file ../../test/assets/test.txt diff --git a/port/linux/package/pikascript/pikascript-lib/PikaStdLib/PikaStdData_FILEIO.c b/port/linux/package/pikascript/pikascript-lib/PikaStdLib/PikaStdData_FILEIO.c index 105cb5a9a..181f688e3 100644 --- a/port/linux/package/pikascript/pikascript-lib/PikaStdLib/PikaStdData_FILEIO.c +++ b/port/linux/package/pikascript/pikascript-lib/PikaStdLib/PikaStdData_FILEIO.c @@ -48,6 +48,7 @@ void PikaStdData_FILEIO_close(PikaObj* self) { return; } pikaFree(f, sizeof(PIKAFS_FILE)); + obj_setPtr(self, "_f", NULL); return; } FILE* f = obj_getPtr(self, "_f"); diff --git a/test/assets/test.txt b/test/assets/test.txt new file mode 100644 index 000000000..95d09f2b1 --- /dev/null +++ b/test/assets/test.txt @@ -0,0 +1 @@ +hello world \ No newline at end of file diff --git a/tools/pikaByteCodeGen/main.c b/tools/pikaByteCodeGen/main.c index 92dfd50d4..e62492951 100644 --- a/tools/pikaByteCodeGen/main.c +++ b/tools/pikaByteCodeGen/main.c @@ -50,16 +50,28 @@ int main(int argc, char** argv) { // __platform_printf("add file: %s\r\n", argv[i + 1]); if (i + 1 < argc) { pikaMaker_linkRaw(maker, argv[i + 1]); - /* delete argv[i] and argv[i+1] */ - for (int j = i; j < argc - 2; j++) { - argv[j] = argv[j + 2]; - } - argc -= 2; - parc -= 2; } } } + /* delete --xxx yyy */ + for (int i = 1; i < argc; i++) { + if (0 == strcmp(argv[i], "--add-file")) { + // printf("before delete: %d\r\n", parc); + // for (int j = 0; j < parc; j++) { + // printf("%s\r\n", argv[j + 1]); + // } + parc -= 2; + for (int j = i; j < argc - 2; j++) { + argv[j] = argv[j + 2]; + } + // printf("after delete: %d\r\n", parc); + // for (int j = 0; j < parc; j++) { + // printf("%s\r\n", argv[j + 1]); + // } + } + } + if (0 == parc) { /* no input, default to main.py */ /* run pika_binder to bind C modules */