)]}'
{
  "commit": "1e17bc1faf03109ff64ca278f8e603c31fe089f4",
  "tree": "715f560754c518b1bacee742024e09370312240c",
  "parents": [
    "8673c52ffe81a51ad10b60bdf530d0ae3a367d39"
  ],
  "author": {
    "name": "Ed Schouten",
    "email": "ed@nuxi.nl",
    "time": "Fri Dec 30 10:44:00 2016 +0000"
  },
  "committer": {
    "name": "Ed Schouten",
    "email": "ed@nuxi.nl",
    "time": "Fri Dec 30 10:44:00 2016 +0000"
  },
  "message": "Remove mblen(), mbtowc() and wctomb() from the thread-unsafe functions.\n\nBack in r240527 I added a knob to prevent thread-unsafe functions from\nbeing exposed. mblen(), mbtowc() and wctomb() were also added to this\nlist, as the latest issue of POSIX doesn\u0027t require these functions to be\nthread-safe.\n\nIt turns out that the only circumstance in which these functions are not\nthread-safe is in case they are used in combination with state-dependent\ncharacter sets (e.g., Shift-JIS). According to Austin Group Bug 708,\nthese character sets \"[...] are mostly a relic of the past and which\nwere never supported on most POSIX systems\".\n\nThough in many cases the use of these functions can be prevented by\nusing the reentrant counterparts, they are the only functions that allow\nyou to query whether the locale\u0027s character set is state-dependent. This\nmeans that omitting these functions removes actual functionality.\n\nLet\u0027s be a bit less pedantic and drop the guards around these functions.\n\nLinks:\nhttp://austingroupbugs.net/view.php?id\u003d708\nhttp://www.open-std.org/jtc1/sc22/wg14/www/docs/n2037.htm\n\nReviewed by:\tericwf\nDifferential Revision:\thttps://reviews.llvm.org/D21436\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290748 91177308-0d34-0410-b5e6-96231b3b80d8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1c629f0e9325b79a6967a77ab49fd60eaad92423",
      "old_mode": 33188,
      "old_path": "include/__config",
      "new_id": "467ab00a1a546a12003d3f0c74b69d945a22de46",
      "new_mode": 33188,
      "new_path": "include/__config"
    },
    {
      "type": "modify",
      "old_id": "9a775b844846db157a46e70a638ca20bcbe48cf9",
      "old_mode": 33188,
      "old_path": "include/cstdlib",
      "new_id": "2ca25ed56ca620d993e1532e85ebef0a771fceaf",
      "new_mode": 33188,
      "new_path": "include/cstdlib"
    },
    {
      "type": "modify",
      "old_id": "96d1143d4de6d60b4535331c613344ac28a528c2",
      "old_mode": 33188,
      "old_path": "test/std/depr/depr.c.headers/stdlib_h.pass.cpp",
      "new_id": "1680f4349bb5256bfc6c43ea8e632b73415c32ad",
      "new_mode": 33188,
      "new_path": "test/std/depr/depr.c.headers/stdlib_h.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "d8f88cf58d9d54ac956f9c11f417f66393c5389f",
      "old_mode": 33188,
      "old_path": "test/std/language.support/support.runtime/cstdlib.pass.cpp",
      "new_id": "60f7d954db549e84928d1839a6726d15601a7f44",
      "new_mode": 33188,
      "new_path": "test/std/language.support/support.runtime/cstdlib.pass.cpp"
    }
  ]
}
