From 9b14115ff2a497439ea56b42c9a81a192067ec58 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Fri, 28 Apr 2017 22:15:25 +0200 Subject: Escaped some characters as needed when building tooltips. --- ChangeLog | 5 +++++ src/arch/immediate.c | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d8c2850..cb6fff4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,11 @@ 17-04-28 Cyrille Bagard * src/arch/immediate.c: + Escape some characters as needed when building tooltips. + +17-04-28 Cyrille Bagard + + * src/arch/immediate.c: RTFM to avoid segfaults when calling isprint(). 17-04-27 Cyrille Bagard diff --git a/src/arch/immediate.c b/src/arch/immediate.c index 18c798d..88426de 100644 --- a/src/arch/immediate.c +++ b/src/arch/immediate.c @@ -1124,7 +1124,22 @@ static char *g_imm_operand_build_tooltip(const GImmOperand *operand, const GLoad char *conv; /* Affichage de la Conversion */ if (operand->raw <= UCHAR_MAX && isprint(operand->raw)) - asprintf(&result, _("Character: '%c'"), (char)operand->raw); + switch (operand->raw) + { + case '&': + asprintf(&result, _("Character: '&'")); + break; + case '<': + asprintf(&result, _("Character: '<'")); + break; + case '>': + asprintf(&result, _("Character: '>'")); + break; + default: + asprintf(&result, _("Character: '%c'"), (char)operand->raw); + break; + } + else asprintf(&result, _("Character: <not printable>")); -- cgit v0.11.2-87-g4458