Skip to content

Commit

Permalink
Reverse UTF-8 symbol removal for Windows.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rot127 committed Jul 25, 2022
1 parent d64f53f commit 0705e11
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 34 deletions.
13 changes: 0 additions & 13 deletions librz/asm/arch/hexagon/hexagon_arch.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,31 +43,18 @@ typedef struct {
#define HEX_PKT_UNK "? "
#define HEX_PKT_SINGLE "[ "
#define HEX_PKT_SINGLE_UTF8 "[ "
#if __WINDOWS__
// regex matching doesn't work on Windows with UTF-8 characters
#define HEX_PKT_FIRST_UTF8 "/ "
#define HEX_PKT_MID_UTF8 "| "
#define HEX_PKT_LAST_UTF8 "\\ "
#else
#define HEX_PKT_FIRST_UTF8 "┌ "
#define HEX_PKT_MID_UTF8 "│ "
#define HEX_PKT_LAST_UTF8 "└ "
#endif
#define HEX_PKT_FIRST_SDK "{ "
#define HEX_PKT_SDK_PADDING " "
#define HEX_PKT_LAST_SDK " }"
#define HEX_PKT_FIRST "/ "
#define HEX_PKT_MID "| "
#define HEX_PKT_LAST "\\ "
#if __WINDOWS__
#define HEX_PKT_ELOOP_01_UTF8 " < endloop01"
#define HEX_PKT_ELOOP_1_UTF8 " < endloop1"
#define HEX_PKT_ELOOP_0_UTF8 " < endloop0"
#else
#define HEX_PKT_ELOOP_01_UTF8 " ∎ endloop01"
#define HEX_PKT_ELOOP_1_UTF8 " ∎ endloop1"
#define HEX_PKT_ELOOP_0_UTF8 " ∎ endloop0"
#endif
#define HEX_PKT_ELOOP_01 " < endloop01"
#define HEX_PKT_ELOOP_1 " < endloop1"
#define HEX_PKT_ELOOP_0 " < endloop0"
Expand Down
14 changes: 1 addition & 13 deletions librz/asm/p/asm_hexagon.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,27 +30,15 @@ static RZ_OWN RzPVector /* RzAsmTokenPattern */ *get_token_patterns() {
RzAsmTokenPattern *pat = RZ_NEW0(RzAsmTokenPattern);
pat->type = RZ_ASM_TOKEN_META;
pat->pattern = strdup(
#if __WINDOWS__
// regex matching doesn't work on Windows with UTF-8 characters
"(^[\\[\\?\\/\\|\\\\\\{])|"
"[<\\}][ :](endloop[01]{1,2})"
#else
"(^[\\[\\?\\/\\|\\\\\\{])|(┌)|(│)|(└)|" // Packet prefix
"((∎)|[<\\}])([ :])(endloop[01]{1,2})" // Endloop markers
#endif
);
rz_pvector_push(pvec, pat);

pat = RZ_NEW0(RzAsmTokenPattern);
pat->type = RZ_ASM_TOKEN_META;
pat->pattern = strdup(
"(#{1,2})|(\\}$)" // Immediate prefix, Closing packet bracket
);
rz_pvector_push(pvec, pat);

pat = RZ_NEW0(RzAsmTokenPattern);
pat->type = RZ_ASM_TOKEN_META;
pat->pattern = strdup(
"(#{1,2})|(\\}$)|" // Immediate prefix, Closing packet bracket
"\\.new|:n?t|:raw|<err>" // .new and jump hints
);
rz_pvector_push(pvec, pat);
Expand Down
12 changes: 4 additions & 8 deletions test/unit/test_tokens.c
Original file line number Diff line number Diff line change
Expand Up @@ -538,22 +538,18 @@ static bool test_rz_colorize_custom_hexagon_2(void) {
RzStrBuf *colored_asm;
RzStrBuf *expected;
char err_msg[2048];
// ? memd(R0++#0x8) = R19:18
// ┌ R7:6 = valignb(R13:12,R11:10,P2)
// │ P0 = cmp.gtu(R4,##0x1)
// │ R11:10 = memd(R1++#0x8)
// └ memd(R0++#0x8) = R7:6 ∎ endloop0
ut8 buf[] = "\x08\xd2\xc0\xab\x46\x8c\x0a\xc2\x20\x40\x84\x75\x2a\x40\xc1\x9b\x08\xc6\xc0\xab";
const char *expected_str[] = {
#if __WINDOWS__
"\x1b[90m[\x1b[0m\x1b[37m \x1b[0m\x1b[37mmemd\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR0\x1b[0m\x1b[37m+\x1b[0m\x1b[37m+\x1b[0m\x1b[90m#\x1b[0m\x1b[33m0x8\x1b[0m\x1b[37m)\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[36mR19:18\x1b[0m",
"\x1b[90m/\x1b[0m\x1b[37m \x1b[0m\x1b[36mR7:6\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[37mvalignb\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR13:12\x1b[0m\x1b[37m,\x1b[0m\x1b[36mR11:10\x1b[0m\x1b[37m,\x1b[0m\x1b[36mP2\x1b[0m\x1b[37m)\x1b[0m",
"\x1b[90m|\x1b[0m\x1b[37m \x1b[0m\x1b[36mP0\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[37mcmp\x1b[0m\x1b[37m.\x1b[0m\x1b[37mgtu\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR4\x1b[0m\x1b[37m,\x1b[0m\x1b[90m##\x1b[0m\x1b[33m0x1\x1b[0m\x1b[37m)\x1b[0m",
"\x1b[90m|\x1b[0m\x1b[37m \x1b[0m\x1b[36mR11:10\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[37mmemd\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR1\x1b[0m\x1b[37m+\x1b[0m\x1b[37m+\x1b[0m\x1b[90m#\x1b[0m\x1b[33m0x8\x1b[0m\x1b[37m)\x1b[0m",
"\x1b[90m\\\x1b[0m\x1b[37m \x1b[0m\x1b[32mmemd\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR0\x1b[0m\x1b[37m+\x1b[0m\x1b[37m+\x1b[0m\x1b[90m#\x1b[0m\x1b[33m0x8\x1b[0m\x1b[37m)\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[36mR7:6\x1b[0m\x1b[37m \x1b[0m\x1b[90m< endloop0\x1b[0m"
#else
"\x1b[90m[\x1b[0m\x1b[37m \x1b[0m\x1b[37mmemd\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR0\x1b[0m\x1b[37m+\x1b[0m\x1b[37m+\x1b[0m\x1b[90m#\x1b[0m\x1b[33m0x8\x1b[0m\x1b[37m)\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[36mR19:18\x1b[0m",
"\x1b[90m┌\x1b[0m\x1b[37m \x1b[0m\x1b[36mR7:6\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[37mvalignb\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR13:12\x1b[0m\x1b[37m,\x1b[0m\x1b[36mR11:10\x1b[0m\x1b[37m,\x1b[0m\x1b[36mP2\x1b[0m\x1b[37m)\x1b[0m",
"\x1b[90m│\x1b[0m\x1b[37m \x1b[0m\x1b[36mP0\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[37mcmp\x1b[0m\x1b[37m.\x1b[0m\x1b[37mgtu\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR4\x1b[0m\x1b[37m,\x1b[0m\x1b[90m##\x1b[0m\x1b[33m0x1\x1b[0m\x1b[37m)\x1b[0m",
"\x1b[90m│\x1b[0m\x1b[37m \x1b[0m\x1b[36mR11:10\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[37mmemd\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR1\x1b[0m\x1b[37m+\x1b[0m\x1b[37m+\x1b[0m\x1b[90m#\x1b[0m\x1b[33m0x8\x1b[0m\x1b[37m)\x1b[0m",
"\x1b[90m└\x1b[0m\x1b[37m \x1b[0m\x1b[32mmemd\x1b[0m\x1b[37m(\x1b[0m\x1b[36mR0\x1b[0m\x1b[37m+\x1b[0m\x1b[37m+\x1b[0m\x1b[90m#\x1b[0m\x1b[33m0x8\x1b[0m\x1b[37m)\x1b[0m\x1b[37m \x1b[0m\x1b[37m=\x1b[0m\x1b[37m \x1b[0m\x1b[36mR7:6\x1b[0m\x1b[37m \x1b[0m\x1b[90m∎ endloop0\x1b[0m"
#endif
};

for (int i = 0; i < 0x14; i += 4) {
Expand Down

0 comments on commit 0705e11

Please sign in to comment.