C++ Logo


Advanced search

Re: [SG16-Unicode] P1689: Encoding of filenames for interchange

From: Thiago Macieira <thiago_at_[hidden]>
Date: Thu, 05 Sep 2019 20:45:37 -0700
On Thursday, 5 September 2019 04:11:00 PDT Lyberta wrote:
> Do we really expect C++20 build systems to run on filesystem paths not
> representable as UTF-8? Users who do that really shoot themselves in the
> foot.

Unfortunatetly, it can happen, though the vast majority of times it does on
modern systems is by accident: someone set LC_ALL=C to get error messages in
English. I do it *all* the time.

When you see me post something that says:

$ ls foo
ls: cannot access 'foo': No such file or directory

That's because my console actually said:

tjmaciei_at_tjmaciei-mobl1 ~ $ ls foo
ls: cannot access 'foo': Arquivo ou diretório inexistente
[2] tjmaciei_at_tjmaciei-mobl1 ~ $ LC_ALL=C ls foo
ls: cannot access 'foo': No such file or directory

I copied after the path in the prompt on the first line, pasted, then deleted
the two middle lines.

And let's see what happens to UTF-8 paths:
$ touch é
$ LC_ALL=C ls é á
ls: cannot access ''$'\303\241': No such file or directory

Typing LC_ALL=C.UTF-8 or LC_ALL=en_US.UTF-8 is too long.

Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel System Software Products

Received on 2019-09-06 05:45:43