From: Eli Zaretskii <eliz@gnu.org>
To: David Kastrup <dak@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: `C-b' is backward-char, `left' is left-char - why?
Date: Tue, 07 Jun 2011 13:54:17 +0300 [thread overview]
Message-ID: <83d3ipdi92.fsf@gnu.org> (raw)
In-Reply-To: <874o42yqgu.fsf@fencepost.gnu.org>
> From: David Kastrup <dak@gnu.org>
> Date: Tue, 07 Jun 2011 10:51:13 +0200
>
> I have thought about it, and I guess the key point is ambiguity of
> cursor display. The cursor is usually displayed just after the last
> inserted character. Which means to the left in R2L contexts, and to the
> right in L2R contexts. For a vertical cursor between characters, this
> means that
>
> LLLL^RRRR
>
> is ambiguous: we are either at the end of the LLLL passage, or at the
> end of the RRRR passage.
Right. As I wrote, there are two places on the screen where we could
display the cursor in these cases, and TRT would be to display
something in each one of them. It would also make sense to make the
whole range of characters between these two spots stand out in color
or something.
There's some discussion of these issues here:
http://www-01.ibm.com/software/globalization/topics/bidiui/index.jsp
> I think what is needed in this particular case is a virtual fill
> character (perhaps the direction switch glyph, but displayed with a
> different face?) at the insertion point when we are inserting in reverse
> paragraph direction and the cursor would be displayed on a forward
> paragraph character (including newline), not logically adjacent to the
> insertion point. Either that, or generally switch cursor type for
> reverse direction insertion, so that one knows whether one has an L2R or
> R2L facing cursor.
Sorry, I don't understand the details of your proposals. It would
help if you show some pictures. (What are "direction switch glyph"
and "forward paragraph character"? what "cursor type" do you want to
switch to? etc.)
> > Actually, TRT would be to split the cursor in two, because it plays
> > two different roles whose correct positions in this case do not
> > coincide.
>
> They diverge only on borders between L2R and R2L, and a virtual padding
> like described above gives the cursor a buffer that allows it to never
> split.
IIUC, your "virtual padding" is just one possible implementation of a
split cursor. But what does "gives the cursor a buffer" mean?
> > That would need an even deeper surgery, including in terminal-specific
> > parts -- xterm.c, w32term.c, etc. And what to do on a TTY with its
> > hardware cursor?
>
> The virtual padding approach should work on a tty since it requires only
> one cursor to display.
Maybe I'll agree once I understand what you propose. Right now, I
cannot judge if everything you propose can work on a TTY. In any
case, the redisplay interface for displaying the cursor would need to
change, because we will now compute 2 locations, not 1.
next prev parent reply other threads:[~2011-06-07 10:54 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-27 20:40 `C-b' is backward-char, `left' is left-char - why? Drew Adams
2011-05-27 20:48 ` Pascal J. Bourguignon
2011-05-27 21:11 ` Eli Zaretskii
2011-05-27 22:08 ` Drew Adams
2011-05-28 0:19 ` Nix
2011-05-27 21:09 ` Eli Zaretskii
2011-05-27 21:13 ` Eli Zaretskii
2011-05-27 22:08 ` Drew Adams
2011-05-27 22:23 ` Antoine Levitt
2011-05-27 23:19 ` Drew Adams
2011-05-28 0:46 ` Mohsen BANAN
2011-05-28 1:53 ` Drew Adams
2011-05-28 2:24 ` Mohsen BANAN
2011-05-28 8:00 ` Eli Zaretskii
2011-05-27 23:09 ` PJ Weisberg
2011-05-27 23:23 ` Drew Adams
2011-05-28 0:25 ` PJ Weisberg
2011-05-28 0:39 ` Drew Adams
2011-05-28 6:57 ` David Kastrup
2011-05-28 8:21 ` Eli Zaretskii
2011-05-28 0:48 ` Stefan Monnier
2011-05-28 1:54 ` Drew Adams
2011-05-28 7:07 ` David Kastrup
2011-05-28 8:26 ` Eli Zaretskii
2011-05-30 3:57 ` Stefan Monnier
2011-05-31 14:18 ` Davis Herring
2011-05-31 14:39 ` Eli Zaretskii
2011-06-01 11:48 ` Andy Moreton
2011-06-01 13:23 ` Eli Zaretskii
2011-06-01 23:26 ` Andy Moreton
2011-06-02 4:37 ` Eli Zaretskii
2011-06-02 10:38 ` Andy Moreton
2011-06-02 11:12 ` Eli Zaretskii
2011-06-02 12:59 ` Andy Moreton
2011-06-02 15:09 ` Eli Zaretskii
2011-06-02 16:23 ` Andy Moreton
2011-06-02 17:43 ` Eli Zaretskii
2011-06-02 21:42 ` Andy Moreton
2011-06-03 7:01 ` Eli Zaretskii
2011-06-02 17:09 ` David Kastrup
2011-06-02 18:05 ` Eli Zaretskii
2011-06-03 14:35 ` David Kastrup
2011-06-03 15:08 ` Eli Zaretskii
2011-06-03 15:14 ` David Kastrup
2011-06-03 16:48 ` Eli Zaretskii
2011-06-03 20:56 ` David Kastrup
2011-06-04 6:28 ` Eli Zaretskii
2011-06-05 16:51 ` Ehud Karni
2011-06-05 17:10 ` Eli Zaretskii
2011-06-05 17:19 ` Ehud Karni
2011-06-05 17:26 ` David Kastrup
2011-06-05 17:44 ` Eli Zaretskii
2011-06-05 18:26 ` David Kastrup
2011-06-05 19:22 ` Eli Zaretskii
2011-06-07 8:51 ` David Kastrup
2011-06-07 10:54 ` Eli Zaretskii [this message]
2011-06-02 15:35 ` PJ Weisberg
2011-06-02 17:44 ` Eli Zaretskii
2011-06-02 19:29 ` PJ Weisberg
2011-06-02 21:10 ` Eli Zaretskii
2011-06-03 0:47 ` Kenichi Handa
2011-06-03 7:13 ` Eli Zaretskii
2011-06-05 11:27 ` Kenichi Handa
2011-06-05 13:04 ` Eli Zaretskii
2011-06-02 7:23 ` David Kastrup
2011-06-02 8:59 ` 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=83d3ipdi92.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=dak@gnu.org \
--cc=emacs-devel@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).