From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Mendler Newsgroups: gmane.emacs.bugs Subject: bug#47712: 27.1; Provide `string-display-width` function, which takes properties into account, `substring-width` Date: Mon, 12 Apr 2021 10:45:45 +0200 Message-ID: References: <642c8a37-31c7-2723-12af-06cd7f120c2f@daniel-mendler.de> <83r1jg2q72.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3610"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 47712@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Apr 12 10:46:32 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1lVsDI-0000qI-JQ for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 12 Apr 2021 10:46:32 +0200 Original-Received: from localhost ([::1]:56650 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lVsDH-0004ws-Iz for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 12 Apr 2021 04:46:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37228) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lVsCo-0004vS-El for bug-gnu-emacs@gnu.org; Mon, 12 Apr 2021 04:46:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:44855) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lVsCo-0004OZ-4q for bug-gnu-emacs@gnu.org; Mon, 12 Apr 2021 04:46:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lVsCo-0004vq-2z for bug-gnu-emacs@gnu.org; Mon, 12 Apr 2021 04:46:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Daniel Mendler Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 12 Apr 2021 08:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47712 X-GNU-PR-Package: emacs Original-Received: via spool by 47712-submit@debbugs.gnu.org id=B47712.161821715618638 (code B ref 47712); Mon, 12 Apr 2021 08:46:02 +0000 Original-Received: (at 47712) by debbugs.gnu.org; 12 Apr 2021 08:45:56 +0000 Original-Received: from localhost ([127.0.0.1]:56401 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lVsCi-0004qF-7v for submit@debbugs.gnu.org; Mon, 12 Apr 2021 04:45:56 -0400 Original-Received: from server.qxqx.de ([178.63.65.180]:35125 helo=mail.qxqx.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lVsCg-0004iv-AG for 47712@debbugs.gnu.org; Mon, 12 Apr 2021 04:45:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qxqx.de; s=mail1392553390; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=pKl1qI9zFf/mKrYwiucwlHpfmNjhbU1ljTUoyZhPZwQ=; b=ZbwxqYLXHwG8sDv95wdQBtEH4o 0YHyo031227ntIB+/FaqTZLcBPecxmjewFUwX6P5GBf8zxXsyfqOLhWvZsF0SgIQo8Mbiynm/a/dd a5DHaqX8VpAfJMvygnroqGSBAgvo/MJVtTUeXBfjPFucU/s3VM0Ch/eRZyWP94NAkE6s=; In-Reply-To: <83r1jg2q72.fsf@gnu.org> Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:203879 Archived-At: On 4/12/21 4:26 AM, Eli Zaretskii wrote: > We already have window-text-pixel-size; doesn't it fit the bill? If > not, why not? `window-text-pixel-size` computes the size of a portion of the window, it does not take a string argument. The function `string-width` instead takes a string argument returning the number of columns needed to display this string. This function is needed to compute widths of strings which are not yet displayed. `string-display-width` is a proposed function which takes properties into account as `window-text-pixel-size` does, but without going through the display system first. Instead it computes the `string-width` of a flattened string, where the invisible parts have been removed and the displayed parts have been replaced. Orgmode uses its incarnation of `string-display-width`, `org-string-width`, for formatting its tables (see org-table.el). The width computation is performed before displaying the strings in the window. `substring-width` is a proposed generalization of `string-width` which allows computation of the width of a substring, without requiring the allocation of a substring. `string-display-width` or `substring-display-width` can be implemented based on `string-width` or `substring-width`, with`substring-width` being advantageous since it does not require the substring allocation.