diff --git a/src/yycc/rust/panic.cpp b/src/yycc/rust/panic.cpp index 01bb8eb..5d7bb36 100644 --- a/src/yycc/rust/panic.cpp +++ b/src/yycc/rust/panic.cpp @@ -1,21 +1,23 @@ #include "panic.hpp" - +#include "../carton/termcolor.hpp" +#include "../string/reinterpret.hpp" #include #include #include #include +#define TERMCOLOR ::yycc::carton::termcolor +#define REINTERPRET ::yycc::string::reinterpret + namespace yycc::rust::panic { void panic(const char* file, int line, const std::string_view& msg) { // Output message in stderr. auto& dst = std::cerr; - // TODO: Fix colorful output when finishing `termcolor` lib. - // Print error message if we support it. - // // Setup color - // dst << FOREGROUND; + // Setup color + dst << REINTERPRET::as_ordinary_view(TERMCOLOR::foreground(TERMCOLOR::Color::Red)); // File name and line number message dst << "program paniked at " << std::quoted(file) << ":Ln" << line << std::endl; // User custom message @@ -23,8 +25,8 @@ namespace yycc::rust::panic { // Stacktrace message if we support it. dst << "stacktrace: " << std::endl; dst << std::stacktrace::current() << std::endl; - // // Restore color - // dst << RESET; + // Restore color + dst << REINTERPRET::as_ordinary_view(TERMCOLOR::reset());; // Make sure all messages are flushed into screen. dst.flush(); diff --git a/testbench/yycc/carton/wcwidth.cpp b/testbench/yycc/carton/wcwidth.cpp index ddaeebb..39591b1 100644 --- a/testbench/yycc/carton/wcwidth.cpp +++ b/testbench/yycc/carton/wcwidth.cpp @@ -1,8 +1,10 @@ #include #include #include +#include #define WCWDITH ::yycc::carton::wcwidth +#define TERMCOLOR ::yycc::carton::termcolor namespace yycctest::carton::wcwidth { @@ -43,10 +45,10 @@ namespace yycctest::carton::wcwidth { } TEST(CartonWcwdith, Termcolor) { - // TODO: Fix this after finish "termcolor". - // assert_eq!(wcswidth(&colored("abc", Color::Red, Default::default(), Default::default())), 3); - // assert_eq!(wcswidth(&colored("中文", Color::Red, Default::default(), Default::default())), 4); - // assert_eq!(wcswidth(&colored("ありがとう", Color::Red, Default::default(), Default::default())), 10); + using Color = TERMCOLOR::Color; + TEST_SUCCESS(TERMCOLOR::colored(u8"abc", Color::Red), 3); + TEST_SUCCESS(TERMCOLOR::colored(u8"中文", Color::Red), 4); + TEST_SUCCESS(TERMCOLOR::colored(u8"ありがとう", Color::Red), 10); } } // namespace yycctest::carton::wcwidth