From d520902ce876785d9791393c45fc02a713bd2f4c Mon Sep 17 00:00:00 2001 From: pancake Date: Fri, 17 Sep 2021 09:24:27 +0200 Subject: [PATCH] Add RCons.isWindows() and update mini graph test --- binr/r2r/Makefile | 2 +- binr/r2r/meson.build | 1 + binr/r2r/r2r.c | 28 +++++++++++++++++++--------- libr/cons/cons.c | 11 +++++++++++ libr/include/r_cons.h | 1 + test/db/cmd/cmd_ag | 4 ++-- 6 files changed, 35 insertions(+), 12 deletions(-) diff --git a/binr/r2r/Makefile b/binr/r2r/Makefile index 7e670023bb..5bb6a4359e 100644 --- a/binr/r2r/Makefile +++ b/binr/r2r/Makefile @@ -1,5 +1,5 @@ BIN=r2r -BINDEPS=r_util +BINDEPS=r_util r_cons OBJ=load.o run.o include ../rules.mk diff --git a/binr/r2r/meson.build b/binr/r2r/meson.build index ec8b81bfc8..46c803e8b6 100644 --- a/binr/r2r/meson.build +++ b/binr/r2r/meson.build @@ -4,6 +4,7 @@ if get_option('enable_r2r') include_directories: [platform_inc], dependencies: [ r_util_dep, + r_cons_dep, lrt, ], install: true, diff --git a/binr/r2r/r2r.c b/binr/r2r/r2r.c index 8f383751e0..733c703b11 100644 --- a/binr/r2r/r2r.c +++ b/binr/r2r/r2r.c @@ -875,13 +875,19 @@ static void interact(R2RState *state) { goto beach; } + bool use_fancy_stuff = !r_cons_is_windows (); #if __WINDOWS__ + // XXX move to rcons (void)SetConsoleOutputCP (65001); // UTF-8 #endif printf ("\n"); printf ("#####################\n"); - printf (" %"PFMT64u" failed test(s) "R_UTF8_POLICE_CARS_REVOLVING_LIGHT"\n", - (ut64)r_pvector_len (&failed_results)); + if (use_fancy_stuff) { + printf (" %"PFMT64u" failed test(s)"R_UTF8_POLICE_CARS_REVOLVING_LIGHT"\n", + (ut64)r_pvector_len (&failed_results)); + } else { + printf (" %"PFMT64u" failed test(s)\n", (ut64)r_pvector_len (&failed_results)); + } r_pvector_foreach (&failed_results, it) { R2RTestResultInfo *result = *it; @@ -893,13 +899,17 @@ static void interact(R2RState *state) { printf ("#####################\n\n"); print_result_diff (&state->run_config, result); menu: - printf ("Wat do? " - "(f)ix "R_UTF8_WHITE_HEAVY_CHECK_MARK R_UTF8_VS16 R_UTF8_VS16 R_UTF8_VS16" " - "(i)gnore "R_UTF8_SEE_NO_EVIL_MONKEY" " - "(b)roken "R_UTF8_SKULL_AND_CROSSBONES R_UTF8_VS16 R_UTF8_VS16 R_UTF8_VS16" " - "(c)ommands "R_UTF8_KEYBOARD R_UTF8_VS16" " - "(d)iffchar "R_UTF8_LEFT_POINTING_MAGNIFYING_GLASS" " - "(q)uit "R_UTF8_DOOR"\n"); + if (use_fancy_stuff) { + printf ("Wat do? " + "(f)ix "R_UTF8_WHITE_HEAVY_CHECK_MARK R_UTF8_VS16 R_UTF8_VS16 R_UTF8_VS16" " + "(i)gnore "R_UTF8_SEE_NO_EVIL_MONKEY" " + "(b)roken "R_UTF8_SKULL_AND_CROSSBONES R_UTF8_VS16 R_UTF8_VS16 R_UTF8_VS16" " + "(c)ommands "R_UTF8_KEYBOARD R_UTF8_VS16" " + "(d)iffchar "R_UTF8_LEFT_POINTING_MAGNIFYING_GLASS" " + "(q)uit "R_UTF8_DOOR"\n"); + } else { + printf ("Wat do? (f)ix (i)gnore (b)roken (c)ommands (d)iffchar (q)uit\n"); + } printf ("> "); char buf[0x30]; if (!fgets (buf, sizeof (buf), stdin)) { diff --git a/libr/cons/cons.c b/libr/cons/cons.c index 4a6b4ac202..51cef1c38f 100644 --- a/libr/cons/cons.c +++ b/libr/cons/cons.c @@ -1438,6 +1438,17 @@ R_API int r_cons_get_cursor(int *rows) { return col; } +R_API bool r_cons_is_windows(void) { +#if __WINDOWS__ + return true; +#else + char *e = r_sys_getenv ("WSL_INTEROP"); + bool res = R_STR_ISNOTEMPTY (e); + free (e); + return res; +#endif +} + R_API bool r_cons_isatty(void) { #if EMSCRIPTEN || __wasi__ return false; diff --git a/libr/include/r_cons.h b/libr/include/r_cons.h index 85635bfec6..2d5008af44 100644 --- a/libr/include/r_cons.h +++ b/libr/include/r_cons.h @@ -884,6 +884,7 @@ R_API void r_cons_memset(char ch, int len); R_API void r_cons_visual_flush(void); R_API void r_cons_visual_write(char *buffer); R_API bool r_cons_is_utf8(void); +R_API bool r_cons_is_windows(void); R_API void r_cons_cmd_help(const char * help[], bool use_color); R_API void r_cons_log_stub(const char *output, const char *funcname, const char *filename, unsigned int lineno, unsigned int level, const char *tag, const char *fmtstr, ...) R_PRINTF_CHECK(7, 8); diff --git a/test/db/cmd/cmd_ag b/test/db/cmd/cmd_ag index 9674ba6f7c..f6c7276451 100644 --- a/test/db/cmd/cmd_ag +++ b/test/db/cmd/cmd_ag @@ -342,7 +342,7 @@ agraph.nodes.sym.imp.strlen.y=0x92 agraph.w=0x146 -() () () () () () () () () () () () -() () () () () () () +* * * * * * * * * * * * +* * * * * * * EOF RUN \ No newline at end of file