unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Richard Stallman <rms@gnu.org>
Cc: monnier+gnu/emacs@rum.cs.yale.edu, emacs-devel@gnu.org
Subject: Re: init_iterator takes window
Date: Sat, 24 Aug 2002 23:26:54 -0600 (MDT)	[thread overview]
Message-ID: <200208250526.g7P5Qsr12044@wijiji.santafe.edu> (raw)
In-Reply-To: <jky9axbdy1.fsf@glug.org> (message from Thien-Thi Nguyen on 23 Aug 2002 14:57:42 -0400)

       appearance can also change between two windows even
       in the same frame.

    so there is a semantic gap between current `current-column' and one that
    would take into account variable-width fonts, implying `current-column'
    callers need to bifurcate their usage to call some "window-current-column"
    if they care about variable-width fonts, and `current-column' otherwise.

current-column is not affected at present by the selected window, and
that may be a good thing--but it is not a crucial design requirement.
It was easy to do this, because current-column at present does not
crucially need any data from the selected window.

With the changes for variable width, it would make sense to
get all this info from the selected window.

    Even in Emacs-20 the `current-column' depends on the window
    because of window-specific overlays that might make some part
    of the buffer invisible in one window but not in another.

Actually it seems to ignore those overlays, because it calls
skip_invisible with Qnil for the WINDOW arg.

    to rms: could you define precisely what is meant by "upward compatibility"
    wrt `current-column' *usage*?  to fulfill that goal i need to understand
    the concept fully, including from caller perspective.

Upward compatibility means, here, that existing user programs that
call current-column and other primitives should DTRT (as much as
possible) in cases with variable width fonts, when they use the new
version of current-column that handles variable width.  Clearly we
can't make all of these programs DTRT just by changing current-column
and other primitives.  The point is that the proper way to change the
primitives is the way that achieves the largest portion of that goal.

It may be that it would be desirable to have a form of current-column
that assumes fixed-width, as well as the new one that calculates based
on variable width fonts.  After your new version is working, we will
see if that is needed.

  parent reply	other threads:[~2002-08-25  5:26 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-23  6:18 init_iterator takes window Thien-Thi Nguyen
2002-08-23 17:57 ` Stefan Monnier
2002-08-23 18:57   ` Thien-Thi Nguyen
2002-08-23 19:12     ` Stefan Monnier
2002-08-23 19:29       ` Thien-Thi Nguyen
2002-08-25  5:26     ` Richard Stallman [this message]
2002-08-25  5:26 ` Richard Stallman

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=200208250526.g7P5Qsr12044@wijiji.santafe.edu \
    --to=rms@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier+gnu/emacs@rum.cs.yale.edu \
    /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).