From 96c805261fc920d329e7ef56d1cd1586161c3c3b Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Sun, 28 Oct 2018 23:47:48 +0900 Subject: [PATCH] DiffTextBuffer.cpp: Impletement 'TODO: speed this up via table lookup' --- Src/DiffTextBuffer.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Src/DiffTextBuffer.cpp b/Src/DiffTextBuffer.cpp index 21fab1c24..44150c737 100644 --- a/Src/DiffTextBuffer.cpp +++ b/Src/DiffTextBuffer.cpp @@ -84,9 +84,8 @@ static void EscapeControlChars(String &s) // Is it a control character in the range 0..31 except TAB? if (!(c & ~_T('\x1F')) && c != _T('\t')) { - // TODO: speed this up via table lookup - // Bitwise OR with 0x100 so _itot_s() will output 3 hex digits - _itot_s(0x100 | c, p + n - 4, 4, 16); + p[n - 4 + 1] = _T("0123456789ABCDEF")[(c >> 4) & 0xf]; + p[n - 4 + 2] = _T("0123456789ABCDEF")[c & 0xf]; // Replace terminating zero with leadout character p[n - 1] = _T('\\'); // Prepare to replace 1st hex digit with leadin character -- 2.11.0