emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: compute-motion inconsistency


From: Kim F. Storm
Subject: Re: compute-motion inconsistency
Date: 23 Jul 2004 14:56:32 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

David Kastrup <address@hidden> writes:

> address@hidden (Kim F. Storm) writes:
> > 
> > IIRC, the ones which do this correctly (the second category) I
> > have fixed myself while working on redisplay over the past years.
> 
> I somewhat doubt that they do this correctly.  I think that things
> differ again if one customizes the fringes off.

Well, if you configure the fringes off, you don't get any continuation
or truncation glyphs on window based display.  Tough!

I thought about ways to recognize this, but the window based redisplay
code does not handle continuation/truncation glyphs, so it's a bit
tricky, and I decided against using (my) time on this.

I suggest to let the people who turn off the fringes:
 a) accept these inconveniences,
 b) implement this themselves.

> 
> In my opinion, it is a complete mistake not to leave the continuation
> glyph mess actually to compute-motion itself as soon as the WINDOW
> parameter is actually present.

Actually, that's what I suggested to do.

> 
> > For backwards compatibility, I suggest the following change to
> > compute-motion:
> > 
> > If "width" equals (1- (window-width)) on a window system,
> > automatically use (window-width) instead.
> > 
> > If "width" equals (window-width) on a non-window system,
> > automatically subtract 1 (for the continuation glyph).
> 
> That's not "compatibility", that is madness.  I don't think that this
> sort of change, which makes things utterly incomprehensible and
> unpredictable for the sake of some backward compatibility idea, is
> warranted.

So your "solution" is to do the following:

If "width" equals (1- (window-width)) on a window system, use that.
[This behave incorrectly, as it does now].

If "width" equals (window-width) on a window system, use that.
[This is what I suggusted to do].

If "width" equals (window-width) on a non-window system,
automatically subtract 1 (for the continuation glyph).
[This is what I suggusted to do].

If "width" equals (1- (window-width)) on a non-window system,
automatically subtract 1 (for the continuation glyph).
[This will behave incorrectly, whereas it work correctly now,
and is the documented required parameter].


So where my suggested "madness" behaves correctly for all 4
cases, your change will fix one case, leave one case unsolved,
and break one case -- the very case that was previously
documented as the required parameter value.

Maybe that's not madness in your book, but it definitely is
not "compatibility" in my book.
 
> I prefer an incompatible change where just window-width can be used,
> always.  We had inconsistent behavior and usage before, tough.

I don't prefer any specific solution -- that's why I asked: 

WDYT?

-- 
Kim F. Storm <address@hidden> http://www.cua.dk





reply via email to

[Prev in Thread] Current Thread [Next in Thread]