From: Eli Zaretskii <eliz@gnu.org>
To: "Johan Bockgård" <bojohan@gnu.org>
Cc: 9771@debbugs.gnu.org
Subject: bug#9771: 24.0.90; Redisplay problems with control characters
Date: Mon, 17 Oct 2011 03:48:27 -0400 [thread overview]
Message-ID: <E1RFhvv-0002JH-Ql@fencepost.gnu.org> (raw)
In-Reply-To: <871uucr2w1.fsf@gnu.org> (message from Johan Bockgård on Mon, 17 Oct 2011 00:24:30 +0200)
> From: Johan Bockgård <bojohan@gnu.org>
> Date: Mon, 17 Oct 2011 00:24:30 +0200
>
> 2. (Old) problem in BUFFER_POS_REACHED_P
>
> The position hpos = 1 above is not just non-zero; it's also in the
> middle of the ^@ control character (the screen line starts with ^). It's
> produced by move_it_in_display_line_to:
>
> #define BUFFER_POS_REACHED_P() \
> [...]
> && (it->method == GET_FROM_BUFFER \
> || (it->method == GET_FROM_DISPLAY_VECTOR \
> && it->dpvec + it->current.dpvec_index + 1 >= it->dpend)))
>
> According to the condition above, the position in column 0 before the
> ^ glyph (dpvec_index = 0) is not a possible stop point, but the position
> between ^ and @ is.
Okay, but what is the practical problem with this?
> 3. Long lines with display vectors make Emacs really slow (with bidi)
It's not the display vectors in general that cause this. It's
specifically the display of control characters. E.g., the following
test case, which is a small variation of yours, shows no visible
slowdown:
emacs -Q
M-: (require 'disp-table) RET
M-: (aset standard-display-table ?x (vconcat "^A")) RET
C-u 2000 x
M-<
Type text...
I'll look into this, but is there some real-life use case behind your
recipe? Binary nulls in a file generally cause Emacs to make the
buffer unibyte, where bidi reordering is disabled. If some
optimizations are in order to speed up redisplay in this situation, it
would help to have a real-life use case handy, to make sure the
optimizations really make a difference.
The other parts of the report are more or less clear.
Btw, in the future please make a separate bug report for each issue,
it makes references to bugs in log messages more straightforward.
Thanks.
next prev parent reply other threads:[~2011-10-17 7:48 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-16 22:24 bug#9771: 24.0.90; Redisplay problems with control characters Johan Bockgård
2011-10-17 7:48 ` Eli Zaretskii [this message]
2011-10-17 14:18 ` Eli Zaretskii
2011-10-17 21:04 ` Johan Bockgård
2011-10-18 12:56 ` Eli Zaretskii
2011-10-18 16:58 ` Eli Zaretskii
2011-10-20 12:43 ` Eli Zaretskii
2011-10-19 1:06 ` Johan Bockgård
2011-10-19 11:49 ` Eli Zaretskii
2011-10-17 17:06 ` Eli Zaretskii
2011-10-17 19:16 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E1RFhvv-0002JH-Ql@fencepost.gnu.org \
--to=eliz@gnu.org \
--cc=9771@debbugs.gnu.org \
--cc=bojohan@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.