unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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.





  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

  List information: https://www.gnu.org/software/emacs/

* 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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).