[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-zile] [PATCH] term: optimise make_char_printable for ASCII
From: |
Reuben Thomas |
Subject: |
Re: [Bug-zile] [PATCH] term: optimise make_char_printable for ASCII |
Date: |
Tue, 13 Dec 2011 11:48:05 +0000 |
What about EBCDIC? (Theoretically, Zile ought to be fine on any 8-bit
character set.)
On 13 December 2011 05:32, Gary V. Vaughan <address@hidden> wrote:
> Since this code already assumes ASCII in that \01 through \032 will
> map to A-Z contiguously, we can optimise it some more for \0 and \033
> which are in the same range.
>
> Okay to push?
>
> In ASCII, `@' precedes 'A' and '[' follows 'Z', so there's no need
> to make additional checks just outside the A-Z range for printing
> `^@' (\0) and `^[' (\033).
> * term_redisplay.c (make_char_printable): Save some comparisons
> and a subtraction in the inner display loop when determining the
> display string for non-printable characters.
> ---
> src/term_redisplay.c | 8 ++------
> 1 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/src/term_redisplay.c b/src/term_redisplay.c
> index a133913..dd24779 100644
> --- a/src/term_redisplay.c
> +++ b/src/term_redisplay.c
> @@ -35,12 +35,8 @@ make_char_printable (char c, int x, int cur_tab_width)
> {
> if (c == '\t')
> return xasprintf ("%*s", cur_tab_width - x % cur_tab_width, "");
> - if (c == '\0')
> - return "^@";
> - else if (c > 0 && c <= '\32')
> - return xasprintf ("^%c", 'A' + c - 1);
> - else if (c == '\33')
> - return "^[";
> + if (c >= 0 && c <= '\33')
> + return xasprintf ("^%c", '@' + c);
> else
> return xasprintf ("\\%o", c & 0xff);
> }
> --
> 1.7.8
>
> Cheers,
> --
> Gary V. Vaughan (gary AT gnu DOT org)
>
--
http://rrt.sc3d.org