about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Rooijakkers <thomas.rooijakkers@tno.nl>2023-09-13 15:49:04 +0200
committerThomas Rooijakkers <thomas.rooijakkers@tno.nl>2023-09-13 15:49:04 +0200
commit0b6e74eeb099ac045932e5d3603af899268b48d0 (patch)
tree649e85f5fde2189de3d7d540f23a17e635d87ec8
parent748d417f86d2d2a290c43428fd40ce616afcfc95 (diff)
downloadafl++-0b6e74eeb099ac045932e5d3603af899268b48d0.tar.gz
Add support for UTF-8 line rendering
-rw-r--r--GNUmakefile5
-rw-r--r--docs/INSTALL.md1
-rw-r--r--include/debug.h81
3 files changed, 57 insertions, 30 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 88816e85..4a234c51 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -45,6 +45,10 @@ ifdef NO_SPLICING
   override CFLAGS_OPT += -DNO_SPLICING
 endif
 
+ifdef UTF
+  override CFLAGS_OPT += -DFANCY_BOXES_UTF
+endif
+
 ifdef ASAN_BUILD
   $(info Compiling ASAN version of binaries)
   override CFLAGS += $(ASAN_CFLAGS)
@@ -391,6 +395,7 @@ help:
 	@echo INTROSPECTION - compile afl-fuzz with mutation introspection
 	@echo NO_PYTHON - disable python support
 	@echo NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for normal fuzzing
+	@echo UTF - use UTF-8 for line rendering in status screen
 	@echo NO_NYX - disable building nyx mode dependencies
 	@echo "NO_CORESIGHT - disable building coresight (arm64 only)"
 	@echo NO_UNICORN_ARM64 - disable building unicorn on arm64
diff --git a/docs/INSTALL.md b/docs/INSTALL.md
index 9005a7eb..7c04d7d8 100644
--- a/docs/INSTALL.md
+++ b/docs/INSTALL.md
@@ -87,6 +87,7 @@ These build options exist:
 * INTROSPECTION - compile afl-fuzz with mutation introspection
 * NO_PYTHON - disable python support
 * NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for normal fuzzing
+* UTF - use UTF-8 for line rendering in status screen
 * NO_NYX - disable building nyx mode dependencies
 * NO_CORESIGHT - disable building coresight (arm64 only)
 * NO_UNICORN_ARM64 - disable building unicorn on arm64
diff --git a/include/debug.h b/include/debug.h
index cd621a72..a9179329 100644
--- a/include/debug.h
+++ b/include/debug.h
@@ -116,42 +116,63 @@
  * Box drawing sequences *
  *************************/
 
-#ifdef FANCY_BOXES
-
-  #define SET_G1 "\x1b)0"                      /* Set G1 for box drawing    */
-  #define RESET_G1 "\x1b)B"                    /* Reset G1 to ASCII         */
-  #define bSTART "\x0e"                        /* Enter G1 drawing mode     */
-  #define bSTOP "\x0f"                         /* Leave G1 drawing mode     */
-  #define bH "q"                               /* Horizontal line           */
-  #define bV "x"                               /* Vertical line             */
-  #define bLT "l"                              /* Left top corner           */
-  #define bRT "k"                              /* Right top corner          */
-  #define bLB "m"                              /* Left bottom corner        */
-  #define bRB "j"                              /* Right bottom corner       */
-  #define bX "n"                               /* Cross                     */
-  #define bVR "t"                              /* Vertical, branch right    */
-  #define bVL "u"                              /* Vertical, branch left     */
-  #define bHT "v"                              /* Horizontal, branch top    */
-  #define bHB "w"                              /* Horizontal, branch bottom */
-
-#else
+#ifdef FANCY_BOXES_UTF
 
   #define SET_G1 ""
   #define RESET_G1 ""
   #define bSTART ""
   #define bSTOP ""
-  #define bH "-"
-  #define bV "|"
-  #define bLT "+"
-  #define bRT "+"
-  #define bLB "+"
-  #define bRB "+"
-  #define bX "+"
-  #define bVR "+"
-  #define bVL "+"
-  #define bHT "+"
-  #define bHB "+"
+  #define bH "\u2500"                          /* Horizontal line           */
+  #define bV "\u2502"                          /* Vertical line             */
+  #define bLT "\u250c"                         /* Left top corner           */
+  #define bRT "\u2510"                         /* Right top corner          */
+  #define bLB "\u2514"                         /* Left bottom corner        */
+  #define bRB "\u2518"                         /* Right bottom corner       */
+  #define bX "\u253c"                          /* Cross                     */
+  #define bVR "\u251c"                         /* Vertical, branch right    */
+  #define bVL "\u2524"                         /* Vertical, branch left     */
+  #define bHT "\u2534"                         /* Horizontal, branch top    */
+  #define bHB "\u252c"                         /* Horizontal, branch bottom */
+
+#else
 
+  #ifdef FANCY_BOXES
+
+    #define SET_G1 "\x1b)0"                    /* Set G1 for box drawing    */
+    #define RESET_G1 "\x1b)B"                  /* Reset G1 to ASCII         */
+    #define bSTART "\x0e"                      /* Enter G1 drawing mode     */
+    #define bSTOP "\x0f"                       /* Leave G1 drawing mode     */
+    #define bH "q"                             /* Horizontal line           */
+    #define bV "x"                             /* Vertical line             */
+    #define bLT "l"                            /* Left top corner           */
+    #define bRT "k"                            /* Right top corner          */
+    #define bLB "m"                            /* Left bottom corner        */
+    #define bRB "j"                            /* Right bottom corner       */
+    #define bX "n"                             /* Cross                     */
+    #define bVR "t"                            /* Vertical, branch right    */
+    #define bVL "u"                            /* Vertical, branch left     */
+    #define bHT "v"                            /* Horizontal, branch top    */
+    #define bHB "w"                            /* Horizontal, branch bottom */
+
+  #else
+
+    #define SET_G1 ""
+    #define RESET_G1 ""
+    #define bSTART ""
+    #define bSTOP ""
+    #define bH "-"
+    #define bV "|"
+    #define bLT "+"
+    #define bRT "+"
+    #define bLB "+"
+    #define bRB "+"
+    #define bX "+"
+    #define bVR "+"
+    #define bVL "+"
+    #define bHT "+"
+    #define bHB "+"
+
+  #endif
 #endif                                                      /* ^FANCY_BOXES */
 
 /***********************