po 19. 10. 2020 v 3:18 odesílatel Celso Lorenzetti <ce...@sysrs.com.br>
napsal:

> Hi Peter,
>
> is language C standart..
>
> On 2020-10-17 20:51:36 +0200, Matthias Apitz wrote:
> > El día sábado, octubre 17, 2020 a las 03:37:46p. m. -0300, Celso
> Lorenzetti escribió:
> >
> > > Somebody help me, please.
> > >
> > > How to make the texts are aligned with 10 characters?
> > >
> > >
> > >
> > > elog(INFO, "\n%-10s Fim\n%-10s Fim\n", "Variável", "Variavel");
>
> Which programming language is this? PL/pgSQL?
>

This is an internal function available in internal C API.

As Tom Lane said in other mail - this internal API just doesn't support
alignment for multibyte encodings.

Regards

Pavel


>
> > Hola Celso,
> >
> > You can reproduce the same on the UNIX shell with:
> >
> > $ printf "\n%-10s Fim\n%-10s Fim\n" "Variável" "Variavel"
> >
> > Variável  Fim
> > Variavel   Fim
>
> Hmm. Zsh gets it right:
>
> trintignant:~ 0:31 :-) 1032% printf "\n%-10s Fim\n%-10s Fim\n" "Variável"
> "Variavel"
>
> Variável   Fim
> Variavel   Fim
>
> As do Perl and Python.
>
>
> > The second test (changing the accented char 'á' by 'X'), shows that
> > the problem/bug is a) more generic, not only in PostgreSQL and b) has
> > todo with being the UTF-8 char 'á' a two byte char, while 'X' is only
> > one byte.
>
> Yes, determining how much space a UTF-8 sequence occupies on screen is
> surprisingly hard. I'm not sure what the C standard says about that. But
> these days I would expect any programming language to get it right at least
> for the simple cases.
>
>         hp
>
> --
>    _  | Peter J. Holzer    | Story must make more sense than reality.
> |_|_) |                    |
> | |   | h...@hjp.at         |    -- Charles Stross, "Creative writing
> __/   | http://www.hjp.at/ |       challenge!"
>
>
> --
> Este email foi escaneado pelo Avast antivírus.
> https://www.avast.com/antivirus
>
>
>
>

Reply via email to