From e3ef5f652caade2de4e7d4630b24e4e76a651c72 Mon Sep 17 00:00:00 2001 From: pancake Date: Sun, 28 Sep 2014 03:53:59 +0200 Subject: [PATCH] Fix scr.highlight on !OSX --- libr/cons/cons.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libr/cons/cons.c b/libr/cons/cons.c index df916fa0a6..611c7ac12b 100644 --- a/libr/cons/cons.c +++ b/libr/cons/cons.c @@ -151,7 +151,7 @@ R_API int r_cons_enable_mouse (const int enable) { write (2, code, strlen (code)); } else { //r_cons_memcat ("\x1b[?1001r", 8); - const char *code = "\x1b[?1001r" "\x1b[?1000l\x1b[32m"; + const char *code = "\x1b[?1001r" "\x1b[?1000l"; write (2, code, strlen (code)); } return enabled; @@ -743,9 +743,15 @@ R_API void r_cons_zero() { R_API void r_cons_highlight (const char *word) { char *rword, *res; - free (I.highlight); if (word && *word) { - I.highlight = strdup (word); + if (I.highlight) { + if (strcmp (word, I.highlight)) { + free (I.highlight); + I.highlight = strdup (word); + } + } else { + I.highlight = strdup (word); + } rword = malloc (strlen (word)+32); strcpy (rword, "\x1b[7m"); strcpy (rword+4, word); @@ -756,6 +762,7 @@ R_API void r_cons_highlight (const char *word) { I.buffer_len = I.buffer_sz = strlen (res); } } else { + free (I.highlight); I.highlight = NULL; } }