Subject: bug#41250: 28.0.50; Dired displays unconditionally ls-switches on modeline

From: Eli Zaretskii <[email-masked]>
Date: Fri, 02 Oct 2020 09:31:45 +0300

> From: Lars Ingebrigtsen <[email-masked]>
> Date: Thu, 01 Oct 2020 21:59:13 +0200
> Cc: [email-masked], Arthur Miller <[email-masked]>
> 
> Juri Linkov <[email-masked]> writes:
> 
> > But anyway I think that it would be better to keep
> > 'truncate-string-to-width', and to turn 'truncate-string-ellipsis'
> > into a user option (defvar -> defcustom) with the default value
> > computed as (if (char-displayable-p ?…) "…" "...")
> >
> > If this doesn't work on dynamically created mixed X/tty frames, then
> > maybe allow some value (e.g. 'auto-detect') for
> > 'truncate-string-ellipsis', so 'truncate-string-to-width' would call
> > (if (char-displayable-p ?…) "…" "...")  every time when
> > 'truncate-string-to-width' is used and recompute the value of
> > ellipsis.
> 
> The variable doesn't work as is (because of the problem of mixed
> frames), and `auto-detect' doesn't have much meaning, which is why this
> should never have been a variable in the first place.
> 
> Instead of trying to fix that mess, I thought it would be easier to
> introduce a new function that does the right thing automatically, and
> without a gazillion optional parameters, and then make the old function
> obsolete.

How about making char-displayable-p accept an optional argument, a
frame for which to perform the test?