mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Daniel Schoepe <daniel@schoepe.org>
To: musl@lists.openwall.com
Subject: Re: printf doesn't respect locale
Date: Mon, 9 Sep 2019 17:39:10 +0100	[thread overview]
Message-ID: <CAPy=dbKY+erj-575mVz9cNGeGefdqjS0V3C6xVej992+GJhtpA@mail.gmail.com> (raw)
In-Reply-To: <CAPy=dbJVxof7_HRqw_cSFdz1AfJkCvYPnQ4iRk+OysbRu7huDw@mail.gmail.com>

Small correction: The example works as the standard suggests on OSX,
but exhibits the same behavior as with musl with GNU libc as well.

On Mon, Sep 9, 2019 at 5:31 PM Daniel Schoepe <daniel@schoepe.org> wrote:
>
> Hi,
>
> I think I found a discrepancy between musl's behavior and the POSIX standard:
>
> According to the POSIX standard, the decimal separator used when using
> printf to print floating point numbers should come from the locale
> (https://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html):
>
> "The radix character is defined in the current locale (category
> LC_NUMERIC). In the POSIX locale, or in a locale where the radix
> character is not defined, the radix character shall default to a
> <period> ( '.' )."
>
> However, it seems that in musl, a period is always used for printing
> floating point numbers. For example, the following program prints
> "12.0" instead of "12,0" (which is printed when using GNU libc):
>
> #include <stdio.h>
> #include <locale.h>
>
> int main(int argc, char **argv) {
>     setlocale(LC_ALL, "DE_de");
>     printf("%f\n", 12.0f);
> }
>
> This was tested using the latest git checkout of musl
> (a882841baf42e6a8b74cc33a239b84a9a79493db), compiled on Ubuntu 18.04
> using the musl-gcc script. It looks like the usage of "." as a
> separator is hardcoded in `fmt_fp`, for instance here:
> https://git.musl-libc.org/cgit/musl/tree/src/stdio/vfprintf.c#n392
>
> Best regards,
> Daniel


  reply	other threads:[~2019-09-09 16:39 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-09 16:31 Daniel Schoepe
2019-09-09 16:39 ` Daniel Schoepe [this message]
2019-09-09 16:51 ` Szabolcs Nagy
2019-09-09 17:55   ` Rich Felker
2019-09-09 17:54 ` Rich Felker
2019-09-10 16:00   ` Daniel Schoepe
2019-09-10 16:31     ` Szabolcs Nagy
2019-09-10 16:44       ` Tim Tassonis
2019-09-10 17:30         ` Rich Felker
2019-09-10 17:10       ` Daniel Schoepe
2019-09-10 17:33         ` Rich Felker
2019-09-10 18:43         ` Szabolcs Nagy
2019-09-10 21:55           ` A. Wilcox
2019-09-11 10:01             ` Szabolcs Nagy
2019-09-11 10:07               ` Jens Gustedt
2019-09-11 11:44                 ` Rich Felker
2019-09-11 12:53                   ` Jens Gustedt
2019-09-11 13:47                     ` Rich Felker
2019-09-11 15:15                       ` Jens Gustedt
2019-09-11 15:38                         ` Rich Felker
2019-09-11 18:08                           ` Jens Gustedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPy=dbKY+erj-575mVz9cNGeGefdqjS0V3C6xVej992+GJhtpA@mail.gmail.com' \
    --to=daniel@schoepe.org \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).