diff --git a/scripts/build.sh b/scripts/build.sh index 1efc7d2..a5d13f8 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -59,7 +59,7 @@ echo ">>> Building tools..." create_directory bin/tools # add compile commands to this array COMPILE_COMMANDS=( - "$CXX_WITH_FLAGS src/tools/dumpnbt.cpp -I./include -Lbin/lib -l:nbt.so -l:javacompat.so -l:cli.so -o bin/tools/dumpnbt" + "$CXX_WITH_FLAGS src/tools/dumpnbt.cpp -I./include -Lbin/lib -l:nbt.so -l:cli.so -o bin/tools/dumpnbt" "$CXX_WITH_FLAGS src/tools/arraydump.cpp -I./include -Lbin/lib -l:file.so -l:cli.so -o bin/tools/arraydump" "$CXX_WITH_FLAGS src/tools/baseconvert.cpp -I./include -Lbin/lib -l:cli.so -o bin/tools/baseconvert" "$CXX_WITH_FLAGS -pthread src/tools/hexnet.cpp -I./include -Lbin/lib -l:cli.so -l:libsockpp.so -o bin/tools/hexnet" diff --git a/scripts/test.sh b/scripts/test.sh index 0945fdf..1b07a0b 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -33,11 +33,11 @@ echo ">>> Building tests..." # add compile commands to this array COMPILE_COMMANDS=( - "$CXX_WITH_FLAGS src/test/nbt_read_write_helpers.cpp -I./include -Lbin/lib -l:nbt.so -l:javacompat.so -o bin/test/nbt_read_write_helpers" + "$CXX_WITH_FLAGS src/test/nbt_read_write_helpers.cpp -I./include -Lbin/lib -l:nbt.so -o bin/test/nbt_read_write_helpers" "$CXX_WITH_FLAGS src/test/cli_argument_parser.cpp -Lbin/lib -l:cli.so -o bin/test/cli_argument_parser" - "$CXX_WITH_FLAGS src/test/javacompat.cpp -I./include -Lbin/lib -l:javacompat.so -o bin/test/javacompat" - "$CXX_WITH_FLAGS src/test/nbt_tags.cpp -I./include -Lbin/lib -l:nbt.so -l:javacompat.so -o bin/test/nbt_tags" - "$CXX_WITH_FLAGS src/test/nbt_size_helpers.cpp -I./include -Lbin/lib -l:nbt.so -l:javacompat.so -o bin/test/nbt_size_helpers" + "$CXX_WITH_FLAGS src/test/javacompat.cpp -I./include -Lbin/lib -o bin/test/javacompat" + "$CXX_WITH_FLAGS src/test/nbt_tags.cpp -I./include -Lbin/lib -l:nbt.so -o bin/test/nbt_tags" + "$CXX_WITH_FLAGS src/test/nbt_size_helpers.cpp -I./include -Lbin/lib -l:nbt.so -o bin/test/nbt_size_helpers" "$CXX_WITH_FLAGS src/test/file.cpp -I./include -Lbin/lib -l:file.so -o bin/test/file" ) for command in ${!COMPILE_COMMANDS[@]}; do diff --git a/src/lib/javacompat.cpp b/src/lib/javacompat.cpp deleted file mode 100644 index d4639f3..0000000 --- a/src/lib/javacompat.cpp +++ /dev/null @@ -1,94 +0,0 @@ -//Copyright 2022, FOSS-VG Developers and Contributers -// -//This program is free software: you can redistribute it and/or modify it -//under the terms of the GNU Affero General Public License as published -//by the Free Software Foundation, version 3. -// -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied -//warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -//See the GNU Affero General Public License for more details. -// -//You should have received a copy of the GNU Affero General Public License -//version 3 along with this program. -//If not, see https://www.gnu.org/licenses/agpl-3.0.en.html - -#include -#include -#include "error.hpp" -#include "javacompat.hpp" -#include "../../.endianness" - -#ifdef FOSSVG_ENDIAN_BIG_WORD - #error "Honeywell-316-style endianness is not supported. If you feel like it should, feel free to participate in the project to maintain it." -#endif -#ifdef FOSSVG_ENDIAN_LITTLE_WORD - #error "PDP-11-style endianness is not supported. If you feel like it should, feel free to participate in the project to maintain it." -#endif -#ifdef FOSSVG_ENDIAN_UNKNOWN - #error "The endianness of your system could not be determined. Please set it manually. FOSS-VG is currently implemented using some endian-specific functions." -#endif - -namespace JavaCompat { - ErrorOr importJavaString(uint8_t data[], uint16_t size) { - std::string stdString; - uint16_t encodedSize = static_cast(data[0])<<8 | static_cast(data[1]); - - if(encodedSize != size){ - return ErrorOr(true, ErrorCodes::MISMATCHEDSIZE); - } - - for(uint16_t i=2; i(tiny_utf8::string(stdString)); - } - - ErrorOr> exportJavaString(tiny_utf8::string data) { - uint16_t* size = new uint16_t; - uint8_t* sizeBytes = reinterpret_cast(size); - std::vector output = std::vector(); - std::string stdString = data.cpp_str(); - - if(stdString.size() > 0xFFFF){ - return ErrorOr>(true, ErrorCodes::OVERRUN); - } - - *size = (uint16_t) stdString.size(); - - //placeholder size bytes - output.push_back(0x00); - output.push_back(0x00); - for(uint16_t i=0; i #include +#include #include "error.hpp" +#include "../../.endianness" + +#ifdef FOSSVG_ENDIAN_BIG_WORD + #error "Honeywell-316-style endianness is not supported. If you feel like it should, feel free to participate in the project to maintain it." +#endif +#ifdef FOSSVG_ENDIAN_LITTLE_WORD + #error "PDP-11-style endianness is not supported. If you feel like it should, feel free to participate in the project to maintain it." +#endif +#ifdef FOSSVG_ENDIAN_UNKNOWN + #error "The endianness of your system could not be determined. Please set it manually. FOSS-VG is currently implemented using some endian-specific functions." +#endif namespace JavaCompat { - ErrorOr importJavaString(uint8_t data[], uint16_t size); - ErrorOr> exportJavaString(tiny_utf8::string data); + ErrorOr importJavaString(uint8_t data[], uint16_t size) { + std::string stdString; + uint16_t encodedSize = static_cast(data[0])<<8 | static_cast(data[1]); + + if(encodedSize != size){ + return ErrorOr(true, ErrorCodes::MISMATCHEDSIZE); + } + + for(uint16_t i=2; i(tiny_utf8::string(stdString)); + } + + ErrorOr> exportJavaString(tiny_utf8::string data) { + uint16_t* size = new uint16_t; + uint8_t* sizeBytes = reinterpret_cast(size); + std::vector output = std::vector(); + std::string stdString = data.cpp_str(); + + if(stdString.size() > 0xFFFF){ + return ErrorOr>(true, ErrorCodes::OVERRUN); + } + + *size = (uint16_t) stdString.size(); + + //placeholder size bytes + output.push_back(0x00); + output.push_back(0x00); + for(uint16_t i=0; i