URL:
  <https://savannah.gnu.org/bugs/?68453>

                 Summary: bash 5.3 on macOS (Homebrew): inconsistent locale
handling e.g. in printf builtin
                   Group: The GNU Bourne-Again SHell
               Submitter: None
               Submitted: Wed 17 Jun 2026 11:49:24 AM UTC
                Category: None
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Unlocked


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Wed 17 Jun 2026 11:49:24 AM UTC By: Anonymous
On macOS, bash 5.3 installed via Homebrew shows inconsistent behaviour e.g.in
the printf builtin when handling floating-point formatting under
LC_NUMERIC=C.

In an interactive shell, numeric input using dot decimal separator is rejected
as invalid, and output uses a comma decimal separator, despite locale
variables being unset or set to "C".

The issue is reproducible only in Homebrew bash 5.3 and does not occur in the
system default very old bash (3.2), nor was present in bash 5.2.

Steps to reproduce:

1. Start Homebrew bash 5.3: /opt/homebrew/bin/bash
2. Ensure no locale variables are set: env | grep '^LC_\|^LANG'
3. Run: printf "%f\n" 1.234

Actual result:


bash: printf: 1.234: invalid number
1,000000


Expected result:


1.234000


=== Additional observations: ===

* System bash works correctly:


$ /bin/bash --norc --noprofile -c 'printf "%f\n" 1.23'
1.230000


* Fix observed with explicit locale:


$ LC_NUMERIC=C bash -c 'printf "%f\n" 0.123'
0.123000


* Python confirms correct libc locale state: decimal_point == "."

* locale command reports LC_NUMERIC="C" even when issue is present.

* The most surprising behaviour is that running bash locally setting
LC_NUMERIC fixes the behaviour of the present session:

  $ printf "%f\n" 1.23
  -bash: printf: 1.23: invalid number
  1,000000
  $ LC_NUMERIC=C bash -c 'printf "%f\n" 0.123'
  0.123000
  $ printf "%f\n" 1.23
  1.230000











    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?68453>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to