)]}'
{
  "commit": "41253e45ef6cc814ffe297db03a388379007f3cf",
  "tree": "f004bb1d29459e4a277fa7bf7fc72ddcb4b29d2d",
  "parents": [
    "9a9215bec104aae68405396be441f6d85d04bcb7"
  ],
  "author": {
    "name": "Javid Khan",
    "email": "dxbjavid@gmail.com",
    "time": "Mon Jun 22 12:12:23 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Jun 22 12:12:58 2026 -0700"
  },
  "message": "PR #2082: make RoundTripDoubleToBuffer locale-independent\n\nImported from GitHub PR https://github.com/abseil/abseil-cpp/pull/2082\n\nRoundTripDoubleToBuffer formats with snprintf %g, whose radix character follows the global C locale\u0027s LC_NUMERIC category, so in a process that has called setlocale() to something like de_DE or fr_FR absl::HighPrecision(d) comes out as e.g. \"0,1\". SimpleAtod only accepts \u0027.\u0027, so the value no longer parses back to itself even though round-tripping through SimpleAtod is exactly what HighPrecision promises, and the rest of the float formatting here (RoundTripFloatToBuffer, SixDigitsToBuffer) is already locale-independent. This rewrites the radix character back to \u0027.\u0027 in the produced buffer, and adds a regression test that exercises HighPrecision under a comma-radix locale (skipped when no such locale is installed).\nMerge 7ee6235813f3de485ab15e57cbd94217f758d123 into ce2e0bc69560bf3287928864f780faa4daed4dd0\n\nMerging this change closes #2082\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/abseil/abseil-cpp/pull/2082 from dxbjavid:highprecision-locale-radix 7ee6235813f3de485ab15e57cbd94217f758d123\nPiperOrigin-RevId: 936184553\nChange-Id: I003289412ce32167c0d8f52d6ad2ff1426cf4def\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "20149f19d0207466e8c4009b2d238a89f0ceb045",
      "old_mode": 33188,
      "old_path": "absl/strings/BUILD.bazel",
      "new_id": "6b96d0cac89b1b74edea144eeac157b2bce8c9b3",
      "new_mode": 33188,
      "new_path": "absl/strings/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "41fe3c085d1ec6c66a51afaef55e88ee5268ba11",
      "old_mode": 33188,
      "old_path": "absl/strings/CMakeLists.txt",
      "new_id": "ca07c3e4470bdeeae54d93b6bd5c1c321738064a",
      "new_mode": 33188,
      "new_path": "absl/strings/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "f0a8f002a18168329b10340dba8124ee4ccf4215",
      "old_mode": 33188,
      "old_path": "absl/strings/numbers.cc",
      "new_id": "479c07e3cd83dee3b09036454ca4a1c19b3fc267",
      "new_mode": 33188,
      "new_path": "absl/strings/numbers.cc"
    },
    {
      "type": "modify",
      "old_id": "dd57a886b6340cf92fbb05e508784d82e6161802",
      "old_mode": 33188,
      "old_path": "absl/strings/numbers_test.cc",
      "new_id": "6f0cde84649e3a6acee83c934d10e187782ee719",
      "new_mode": 33188,
      "new_path": "absl/strings/numbers_test.cc"
    }
  ]
}
