blueloveTH 2023-04-29 13:26:55 +08:00
parent 46b1b1b900
commit cda087f3dc
2 changed files with 6 additions and 4 deletions

View File

@ -46,6 +46,8 @@ jobs:
run: python3 scripts/run_tests.py run: python3 scripts/run_tests.py
- name: Benchmark - name: Benchmark
run: python3 scripts/run_tests.py benchmark run: python3 scripts/run_tests.py benchmark
- name: GCC Build Test
run: g++ -o pocketpy --std=c++17 src/main.cpp
build_macos: build_macos:
runs-on: macos-latest runs-on: macos-latest
steps: steps:

View File

@ -31,16 +31,16 @@ struct FileIO {
bool is_text() const { return mode != "rb" && mode != "wb" && mode != "ab"; } bool is_text() const { return mode != "rb" && mode != "wb" && mode != "ab"; }
FileIO(VM* vm, Str file, Str mode): file(file), mode(mode) { FileIO(VM* vm, Str file, Str mode): file(file), mode(mode) {
std::ios_base::openmode extra = 0; std::ios_base::openmode extra = static_cast<std::ios_base::openmode>(0);
if(mode == "rb" || mode == "wb" || mode == "ab"){ if(mode == "rb" || mode == "wb" || mode == "ab"){
extra |= std::ios::binary; extra |= std::ios::binary;
} }
if(mode == "rt" || mode == "r" || mode == "rb"){ if(mode == "rt" || mode == "r" || mode == "rb"){
_fs.open(file.sv(), std::ios::in | extra); _fs.open(file.str(), std::ios::in | extra);
}else if(mode == "wt" || mode == "w" || mode == "wb"){ }else if(mode == "wt" || mode == "w" || mode == "wb"){
_fs.open(file.sv(), std::ios::out | extra); _fs.open(file.str(), std::ios::out | extra);
}else if(mode == "at" || mode == "a" || mode == "ab"){ }else if(mode == "at" || mode == "a" || mode == "ab"){
_fs.open(file.sv(), std::ios::app | extra); _fs.open(file.str(), std::ios::app | extra);
}else{ }else{
vm->ValueError("invalid mode"); vm->ValueError("invalid mode");
} }