)]}'
{
  "log": [
    {
      "commit": "a80faa8930ed5a554beeb2727762538873135e83",
      "tree": "e797605e0c781214543fcba103cffede7af611cd",
      "parents": [
        "82de464f763d6e6d89229be03ce7c6d02fd5fb59"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 12 19:37:17 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 12 19:37:17 2020 +0200"
      },
      "message": "patch 8.2.0559: clearing a struct is verbose\n\nProblem:    Clearing a struct is verbose.\nSolution:   Define and use CLEAR_FIELD() and CLEAR_POINTER().\n"
    },
    {
      "commit": "1a47ae32cdc19b0fd5a82e19fe5fddf45db1a506",
      "tree": "8f5dc27f3eeea927ad3ca8de42fe0df06a041dd5",
      "parents": [
        "257a396879ff67a0482841a39237f30a8e1e27c5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 29 23:04:25 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 29 23:04:25 2019 +0100"
      },
      "message": "patch 8.2.0056: execution stack is incomplete and inefficient\n\nProblem:    Execution stack is incomplete and inefficient.\nSolution:   Introduce a proper execution stack and use it instead of\n            sourcing_name/sourcing_lnum.  Create a string only when used.\n"
    },
    {
      "commit": "4ba37b5833de99db9e9afe8928b31c864182405c",
      "tree": "30662897c6ff3d608e47d22f8bab9ce8703b26e7",
      "parents": [
        "2ab2e8608f9b2c85432715bb9a7f226fdbf8cd35"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 04 21:57:43 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 04 21:57:43 2019 +0100"
      },
      "message": "patch 8.1.2388: using old C style comments\n\nProblem:    Using old C style comments.\nSolution:   Use // comments where appropriate.\n"
    },
    {
      "commit": "fc3abf47fbe1e426f2b676c316c81ee9ff607075",
      "tree": "87b9be7b053e71ee6ec750f7c0f0387e9287d4c0",
      "parents": [
        "135059724f140ceac889c9f8136bd1bf5c41d49d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 24 15:54:21 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 24 15:54:21 2019 +0100"
      },
      "message": "patch 8.1.0806: too many #ifdefs\n\nProblem:    Too many #ifdefs.\nSolution:   Graduate FEAT_MBYTE, part 2.\n"
    },
    {
      "commit": "4019cf90b8657d4ab1c39744db63550f44f405a2",
      "tree": "dd19804e007e7748d0d2ca5a0e4aaa5dd0a19217",
      "parents": [
        "f42dd3c3901ea0ba38e67a616aea9953cae81b8d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 28 16:39:34 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 28 16:39:34 2017 +0100"
      },
      "message": "patch 8.0.0252: not properly recognizing word characters between 128 and 255\n\nProblem:    Characters below 256 that are not one byte are not always\n            recognized as word characters.\nSolution:   Make vim_iswordc() and vim_iswordp() work the same way. Add a test\n            for this. (Ozaki Kiichi)\n"
    }
  ]
}
