From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: line-start? Date: Fri, 07 Feb 2020 12:24:37 +0200 Message-ID: <83zhduelui.fsf@gnu.org> References: <87ftfof1xl.fsf@gnu.org> <877e0zrhud.fsf@gnu.org> <83o8ubfu9l.fsf@gnu.org> <87v9oiucdn.fsf@bzg.fr> <838sleg3d6.fsf@gnu.org> <87lfpe7lmk.fsf@bzg.fr> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="96366"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Bastien Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Feb 07 11:26:37 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1j00qL-000Oys-Ly for ged-emacs-devel@m.gmane-mx.org; Fri, 07 Feb 2020 11:26:37 +0100 Original-Received: from localhost ([::1]:53586 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j00qK-0006LU-PO for ged-emacs-devel@m.gmane-mx.org; Fri, 07 Feb 2020 05:26:36 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48915) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j00ol-0003W1-Us for emacs-devel@gnu.org; Fri, 07 Feb 2020 05:25:00 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:39064) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1j00ol-0004w1-QJ for emacs-devel@gnu.org; Fri, 07 Feb 2020 05:24:59 -0500 Original-Received: from [176.228.60.248] (port=1825 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1j00oj-00021R-WC; Fri, 07 Feb 2020 05:24:58 -0500 In-reply-to: <87lfpe7lmk.fsf@bzg.fr> (message from Bastien on Fri, 07 Feb 2020 11:11:15 +0100) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:244891 Archived-At: > From: Bastien > Cc: emacs-devel@gnu.org > Date: Fri, 07 Feb 2020 11:11:15 +0100 > > Eli Zaretskii writes: > > > Once again, window-hscroll just returns the number of columns by which > > the window is hscrolled, it doesn't return the buffer position. For > > example, window-hscroll will return the same value for each line in > > the window, although the buffer position of the beginning of each line > > is different. Are you looking for columns or for buffer positions? > > I was looking for columns. Then (nth 1) of what posn-at-x-y returns is not what you want. You should use the (car (nth 6)) instead. > The use case was this one: given a line, display the content of this > line in the header line. When horizontally scrolled, the header has > to display a substring of the line under the cursor, something like > (substring (current-line-string) offset-in-columns). But using the buffer position, you could use buffer-substring instead, right? > (defun window-line-start (&optional pos window) > "Return the position of the visual start of the line. > POS defaults to point in WINDOW; WINDOW defaults to the current window." > (nth 1 (posn-at-x-y > 0 (+ (cdr (posn-x-y (posn-at-point pos window))) > (- (nth 1 (window-edges nil t nil t)) > (nth 1 (window-edges nil nil nil t))))))) > > My use-case is gone, I went with overlays instead of the header line. > > But I guess `window-line-start' could perhaps be useful to others. Maybe.