)]}'
{
  "commit": "86df3084527ee27646c25ac6235864e2bf16ceec",
  "tree": "911cd457a910434eb7aa2db89eae1cfef969a154",
  "parents": [
    "db57fe086b165eb739d5f47bb3b400cc8707c76a"
  ],
  "author": {
    "name": "ihor.karavan-at-934627200577",
    "email": "ihorkaravan96@gmail.com",
    "time": "Tue May 26 14:34:23 2020 +0300"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri May 29 15:06:09 2020 +0000"
  },
  "message": "Add support escape JSON string to stream for export compile commands\n\ngn gen --export-compile-commands does not produce valid JSON\nThe resulting file has \"command\" entries which are invalid JSON:\nthey are strings containing unescaped double quotation marks,\nlike \"command\": \"... /showIncludes \"...\" \"...\" \"...\"\".\n\nAdded new function EscapeJSONStringToStream that escape strings suitable\nfor JSON to generate compile_commands.json with valid JSON. This function\nworks the same as EscapeString but escape JSON string and writes the\nresults to the given stream, saving a copy.\n\nMade EscapeJSONString return void and deleting the GetQuotedJSONString in\nstring_escape.*.\n\nAdded unit-test for EscapeJSONStringToStream function to escape_unittest.cc\n\nChange-Id: I39c313314a186cb1de0280494cba3b546e5d1a1d\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/8520\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\nCommit-Queue: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ea674f5772a5943ed9c1b20c6d57ee9b93fa9acf",
      "old_mode": 33188,
      "old_path": "src/base/json/string_escape.cc",
      "new_id": "51a818cb479bb52e071f1d41561f9a6b9f58ca24",
      "new_mode": 33188,
      "new_path": "src/base/json/string_escape.cc"
    },
    {
      "type": "modify",
      "old_id": "ada5179a6bab4adceae8c3df9c63f211b3ee4f39",
      "old_mode": 33188,
      "old_path": "src/base/json/string_escape.h",
      "new_id": "14eecdd1dc01fad89d9e21eab6485a282d940ad1",
      "new_mode": 33188,
      "new_path": "src/base/json/string_escape.h"
    },
    {
      "type": "modify",
      "old_id": "8d6c7fb382df560945e2ba9da9a2cb0e30950307",
      "old_mode": 33188,
      "old_path": "src/gn/compile_commands_writer.cc",
      "new_id": "d0367fc5e5f29c3dfd4c950e83ea28e049b8d2d3",
      "new_mode": 33188,
      "new_path": "src/gn/compile_commands_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "98f77d326b753a2ef8e09d9f9a3d6b6327f045af",
      "old_mode": 33188,
      "old_path": "src/gn/escape.cc",
      "new_id": "18749059aeef675401a837b89ec7d7ccec6a0d25",
      "new_mode": 33188,
      "new_path": "src/gn/escape.cc"
    },
    {
      "type": "modify",
      "old_id": "28f31bfa0f9d18d627c849709509e4b353db8702",
      "old_mode": 33188,
      "old_path": "src/gn/escape.h",
      "new_id": "78e654467c2a5943296e37af7b13f679d893e931",
      "new_mode": 33188,
      "new_path": "src/gn/escape.h"
    },
    {
      "type": "modify",
      "old_id": "ca42ac9323b8cf3b8948544e6956047fc02df2bc",
      "old_mode": 33188,
      "old_path": "src/gn/escape_unittest.cc",
      "new_id": "afc2bc4cb08433ce0db703524e0a8e3368413f7d",
      "new_mode": 33188,
      "new_path": "src/gn/escape_unittest.cc"
    }
  ]
}
