unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Bidirectional display in GUI sessions
@ 2010-04-20 13:53 Eli Zaretskii
  2010-04-20 16:19 ` Stefan Monnier
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2010-04-20 13:53 UTC (permalink / raw)
  To: emacs-devel; +Cc: emacs-bidi

I have committed to the Emacs development trunk revno 99950, which
adds implementation of bidirectional display in GUI sessions (as well
as a few fixes for display of R2L lines on TTYs).

I could only test this on MS-Windows; I have no easy access for
development on an X-based machine.  Fortunately, with the exception of
one function, all the code is in terminal-independent parts of Emacs
display engine, so it should work (or break ;-) the same on any type
of display.

I hope I didn't break anything in non-bidi sessions.  All the changes
are conditioned on variables that are not set unless you set
bidi-display-reordering non-nil.  But I was wrong about this in the
past...

Last, but certainly not least: Thanks to Gerd Möllmann for his kind
guidance and advice which was instrumental in making this happen.
Without his help, I would never have found such a simple and elegant
solution for implementing this feature, being quite ignorant about
internals of the Emacs GUI display.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bidirectional display in GUI sessions
  2010-04-20 13:53 Bidirectional display in GUI sessions Eli Zaretskii
@ 2010-04-20 16:19 ` Stefan Monnier
  2010-04-20 17:42   ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2010-04-20 16:19 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-bidi, emacs-devel

> I have committed to the Emacs development trunk revno 99950, which
> adds implementation of bidirectional display in GUI sessions (as well
> as a few fixes for display of R2L lines on TTYs).

Thanks.

> I could only test this on MS-Windows; I have no easy access for
> development on an X-based machine.

Sad to hear.  Is there something we could do to fix this problem?

> Fortunately, with the exception of one function, all the code is in
> terminal-independent parts of Emacs display engine, so it should work
> (or break ;-) the same on any type of display.

Famout last words.

> I hope I didn't break anything in non-bidi sessions.  All the changes
> are conditioned on variables that are not set unless you set
> bidi-display-reordering non-nil.  But I was wrong about this in the
> past...

BTW, I'm now running with (setq-default bidi-display-reordering t) and
I recommend everyone do the same to help find bugs in that code.

> Last, but certainly not least: Thanks to Gerd Möllmann for his kind
> guidance and advice which was instrumental in making this happen.
> Without his help, I would never have found such a simple and elegant
> solution for implementing this feature, being quite ignorant about
> internals of the Emacs GUI display.

Would it be possible to document the design/insight of this solution
somewhere?  I.e. distill what you learned from Gerd, so it might help
other people get a deeper understanding of the workings and design of
the redisplay code.


        Stefan




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bidirectional display in GUI sessions
  2010-04-20 16:19 ` Stefan Monnier
@ 2010-04-20 17:42   ` Eli Zaretskii
  2010-04-20 19:09     ` Juanma Barranquero
                       ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Eli Zaretskii @ 2010-04-20 17:42 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-bidi, emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org,  emacs-bidi@gnu.org
> Date: Tue, 20 Apr 2010 12:19:00 -0400
> 
> > I have committed to the Emacs development trunk revno 99950, which
> > adds implementation of bidirectional display in GUI sessions (as well
> > as a few fixes for display of R2L lines on TTYs).
> 
> Thanks.

The pleasure is all mine.

> > I could only test this on MS-Windows; I have no easy access for
> > development on an X-based machine.
> 
> Sad to hear.  Is there something we could do to fix this problem?

I'm not sure it would be practical.  I could install an X server for
Windows, but I don't think we can trust it to be a faithful imitation
of a native X server.  And I don't have enough resources for
maintaining yet another box at home.

> BTW, I'm now running with (setq-default bidi-display-reordering t) and
> I recommend everyone do the same to help find bugs in that code.

Yes, please do.  The display engine has so many features that it is
virtually impossible for a single individual to test them.

Wider usage of the bidi display will also provide clear guidance for
me which missing features to work on first (those about which I will
hear more complaints ;-).

> > Last, but certainly not least: Thanks to Gerd Möllmann for his kind
> > guidance and advice which was instrumental in making this happen.
> > Without his help, I would never have found such a simple and elegant
> > solution for implementing this feature, being quite ignorant about
> > internals of the Emacs GUI display.
> 
> Would it be possible to document the design/insight of this solution
> somewhere?

Didn't you see the improved commentary at the beginning of xdisp.c,
since revno 99943?  It does tell how R2L lines are displayed, among
other things I added there.

Let me know if I need to make the description more detailed or more
clear.  That includes bidi.c, of course.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bidirectional display in GUI sessions
  2010-04-20 17:42   ` Eli Zaretskii
@ 2010-04-20 19:09     ` Juanma Barranquero
  2010-04-21  0:14     ` Stephen J. Turnbull
  2010-04-21  5:29     ` "Martin J. Dürst"
  2 siblings, 0 replies; 6+ messages in thread
From: Juanma Barranquero @ 2010-04-20 19:09 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-bidi, Stefan Monnier, emacs-devel

On Tue, Apr 20, 2010 at 19:42, Eli Zaretskii <eliz@gnu.org> wrote:

> I'm not sure it would be practical.  I could install an X server for
> Windows, but I don't think we can trust it to be a faithful imitation
> of a native X server.  And I don't have enough resources for
> maintaining yet another box at home.

Depending on the kind of hardware you have at home, you could run
GNU/Linux inside a virtual machine; I run K?Ubuntu on VMWare; it's
slower than the real thing, but acceptable.

    Juanma




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bidirectional display in GUI sessions
  2010-04-20 17:42   ` Eli Zaretskii
  2010-04-20 19:09     ` Juanma Barranquero
@ 2010-04-21  0:14     ` Stephen J. Turnbull
  2010-04-21  5:29     ` "Martin J. Dürst"
  2 siblings, 0 replies; 6+ messages in thread
From: Stephen J. Turnbull @ 2010-04-21  0:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-bidi, Stefan Monnier, emacs-devel

Eli Zaretskii writes:

 > I'm not sure it would be practical.  I could install an X server for
 > Windows, but I don't think we can trust it to be a faithful imitation
 > of a native X server.

True, but IIRC Cygwin provides one; if it's the one I used to use,
it's not that bad.  So, if you see display artifacts here you have to
wonder.  But that's what we have emacs-devel for, no?

    Eli-to-emacs-devel: "I see a glitch on X."
    Emacs-devel-to-Eli: "We don't.  Get a real X server!"
    Eli-to-self: "OK, this one isn't my problem."

Whether you want to go to that effort is up to you of course.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Re: Bidirectional display in GUI sessions
  2010-04-20 17:42   ` Eli Zaretskii
  2010-04-20 19:09     ` Juanma Barranquero
  2010-04-21  0:14     ` Stephen J. Turnbull
@ 2010-04-21  5:29     ` "Martin J. Dürst"
  2 siblings, 0 replies; 6+ messages in thread
From: "Martin J. Dürst" @ 2010-04-21  5:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-bidi, Stefan Monnier, emacs-devel



On 2010/04/21 2:42, Eli Zaretskii wrote:
>> From: Stefan Monnier<monnier@iro.umontreal.ca>

>>> I could only test this on MS-Windows; I have no easy access for
>>> development on an X-based machine.
>>
>> Sad to hear.  Is there something we could do to fix this problem?
>
> I'm not sure it would be practical.  I could install an X server for
> Windows, but I don't think we can trust it to be a faithful imitation
> of a native X server.  And I don't have enough resources for
> maintaining yet another box at home.

I have to admit that I haven't gotten around on my (Windows :-( machine 
to install an X server, but what I would do is to install cygwin and the 
X server that comes with it. My rough guess is that this would be pretty 
close to what happens on other systems.

Regards,   Martin.

-- 
#-# Martin J. Dürst, Professor, Aoyama Gakuin University
#-# http://www.sw.it.aoyama.ac.jp   mailto:duerst@it.aoyama.ac.jp

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-04-21  5:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-20 13:53 Bidirectional display in GUI sessions Eli Zaretskii
2010-04-20 16:19 ` Stefan Monnier
2010-04-20 17:42   ` Eli Zaretskii
2010-04-20 19:09     ` Juanma Barranquero
2010-04-21  0:14     ` Stephen J. Turnbull
2010-04-21  5:29     ` "Martin J. Dürst"

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).