Comment 37 for bug 2002290

Revision history for this message
Egmont Koblinger (egmont-gmail) wrote :

Re "cat" (which should rather be "ls -1") with LTR vs. autodetected directionality:

Let's use the convention here that uppercase letters are fake Arabic, e.g. imagine that the word [written as LTR here] "ARABIC" is a valid Arabic word which is supposed to visually appear as "CIBARA".

Let's have two files, called "english.pdf" and [written as LTR here] "ARABIC.pdf". Let's run "ls -1".

First, let's run it in a fully LTR environment. "english.pdf" should appear like this, left-aligned, it's obvious. What's the best rendering of the other filename? Should it look like "CIBARA.pdf" or "pdf.CIBARA"? Should it be aligned to the left or right edge of the terminal? Why? I, who can't read Arabic, would argue that a left-aligned "CIBARA.pdf" would be the least confusing for me (i.e. I prefer the look in your LTR screenshot), but others, especially those who do read Arabic, might disagree with me and prefer some other rendering. What is your take on this?

Now, let's run it in a fully RTL environment, e.g. the user has set up as much as reasonable to RTL, most of the filenames are RTL, however, an English one, and an Arabic one with an English extension, have sneaked in. What output would you prefer from "ls -1" and why? Should the English filename appear as "english.pdf" or "pdf.english", should it be aligned to the left or the right edge of terminal? And the same question as in the previous paragraph: Should the Arabic filename look like "CIBARA.pdf" or "pdf.CIBARA", and should it be aligned to the left or right edge?

What output format would you expect from regular "ls" (using multiple columns), given a mixture of plenty of similarly crafted filenames? What output format would you expect from "ls -l"?

Plenty of questions, plenty of possible answers. E.g. for "ls -1" in RTL environment, I asked two questions, 4 possible answers for each, that's 16 possible combinations. Many of them are obviously bad, but still, probably there won't be a clear winner, I'd guess there will be 2 or 3 candidates, with some subjective weighting between them.

Once we have an answer to these questions, the next question should be: whose responsibility is it to implement that behavior? Is it the terminal's, or ls's, or a cooperation between the two? Finding the good answer will require deep understanding of the problem space and examining many other utilities as well. You can't just conclude from the output of 1 particular utility using 1 particular command line switch that enabling autodetection would be an overall win across thousands of use cases.