From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: (pos-visible-in-window-p t nil t) returns wrong position/is suboptimally documented. Date: Wed, 30 Sep 2015 10:22:31 +0000 Message-ID: <20150930102231.GB6672@acm.fritz.box> References: <20150927104041.GA2401@acm.fritz.box> <8337y0f7es.fsf@gnu.org> <83twqcbcem.fsf@gnu.org> <20150930085611.GA6672@acm.fritz.box> <83lhbob6bs.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1443681161 32627 80.91.229.3 (1 Oct 2015 06:32:41 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 1 Oct 2015 06:32:41 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 01 08:32:33 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZhXPs-0001NC-6b for ged-emacs-devel@m.gmane.org; Thu, 01 Oct 2015 08:32:32 +0200 Original-Received: from localhost ([::1]:38576 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhXPr-0003TM-I1 for ged-emacs-devel@m.gmane.org; Thu, 01 Oct 2015 02:32:31 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34200) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhEVZ-0006JD-AY for emacs-devel@gnu.org; Wed, 30 Sep 2015 06:21:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZhEVW-0001wu-7e for emacs-devel@gnu.org; Wed, 30 Sep 2015 06:21:09 -0400 Original-Received: from mail.muc.de ([193.149.48.3]:54919) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhEVV-0001wf-UR for emacs-devel@gnu.org; Wed, 30 Sep 2015 06:21:06 -0400 Original-Received: (qmail 43089 invoked by uid 3782); 30 Sep 2015 10:21:03 -0000 Original-Received: from acm.muc.de (p5B147BA3.dip0.t-ipconnect.de [91.20.123.163]) by colin.muc.de (tmda-ofmipd) with ESMTP; Wed, 30 Sep 2015 12:21:03 +0200 Original-Received: (qmail 17096 invoked by uid 1000); 30 Sep 2015 10:22:31 -0000 Content-Disposition: inline In-Reply-To: <83lhbob6bs.fsf@gnu.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-Delivery-Agent: TMDA/1.1.12 (Macallan) X-Primary-Address: acm@muc.de X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x X-Received-From: 193.149.48.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:190512 Archived-At: Hello, Eli. On Wed, Sep 30, 2015 at 12:32:39PM +0300, Eli Zaretskii wrote: > > Date: Wed, 30 Sep 2015 08:56:11 +0000 > > Cc: emacs-devel@gnu.org > > From: Alan Mackenzie > > "If POSITION is `t', that means to check the first visible position > > of the last visible screen line in WINDOW." > > doesn't seem quite right. If the text in the window is scrolled such > > that EOB is in the middle of the window, POSITION t gives the > > coordinates of the last line containing text, not the last visible > > screen line. > You mean, it isn't clear that "screen line" means line with text? I > could add "with text" if that's the issue (I thought it was obvious). > > How about something like: > > "If POSITION is `t', that means to check the first visible position > > of the last visible screen line in WINDOW which is at or above the > > end of the window's buffer." > Too complex, IMO. It took me 4 readings to understand what you mean, > and that's _after_ I've read the description of the situation you were > taking about. > > However 2: I think there's a bug in the functionality, too. If there is > > o - a text buffer > > o - with no terminating LF on its last line, and > > o - that last line is above the window's last line > > then (pos-visible-in-window t nil t) returns the coordinates of the last > > lines's EOL. This is the case in both a Linux virtual terminal and an X > > windows session. > It's not a bug. If you think it's important to mention this marginal > use case, I can add that, too. OK, it's deliberate. It's a touch puzzling, though. I should grep the elisp sources to find out what it's for. I do think it should be mentioned in the doc, even if only for preventing somebody like me raising a spurious bug report in the future. How about expressing the piece of documentation as: "If POSITION is `t', that means to check the position the first visible position of the last visible screen line with text in WINDOW; but if the end of the window's buffer is on the window, this position is used instead." ? It's a bit convoluted, but then again, the function isn't simple either. -- Alan Mackenzie (Nuremberg, Germany).