[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#48148: 27.2; ox-ascii breaks TITLE line wrongly when 2 width char is
From: |
Shingo Tanaka |
Subject: |
bug#48148: 27.2; ox-ascii breaks TITLE line wrongly when 2 width char is used |
Date: |
Sun, 02 May 2021 20:33:23 +0900 |
User-agent: |
Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (Gojō) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.2 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) |
Thank you for the advice. I see that `window-text-pixel-size' returns true
displayed width but I think that's TRT for only the other bug I reported
(bug#48149). These two bugs looks similar but the root causes are completed
different.
This bug (bug#48148) is actually caused by the difference of the width
detection methods between line 1036 in ox-ascii.el (`length') and
`fill-region'. This is because `org-ascii-template--document-title' first
detects the title width by `length' and then tries to fill it by
`org-ascii--fill-string' which does the action by `fill-region' inside. And
since the filling point in `fill-region' is based on `move-to-column' and it
looks like giving the same result as `string-width', I think `string-width'
is TRT for this bug.
In other words, specific to this bug, only the same width detection method as
`fill-region' is required, even if it doesn't give you the precise width
displayed.
Please correct me if I am wrong.
---
Shingo Tanaka
On Sun, 02 May 2021 18:11:41 +0900,
Eli Zaretskii wrote:
>
> > From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
> > Cc: Shingo Tanaka <shingo.fg8@gmail.com>, 48148@debbugs.gnu.org
> > Date: Sun, 02 May 2021 10:23:34 +0200
> >
> > > The accurate method of lining up in these cases is to use
> > > window-text-pixel-size instead. That function will return the exact
> > > width of a string as it will displayed, in pixels, because it uses the
> > > same code as the display engine.
> >
> > Would you mind giving an example about `window-text-pixel-size' usage in
> > this situation?
>
> I'm not sure what kind of example is necessary. How about if you ask
> specific questions about the arguments of that function which you
> don't understand clearly how to use?
>
> > AFAIU, `window-text-pixel-size' returns the size of the window
>
> No, it returns the size of _text_ when displayed in a window.
>
> > Note that `text-width' in the code above is not related to the width
> > of the window, but is a maximum number of allowed characters on a
> > line.
>
> I didn't mean text-width, I meant the use of string-width: it should
> be replaced by a call to window-text-pixel-size.