)]}'
{
  "commit": "d63661a3e3c3a562a06c2bbc565d9c2ec3709d9d",
  "tree": "faa9bba7eb6fcc46d22842ea467fca97431076b2",
  "parents": [
    "7e1af334ee9c85a930070393184aa2806af8a94c"
  ],
  "author": {
    "name": "Javid Khan",
    "email": "dxbjavid@gmail.com",
    "time": "Thu Jul 09 23:04:04 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Jul 09 23:05:26 2026 -0700"
  },
  "message": "PR #2093: reject unpaired surrogates when formatting wide strings\n\nImported from GitHub PR https://github.com/abseil/abseil-cpp/pull/2093\n\n**partial utf-8 emitted for unpaired surrogates in wide-string formatting**\n\nWhen a wide string passed to %ls (or a std::wstring) contains a high surrogate with no following low surrogate, ConvertStringArg keeps the two bytes WideToUtf8 writes for the first half of the pair and still reports success, so the formatted output carries a truncated utf-8 sequence. The single wchar_t path already rejects an unpaired surrogate via saw_high_surrogate, so this just brings the string path in line with it and adds a convert_test case for the trailing, mid-string and lone-low variants.\nMerge da58a96d88c5d6ddfeb014f14da47b8965de9cca into 0d1af721b72710afc6d50e880cc111eb852e4e22\n\nMerging this change closes #2093\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/abseil/abseil-cpp/pull/2093 from dxbjavid:wide-format-unpaired-surrogate da58a96d88c5d6ddfeb014f14da47b8965de9cca\nPiperOrigin-RevId: 945509522\nChange-Id: Ifc1cdde9dc5c3850f5a01205c27ab97bda84e729\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fae98f41ef37fc946d44c339d41462c615be50f4",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/str_format/arg.cc",
      "new_id": "0687b4e056da0fbe6e83baf8062e5b441546bad6",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/str_format/arg.cc"
    },
    {
      "type": "modify",
      "old_id": "1c3d1a30152c823cc52714e3b64518a3bfa255bd",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/str_format/convert_test.cc",
      "new_id": "5e8601639105eb4b403720f0ba103d0889faf482",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/str_format/convert_test.cc"
    }
  ]
}
