)]}'
{
  "log": [
    {
      "commit": "c667da5185ce5dce914d2006d62da2be0cedb384",
      "tree": "cd06b08e9fb7d701653850cd33524d3f1f5acaaf",
      "parents": [
        "71136db1bfbc67c2e55f8070cdf0a241c643e45b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 30 20:52:27 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 30 20:52:27 2019 +0100"
      },
      "message": "patch 8.1.2368: using old C style comments\n\nProblem:    Using old C style comments.\nSolution:   Use // comments where appropriate.\n"
    },
    {
      "commit": "2e47cab715669bd0c89762217cbf77bd70cd82ac",
      "tree": "6335ef959011ee001155fe6e04a2337147a8cd75",
      "parents": [
        "7b666c7883c905a0e1428b8bfa7ba062af2656e7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 27 23:12:45 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 27 23:12:45 2019 +0200"
      },
      "message": "patch 8.1.2090: not clear why channel log file ends\n\nProblem:    Not clear why channel log file ends.\nSolution:   Add a \"closing\" line.\n"
    },
    {
      "commit": "d2842ea60bd608b7f9ec93c77d3f36a8e3bf5fe9",
      "tree": "d10208c36706ae29c65fba43fbf02aeced49eccd",
      "parents": [
        "d2c1fb476d5816db129eb428ffef6a81027eb13a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 26 23:08:54 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 26 23:08:54 2019 +0200"
      },
      "message": "patch 8.1.2080: the terminal API is limited and can\u0027t be disabled\n\nProblem:    The terminal API is limited and can\u0027t be disabled.\nSolution:   Add term_setapi() to set the function prefix. (Ozaki Kiichi,\n            closes #2907)\n"
    },
    {
      "commit": "101e99207f813ca48a4c0787eed9eb8bf67fba5a",
      "tree": "4019ce512a00a611baa0cb84f73c1cf7306ab23e",
      "parents": [
        "0d0c3ca007940cdb64ccbfd0e70846eedfe6a4a6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 25 21:43:11 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 25 21:43:11 2019 +0200"
      },
      "message": "patch 8.1.2075: get many log messages when waiting for a typed character\n\nProblem:    Get many log messages when waiting for a typed character.\nSolution:   Do not repeat the repeated messages when nothing happens.\n"
    },
    {
      "commit": "bd67aac279adf3a1cfa11557229b44e4c2c3dcda",
      "tree": "b00100bb2bd1c42ce594c3d6804c618afae3450c",
      "parents": [
        "1e82a784ace6d2c4dce594dd6156bcb0028bba9e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 21 23:09:04 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 21 23:09:04 2019 +0200"
      },
      "message": "patch 8.1.2064: MS-Windows: compiler warnings for unused arguments\n\nProblem:    MS-Windows: compiler warnings for unused arguments.\nSolution:   Add UNUSED. (Yegappan Lakshmanan, closes #4963)\n"
    },
    {
      "commit": "0e57dd859ecb1e8a3b91509d2f4343e839340eb8",
      "tree": "50e5f097f3fe10851e7af017cea6cdef35b12402",
      "parents": [
        "69198cb8c08f124729c41a4681f2d142228a9139"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 16 22:56:03 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 16 22:56:03 2019 +0200"
      },
      "message": "patch 8.1.2047: cannot check the current state\n\nProblem:    Cannot check the current state.\nSolution:   Add the state() function.\n"
    },
    {
      "commit": "69198cb8c08f124729c41a4681f2d142228a9139",
      "tree": "12b2ba27e1239074e4bcb1f6f6524d23ab996158",
      "parents": [
        "dac1347b4d9c1a1aef6aa73fdea08a9d1077d6ea"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 16 21:58:13 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 16 21:58:13 2019 +0200"
      },
      "message": "patch 8.1.2046: SafeState may be triggered at the wrong moment\n\nProblem:    SafeState may be triggered at the wrong moment.\nSolution:   Move it up higher to after where messages are processed.  Add a\n            SafeStateAgain event to tigger there.\n"
    },
    {
      "commit": "8aeec40207b5adcd3a155277dc4f29189343b963",
      "tree": "4c62d41b6474eaddb0d2ad4c088bb6931b39b9ce",
      "parents": [
        "ea8dcf8346f488786023fd03ec1c013cda243040"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 15 23:02:04 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 15 23:02:04 2019 +0200"
      },
      "message": "patch 8.1.2044: no easy way to process postponed work\n\nProblem:    No easy way to process postponed work. (Paul Jolly)\nSolution:   Add the SafeState autocommand event.\n"
    },
    {
      "commit": "261f346f8154c0ec7094a4a211c653c74e9f7c2e",
      "tree": "ae8f30b11e3a637d1c69bac234d0edd721d4a542",
      "parents": [
        "a3a124627d2eb9d36e3dc3757429d87e041f8c0b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 07 15:45:32 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 07 15:45:32 2019 +0200"
      },
      "message": "patch 8.1.2001: some source files are too big\n\nProblem:    Some source files are too big.\nSolution:   Move buffer and window related functions to evalbuffer.c and\n            evalwindow.c. (Yegappan Lakshmanan, closes #4898)\n"
    },
    {
      "commit": "ea781459b9617aa47335061fcc78403495260315",
      "tree": "54f9bf3487a0222bcb266f9eaa4a82c0a62482df",
      "parents": [
        "6a124e622cfe52619781c6a02119177a44d09210"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 04 18:53:12 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 04 18:53:12 2019 +0200"
      },
      "message": "patch 8.1.1983: compiler nags for uninitialized variable and unused function\n\nProblem:    Compiler nags for uninitialized variable and unused function.\nSolution:   Add unnecessary initialization.  Move function inside #ifdef.\n"
    },
    {
      "commit": "5843f5f37b0632e2d706abc9014bfd7d98f7b02e",
      "tree": "2f1af5fd16214dfdf8edc8717e06a8b0aab81c1a",
      "parents": [
        "9a4a8c4d5993c6371486c895a515c2ad351e9aaa"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 20 20:13:45 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 20 20:13:45 2019 +0200"
      },
      "message": "patch 8.1.1891: functions used in one file are global\n\nProblem:    Functions used in one file are global.\nSolution:   Add \"static\". (Yegappan Lakshmanan, closes #4840)\n"
    },
    {
      "commit": "c6538bcc1cdd1fb83732f22fdc69bd9bb66f968a",
      "tree": "80b89c210388f6e038ccbdc346f72a31bffd8430",
      "parents": [
        "749fa0af85232be1d44b77a09161f71cdbace62c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 03 18:17:11 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 03 18:17:11 2019 +0200"
      },
      "message": "patch 8.1.1800: function call functions have too many arguments\n\nProblem:    Function call functions have too many arguments.\nSolution:   Pass values in a funcexe_T struct.\n"
    },
    {
      "commit": "4641a122f2ffb820ec6d05526532ab38930c5286",
      "tree": "638c53ae9b77dae4daf7a25e36031739e3886263",
      "parents": [
        "eee9f65b2a213e9031f172d9d3b22adad6cb985d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 29 22:10:23 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 29 22:10:23 2019 +0200"
      },
      "message": "patch 8.1.1776: text added with a job isn\u0027t displayed\n\nProblem:    Text added with a job to another buffer isn\u0027t displayed.\nSolution:   Update topline after adding a line. (closes #4745)\n"
    },
    {
      "commit": "0d07155c8bbaca1a527b79da358438253a60839f",
      "tree": "427f6db1a6aa7733efb90bb0387615791b65255b",
      "parents": [
        "49fe95f22517b775506ef34681000d84bb417eb3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 08 22:04:03 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 08 22:04:03 2019 +0200"
      },
      "message": "patch 8.1.1653: ubsan warns for possibly passing NULL pointer\n\nProblem:    Ubsan warns for possibly passing NULL pointer.\nSolution:   Skip code when length is zero. (Dominique Pelle, closes #4631)\n"
    },
    {
      "commit": "4340fc95d50518c6eb199107e5f1144f210c7ee5",
      "tree": "326e8a11f2ce433ab4998ae341d68bb8d13d438d",
      "parents": [
        "13b47c37a650ab6045680a9e5513ef6ad71ee93f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 28 22:06:49 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 28 22:06:49 2019 +0200"
      },
      "message": "patch 8.1.1605: Vim may delay processing messages on a json channel\n\nProblem:    Vim may delay processing messages on a json channel. (Pontus\n            Leitzler)\nSolution:   Try parsing json when checking if there is readahead.\n"
    },
    {
      "commit": "0a1f56fcfe31be929e9cd8c3d81a984c960e4180",
      "tree": "7bc7684aa4eccb489a5a6a1636dd612397c7348f",
      "parents": [
        "7be3ab25891fec711d8a2d9d242711a9155852b6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 24 00:43:35 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 24 00:43:35 2019 +0200"
      },
      "message": "patch 8.1.1584: the evalfunc.c file is getting too big\n\nProblem:    The evalfunc.c file is getting too big.\nSolution:   Move channel and job related functions to channel.c.\n"
    },
    {
      "commit": "75a1a9415b9c207de5a29b25c0d1949c6c9c5c61",
      "tree": "470a0887aed4e52e342edbca555e0bec1b85af99",
      "parents": [
        "a3fce62c911c204ae144b55018f6dc9295088850"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 20 03:45:36 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 20 03:45:36 2019 +0200"
      },
      "message": "patch 8.1.1575: callbacks may be garbage collected\n\nProblem:    Callbacks may be garbage collected.\nSolution:   Set reference in callbacks. (Ozaki Kiichi, closes #4564)\n"
    },
    {
      "commit": "38ea784fecf7921dca83ddc75fe9cb40708521b2",
      "tree": "74ee153455177845c58617d629d9af378eeec1cb",
      "parents": [
        "ac2450a9a863f02a5e749f2b7058157cbf76edf8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 09 19:51:58 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 09 19:51:58 2019 +0200"
      },
      "message": "patch 8.1.1512: ch_evalexpr() hangs when used recursively\n\nProblem:    ch_evalexpr() hangs when used recursively. (Paul Jolly)\nSolution:   Change ch_block_id from a single number to a list of IDs to wait\n            on.\n"
    },
    {
      "commit": "87abab92f5b42319a7b10df9974ed3ce5c9b2b9b",
      "tree": "ab0b61854d1fc219eac955f66fe90a378484efb6",
      "parents": [
        "98fb65cb051f625f4ce291a9f9cdb2e54ac1e688"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 03 21:14:59 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 03 21:14:59 2019 +0200"
      },
      "message": "patch 8.1.1457: cannot reuse a buffer when loading a screen dump\n\nProblem:    Cannot reuse a buffer when loading a screen dump.\nSolution:   Add the \"bufnr\" option.\n"
    },
    {
      "commit": "3a97bb3f0f8bd118ae23f1c97e55d84ff42eef20",
      "tree": "b7013f43afaaba6ba20b356a7a80fe55add24f1a",
      "parents": [
        "7dd64a3e57d296fdee3b3ffe6d938f634b59848c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 01 13:28:35 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 01 13:28:35 2019 +0200"
      },
      "message": "patch 8.1.1437: code to handle callbacks is duplicated\n\nProblem:    Code to handle callbacks is duplicated.\nSolution:   Add callback_T and functions to deal with it.\n"
    },
    {
      "commit": "c799fe206e61f2e2c1231bc46cbe4bb354f3da69",
      "tree": "68b3d2a8bb82519e29fc95f317d2ee02b07f95fa",
      "parents": [
        "b58a4b938c4bc7e0499700859bd7abba9acc5b11"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 28 23:08:19 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 28 23:08:19 2019 +0200"
      },
      "message": "patch 8.1.1414: alloc() returning \"char_u *\" causes a lot of type casts\n\nProblem:    Alloc() returning \"char_u *\" causes a lot of type casts.\nSolution:   Have it return \"void *\". (Mike Williams)  Define ALLOC_ONE() to\n            check the simple allocations.\n"
    },
    {
      "commit": "51e14387f120392b74b84408cafec33942337a05",
      "tree": "43d2b2077c404671de3f7fdfc5bc90930aa53d09",
      "parents": [
        "682725c1415f50681877df60257115a966e2a3d4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 25 20:21:28 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 25 20:21:28 2019 +0200"
      },
      "message": "patch 8.1.1393: unnecessary type casts\n\nProblem:    Unnecessary type casts.\nSolution:   Remove type casts from alloc() and lalloc() calls. (Mike Williams)\n"
    },
    {
      "commit": "18a4ba29aeccb9841d5bfdd2eaaffdfae2f15ced",
      "tree": "408ad339f6b34876d2fa481ac61568c7739b1160",
      "parents": [
        "71de720c2c117137185a6fc233b35aab37f0d4bc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 19:39:03 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 19:39:03 2019 +0200"
      },
      "message": "patch 8.1.1386: unessesary type casts for lalloc()\n\nProblem:    Unessesary type casts for lalloc().\nSolution:   Remove type casts.  Change lalloc(size, TRUE) to alloc(size).\n"
    },
    {
      "commit": "964b3746b9c81e65887e2ac9a335f181db2bb592",
      "tree": "9afaaac41a1c4f71b359fd6706b88df00e22e7a1",
      "parents": [
        "d33a764123a8aedb20cd84aeff3b94810ee67c4c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 18:54:09 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 24 18:54:09 2019 +0200"
      },
      "message": "patch 8.1.1384: using \"int\" for alloc() often results in compiler warnings\n\nProblem:    Using \"int\" for alloc() often results in compiler warnings.\nSolution:   Use \"size_t\" and remove type casts.  Remove alloc_check(), Vim\n            only works with 32 bit ints anyway.\n"
    },
    {
      "commit": "6ed8819822994512c160006bd1204aa11ae3c494",
      "tree": "171487d99e5cf0a6c7e5333159d98c821064e93e",
      "parents": [
        "ec28d1516eb8bb5dcaa42de145953a6d49aebb6f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 11 18:37:44 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 11 18:37:44 2019 +0200"
      },
      "message": "patch 8.1.1319: computing function length name in many places\n\nProblem:    Computing function length name in many places.\nSolution:   compute name length in call_func().\n"
    },
    {
      "commit": "4ca41534b726c4116d2e430e877e34146b4d4831",
      "tree": "25e8169afe4e49d7febd83c6319390166756f9a3",
      "parents": [
        "23b5139234a79567097ca73aba15ea134381b934"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 09 21:48:37 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 09 21:48:37 2019 +0200"
      },
      "message": "patch 8.1.1312: Coverity warning for using uninitialized variable\n\nProblem:    Coverity warning for using uninitialized variable.\nSolution:   Clear exarg_T.\n"
    },
    {
      "commit": "afde13b62b8fa25dac4635d5caee8d088b937ee0",
      "tree": "6a8b58aa58e180e55b2948e5d0bfdbc3d4692a49",
      "parents": [
        "ab4cece6053b0bfd604e15065227b94af873608b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 28 19:46:49 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 28 19:46:49 2019 +0200"
      },
      "message": "patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe\n\nProblem:    A lot of code is shared between vim.exe and gvim.exe.\nSolution:   Optionally put the shared code in vim.dll. (Ken Takata,\n            closes #4287)\n"
    },
    {
      "commit": "ad3ec76bb8030b9a1d3f0a49c374d0de2383b977",
      "tree": "6cc66e85aa0b54ce4ee2e9fcd47987963f022c57",
      "parents": [
        "037c54f261818439755d56e318da068f97997fb5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 21 00:00:13 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 21 00:00:13 2019 +0200"
      },
      "message": "patch 8.1.1194: typos and small problems in source files\n\nProblem:    Typos and small problems in source files.\nSolution:   Small fixes.\n"
    },
    {
      "commit": "04af19637c14045fa33b99576de4eea1e3524edb",
      "tree": "8548d69f19d74f118915299f76ce9c33e0ce0f88",
      "parents": [
        "f9b89b467965802b8d14251c0dd944343796edcd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 12 21:19:04 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 12 21:19:04 2019 +0200"
      },
      "message": "patch 8.1.1158: json encoded string is sometimes missing the final NUL\n\nProblem:    Json encoded string is sometimes missing the final NUL.\nSolution:   Add the NUL.  Also for log messages.\n"
    },
    {
      "commit": "2c519cf3bfe76083767ac94c674d2e161ed36587",
      "tree": "6386fbe43e4c710c1a31fe28ea3989cfe35e96a8",
      "parents": [
        "f7e47af7760fe054cb645dac9a1e96b23c85804d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 21 21:45:34 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 21 21:45:34 2019 +0100"
      },
      "message": "patch 8.1.1032: warnings from clang static analyzer\n\nProblem:    Warnings from clang static analyzer. (Yegappan Lakshmanan)\nSolution:   Fix relevant warnings.\n"
    },
    {
      "commit": "772153f8d85c83e08427d93460a676d7f079f002",
      "tree": "31248090660641a3d9bfd27eb32e6fd84ee53c95",
      "parents": [
        "cce713ddcc0c9ab29926c28e287cbb587a959b08"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 04 12:09:49 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 04 12:09:49 2019 +0100"
      },
      "message": "patch 8.1.0993: ch_read() may return garbage if terminating NL is missing\n\nProblem:    ch_read() may return garbage if terminating NL is missing.\nSolution:   Add terminating NUL. (Ozaki Kiichi, closes #4065)\n"
    },
    {
      "commit": "8caa43d8159555076af6acc242185f5475c1d199",
      "tree": "f042b0b0260d5dea3d6030c99e30175910ff0399",
      "parents": [
        "a25e3d06956f1bc11c68fe60149acce2d8547092"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 20 22:45:06 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 20 22:45:06 2019 +0100"
      },
      "message": "patch 8.1.0960: when using ConPTY garbage collection has undefined behavior\n\nProblem:    When using ConPTY garbage collection has undefined behavior.\nSolution:   Free the channel in a better way. (Nobuhiro Takasaki, closes #4020)\n"
    },
    {
      "commit": "4f97475d326c2773a78561fb874e4f23c25cbcd9",
      "tree": "7e066bc70556dfbb415ddb9f364e8432e8aaf189",
      "parents": [
        "78d21dae9c3a39efb30316d3e38dce120bc1abbd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 17 17:44:42 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 17 17:44:42 2019 +0100"
      },
      "message": "patch 8.1.0941: macros for MS-Windows are inconsistent\n\nProblem:    Macros for MS-Windows are inconsistent, using \"32\", \"3264 and\n            others.\nSolution:   Use MSWIN for all MS-Windows builds.  Use FEAT_GUI_MSWIN for the\n            GUI build. (Hirohito Higashi, closes #3932)\n"
    },
    {
      "commit": "6524068ff3252f1373807f1ebfde21408cef624e",
      "tree": "016c761632389af45db753da47049f2d0ce0a688",
      "parents": [
        "31b816042fca879b11965ddd75287732563ba698"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 10 22:23:26 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 10 22:23:26 2019 +0100"
      },
      "message": "patch 8.1.0889: MS-Windows: a channel write may hang\n\nProblem:    MS-Windows: a channel write may hang.\nSolution:   Check for WriteFile() not writing anything. (Yasuhiro Matsumoto,\n            closes #3920)\n"
    },
    {
      "commit": "c6ddce3f2cf6daa3a545405373b661f8a9bccad9",
      "tree": "080830ec75202e61d48d27e4e951dc849fe4cbfc",
      "parents": [
        "0036201a1a096913840d3df8ff08eb58eaae90a6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 08 12:47:03 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 08 12:47:03 2019 +0100"
      },
      "message": "patch 8.1.0880: MS-Windows: inconsistent selection of winpty/conpty\n\nProblem:    MS-Windows: inconsistent selection of winpty/conpty.\nSolution:   Name option \u0027termwintype\u0027, use ++type argument and \"term_pty\" for\n            term_start(). (Hirohito Higashi, closes #3915)\n"
    },
    {
      "commit": "aa5df7e3127dff6b7336df0903f5c569a40eb174",
      "tree": "491988c562057debdd52dc8198958e4099fd9452",
      "parents": [
        "01a6c21691631ee55744a1799a9725e5d6521cf4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 03 14:53:10 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 03 14:53:10 2019 +0100"
      },
      "message": "patch 8.1.0870: Vim doesn\u0027t use the new ConPTY support in Windows 10\n\nProblem:    Vim doesn\u0027t use the new ConPTY support in Windows 10.\nSolution:   Use ConPTY support, if available. (Nobuhiro Takasaki, closes #3794)\n"
    },
    {
      "commit": "b3051ce82f2e8af95ce3b6a41867f70aee5ecc82",
      "tree": "52f4e45e4fc81f14d02414e5c9e18036ed026dcf",
      "parents": [
        "221cd9f4dd866503777b2fffa721c1403716ad63"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 31 15:52:11 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 31 15:52:11 2019 +0100"
      },
      "message": "patch 8.1.0863: cannot see what signal caused a job to end\n\nProblem:    Cannot see what signal caused a job to end.\nSolution:   Add \"termsig\" to job_info(). (Ozaki Kiichi, closes #3786)\n"
    },
    {
      "commit": "2a4857a1fcf1d188e5b985ac21bcfc532eddde94",
      "tree": "ba6f315d6bf142f534541381ef5713e077080fee",
      "parents": [
        "50948e4ac24314d5a70404bbc592ffc28755ad9f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 29 22:29:07 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 29 22:29:07 2019 +0100"
      },
      "message": "patch 8.1.0845: having job_status() free the job causes problems\n\nProblem:    Having job_status() free the job causes problems.\nSolution:   Do not actually free the job or terminal yet, put it in a list and\n            free it a bit later. Do not use a terminal after checking the job\n            status.  (closes #3873)\n"
    },
    {
      "commit": "dec01206b224fd0fba66e4da20a602e941d74d04",
      "tree": "1100696fd431cba04a9f2faf5ee625ede821a897",
      "parents": [
        "26d982185e21398738a9c688429c0a1840d7c9c3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 28 20:04:24 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 28 20:04:24 2019 +0100"
      },
      "message": "patch 8.1.0838: compiler warning for type conversion\n\nProblem:    Compiler warning for type conversion.\nSolution:   Add a type cast. (Mike Williams)\n"
    },
    {
      "commit": "1ecc5e4a995ade68ae216bb56f6ac9bd5c0b7e4b",
      "tree": "1dd5bf0c048edb2700cfefb407d7fda4033049f6",
      "parents": [
        "203651b9b2e2f478c9a2be25f86ce9712a21a796"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 26 15:12:55 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 26 15:12:55 2019 +0100"
      },
      "message": "patch 8.1.0824: SunOS/Solaris has a problem with ttys\n\nProblem:    SunOS/Solaris has a problem with ttys.\nSolution:   Add mch_isatty() with extra handling for SunOS. (Ozaki Kiichi,\n            closes #3865)\n"
    },
    {
      "commit": "240583869ae477202494dd01ef1e8e2bac650f10",
      "tree": "11fc0b707bd3d9c5dba5da5f706b413373cf0824",
      "parents": [
        "99531a7604ce89ba82f41cdb519669abb61f3df0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 24 23:11:49 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 24 23:11:49 2019 +0100"
      },
      "message": "patch 8.1.0818: MS-Windows: cannot send large data with ch_sendraw()\n\nProblem:    MS-Windows: cannot send large data with ch_sendraw().\nSolution:   Split write into several WriteFile() calls. (Yasuhiro Matsumoto,\n            closes #3823)\n"
    },
    {
      "commit": "31faed60bfd54ff8f612f6b311a6cbcd9e7ebedd",
      "tree": "de12ca4fda2ff96c452f2011c91a81a9e24d58f3",
      "parents": [
        "f88af6e6757b2e373cf6cd366d6a81a066a6ade0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 22 23:01:40 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 22 23:01:40 2019 +0100"
      },
      "message": "patch 8.1.0796: MS-Windows 7: problem with named pipe on channel\n\nProblem:    MS-Windows 7: problem with named pipe on channel.\nSolution:   Put back the disconnect/connect calls. (Yasuhiro Matsumoto,\n            closes #3833)\n"
    },
    {
      "commit": "113e10721f42fc2500b63fe95193f8665658a90c",
      "tree": "4395acb733cc8d7a798df8f4a91c5c1afa084841",
      "parents": [
        "1f20daa1d784e2d8ae13db5b9c8abbb648dd2a03"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 20 15:30:40 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 20 15:30:40 2019 +0100"
      },
      "message": "patch 8.1.0785: depending on the configuration some functions are unused\n\nProblem:    Depending on the configuration some functions are unused.\nSolution:   Add more #ifdefs, remove unused functions. (Dominique Pelle,\n            closes #3822)\n"
    },
    {
      "commit": "b091f30bf38eacb31b9d8c97c82c7e0af9866301",
      "tree": "6bd242d9cad2c17b0ff2144666518faf4bae18b0",
      "parents": [
        "b2e54b009279754e420c992a5e4ec05b0728d915"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 19 14:37:00 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 19 14:37:00 2019 +0100"
      },
      "message": "patch 8.1.0777: Win32: using pipes for channel does not work well\n\nProblem:    Win32: using pipes for channel does not work well.\nSolution:   Use a larger buffer and handle overlaps. (Yasuhiro Matsumoto,\n            closes #3782)\n"
    },
    {
      "commit": "1ac56c2d11da5ffa44db23e1fd0c533d02ab2f66",
      "tree": "6eba7bed7de78a1efe65c23aeec28b1f93b3a2e5",
      "parents": [
        "3020ccb113d397ddf474001dc00a1916ad7abdee"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 17 22:28:22 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 17 22:28:22 2019 +0100"
      },
      "message": "patch 8.1.0770: inconsistent use of ELAPSED_FUNC\n\nProblem:    Inconsistent use of ELAPSED_FUNC.\nSolution:   Consistently use ELAPSED_FUNC.  Also turn ELAPSED_TYPE into a\n            typedef. (Ozaki Kiichi, closes #3815)\n"
    },
    {
      "commit": "e40742526e6ea272c64ca393d7364e4023f4122c",
      "tree": "544891a26da8b96ad32047a2c60e0a5ab723ec2d",
      "parents": [
        "e299bbdf6e7edd633501b7a0e11c349c703c361b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 17 14:31:14 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 17 14:31:14 2019 +0100"
      },
      "message": "patch 8.1.0762: compiler warning\n\nProblem:    Compiler warning.\nSolution:   Add type cast. (Mike Williams)\n"
    },
    {
      "commit": "f9e3e09fdc93be9f0d47afbc6c7df1188c2a5a0d",
      "tree": "a6b07005c19279a4f5d01be14f14861c2657fa95",
      "parents": [
        "05500ece6282407f9f7227aaf564e24147326863"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 13 23:38:42 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 13 23:38:42 2019 +0100"
      },
      "message": "patch 8.1.0743: giving error messages is not flexible\n\nProblem:    Giving error messages is not flexible.\nSolution:   Add semsg().  Change argument from \"char_u *\" to \"char *\", also\n            for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes\n            #3302)  Also make emsg() accept a \"char *\" argument.  Get rid of\n            an enormous number of type casts.\n"
    },
    {
      "commit": "6e5ea8d2a995b32bbc5972edc4f827b959f2702f",
      "tree": "b1ad7d6a83f53220227122719d5eb97dd32ff1e6",
      "parents": [
        "e3c74d249ac36404d8af25f74baf335d143b30e3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 12 22:47:31 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 12 22:47:31 2019 +0100"
      },
      "message": "patch 8.1.0735: cannot handle binary data\n\nProblem:    Cannot handle binary data.\nSolution:   Add the Blob type. (Yasuhiro Matsumoto, closes #3638)\n"
    },
    {
      "commit": "8b62d87e4243d3dc9bf4f17bfe1a8953077a70c9",
      "tree": "3d1d16641f92aedc102ebb93a341256571e0b928",
      "parents": [
        "4164bb204e97a2ff3d6c43cba779bdff9e853892"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 05 00:02:57 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 05 00:02:57 2019 +0100"
      },
      "message": "patch 8.1.0692: if a buffer was deleted a channel can\u0027t write to it\n\nProblem:    If a buffer was deleted a channel can\u0027t write to it.\nSolution:   When the buffer exists but was unloaded, prepare it for writing.\n            (closes #3764)\n"
    },
    {
      "commit": "d155d7a8519987361169459b8d464ae1caef5e9c",
      "tree": "26d437fd67b33ca1b57aca568d4da40151bc9a81",
      "parents": [
        "162b71479bd4dcdb3a2ef9198a1444f6f99e6843"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 21 16:04:21 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 21 16:04:21 2018 +0100"
      },
      "message": "patch 8.1.0615: get_tv function names are not consistent\n\nProblem:    Get_tv function names are not consistent.\nSolution:   Rename to tv_get.\n"
    },
    {
      "commit": "cd1a62d468a55aca68deb3139d83530c7c23568d",
      "tree": "37644066fac5d64c48b955b2f4436f051e661fe9",
      "parents": [
        "142a9758151e470307a80ea37b06ea34558ff5b3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 14 21:32:02 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 14 21:32:02 2018 +0100"
      },
      "message": "patch 8.1.0590: when a job ends the closed channels are not handled\n\nProblem:    When a job ends the closed channels are not handled.\nSolution:   When a job is detected to have ended, check the channels again.\n            (closes #3530)\n"
    },
    {
      "commit": "42a4ea10af687ca56b0810bfbb8884b37fc725b3",
      "tree": "5048827ce44ba2b199f8d131c3bb19e34c5dea49",
      "parents": [
        "839e81e12d81377f74ffc03f8645ce52cbc18b13"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 19 17:36:01 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 19 17:36:01 2018 +0200"
      },
      "message": "patch 8.1.0486: can\u0027t build in MS-Windows\n\nProblem:    Can\u0027t build in MS-Windows.\nSolution:   Put mch_access() call inside #ifdef\n"
    },
    {
      "commit": "839e81e12d81377f74ffc03f8645ce52cbc18b13",
      "tree": "2d01fe4dd88ccd631ca24441ffa6c4825b9b3619",
      "parents": [
        "38654503b04dd5ff4813f81892d9f62db1ff01b9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 19 16:53:39 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 19 16:53:39 2018 +0200"
      },
      "message": "patch 8.1.0485: term_start() does not check if directory is accessible\n\nProblem:    term_start() does not check if directory is accessible.\nSolution:   Add mch_access() call. (Jason Franklin)\n"
    },
    {
      "commit": "42335f50bc6fac444a8af74c81df8369d722a6fb",
      "tree": "fc6596503a515a25a7c2a046321108642848b935",
      "parents": [
        "c787539747f6bb2510a56aa14dbf6808aff5681a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 13 15:33:43 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 13 15:33:43 2018 +0200"
      },
      "message": "patch 8.1.0377: xdiff doesn\u0027t use the Vim memory allocation functions\n\nProblem:    Xdiff doesn\u0027t use the Vim memory allocation functions.\nSolution:   Change the xdl_ defines.  Check for out-of-memory.  Rename\n            \"ignored\" to \"vim_ignored\".\n"
    },
    {
      "commit": "0b1468884a2a1c5d3442cbb7119330e307f0aa3d",
      "tree": "a459e23a481dc0f19bbbe4acbdc35756ed2c7efa",
      "parents": [
        "ed5a9d661248a2160368f1b0ab3a1bf74831db04"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 06 16:27:24 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 06 16:27:24 2018 +0200"
      },
      "message": "patch 8.1.0350: Vim may block on ch_sendraw()\n\nProblem:    Vim may block on ch_sendraw() when the job is sending data back to\n            Vim, which isn\u0027t read yet. (Nate Bosch)\nSolution:   Add the \"noblock\" option to job_start(). (closes #2548)\n"
    },
    {
      "commit": "4b16ee743e26d65ecfb6231f7fd57869c3e5ff0d",
      "tree": "b1166c6e5adf6a7be0718a550a790d8ba675d3b0",
      "parents": [
        "1598f9937a18c056d7b713dc254325c8f8456c8f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 09 22:15:34 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 09 22:15:34 2018 +0200"
      },
      "message": "patch 8.1.0263: channel log doesn\u0027t show part of channel\n\nProblem:    Channel log doesn\u0027t show part of channel.\nSolution:   Add \"sock\", \"out\", \"err\" or \"in\". (Ozaki Kiichi, closes #3303)\n"
    },
    {
      "commit": "c89d4b35300b98cf68b14c89c8e1add51bd857e3",
      "tree": "467d753ac74270da629887f484f797509696d302",
      "parents": [
        "e0be167a805fd547c25ec1ec97fd4c7f13046236"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 08 17:19:02 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 08 17:19:02 2018 +0200"
      },
      "message": "patch 8.1.0167: lock flag in new dictitem is reset in many places\n\nProblem:    Lock flag in new dictitem is reset in many places.\nSolution:   Always reset the lock flag.\n"
    },
    {
      "commit": "e0be167a805fd547c25ec1ec97fd4c7f13046236",
      "tree": "423fb96f7b30329ef0b7ccf3d4b2a02620e7929c",
      "parents": [
        "4cde86c2ef885e82fff3d925dee9fb5671c025cf"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 08 16:50:37 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 08 16:50:37 2018 +0200"
      },
      "message": "patch 8.1.0166: using dict_add_nr_str() is clumsy\n\nProblem:    Using dict_add_nr_str() is clumsy.\nSolution:   Split into two functions. (Ozaki Kiichi, closes #3154)\n"
    },
    {
      "commit": "0e5979a6d491f68c4a8c86fab489016919329a6b",
      "tree": "9b2ae8d0a64cefadf20aafd660a0fce2558dfe39",
      "parents": [
        "2f82ca7d79148ae931bf28a747ede06ba8a65de8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 17 19:36:33 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 17 19:36:33 2018 +0200"
      },
      "message": "patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer\n\nProblem:    Cannot handle pressing CTRL-C in a prompt buffer.\nSolution:   Add prompt_setinterrupt().\n"
    },
    {
      "commit": "493359eb3b10377d5c3524e91d911809b8ac7a76",
      "tree": "9fbef20dacb5f09982441ec052fa872943bfaa20",
      "parents": [
        "d7a137fb0d980545dd567bee9c24cf7b9c3a2eae"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 12 20:25:52 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 12 20:25:52 2018 +0200"
      },
      "message": "patch 8.1.0050: $VIM_TERMINAL is also set when not in a terminal window\n\nProblem:    $VIM_TERMINAL is also set when not in a terminal window.\nSolution:   Pass a flag to indicate whether the job runs in a terminal.\n"
    },
    {
      "commit": "f273245f6433d5d43a5671306b520a3230c35787",
      "tree": "958293fed4c59ee0cb91a491c8c0e32aa0e618c2",
      "parents": [
        "33c5e9fa7af935c61a8aac461b9664c501003440"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 03 14:47:35 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 03 14:47:35 2018 +0200"
      },
      "message": "patch 8.1.0027: difficult to make a plugin that feeds a line to a job\n\nProblem:    Difficult to make a plugin that feeds a line to a job.\nSolution:   Add the nitial code for the \"prompt\" buftype.\n"
    },
    {
      "commit": "e65fffd9b4f02539d8c2717b36a09d0e3250e220",
      "tree": "03a0a559561e869e349eb4dc3c492e1a43cac2c2",
      "parents": [
        "b2ed680ba760ec5eb2c626363ecbda4dd2528794"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 13 14:40:15 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 13 14:40:15 2018 +0200"
      },
      "message": "patch 8.0.1828: get no clue why :gui does not fork\n\nProblem:    Get no clue why :gui does not fork.\nSolution:   Add a channel log message.\n"
    },
    {
      "commit": "b2ed680ba760ec5eb2c626363ecbda4dd2528794",
      "tree": "ded2b5e0116b9e8ccb9571ff389cf4e55ac60471",
      "parents": [
        "7db25fed5de1be922b8cbb0328149469606a0424"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 13 14:05:18 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 13 14:05:18 2018 +0200"
      },
      "message": "patch 8.0.1827: compiler warning for signed/unsigned char pointers\n\nProblem:    Compiler warning for signed/unsigned char pointers. (Cesar Romani)\nSolution:   Change the type of jv_argv.\n"
    },
    {
      "commit": "b0b98d523036d534755bf1cf79d1595e61c3f7ce",
      "tree": "5ca3b11d4f59557fbacfe202ec574664d2132bf2",
      "parents": [
        "b833c1ef7be1ed216a967dd7262473ec97084fa2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 05 21:01:00 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 05 21:01:00 2018 +0200"
      },
      "message": "patch 8.0.1795: lose contact with jobs when :gui forks\n\nProblem:    Lose contact with jobs when :gui forks.\nSolution:   Don\u0027t fork when there is a running job. Make log message for a\n            died job clearer.  Also close the terminal when stderr and stdout\n            are the same FD.\n"
    },
    {
      "commit": "850d427f070a61267ef384a449992e72d2bea12c",
      "tree": "08d8066830718d06d641f0afdf801eb65ec821d2",
      "parents": [
        "13d3b05ed2cf9a54b18b4e8236f0af2c5386200c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 30 10:38:40 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 30 10:38:40 2018 +0200"
      },
      "message": "patch 8.0.1775: MS-Windows: warning for unused variable\n\nProblem:    MS-Windows: warning for unused variable.\nSolution:   Move declaration inside #ifdef. (Mike Williams)\n"
    },
    {
      "commit": "4e9d443a25b451e3f2de62e9eeea439aa4c3f039",
      "tree": "f10f5ab6ad66c232e7679acf86863494559a390f",
      "parents": [
        "4994373c5db80f8fd57e802997ae430afa5ec9ec"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 24 20:54:07 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 24 20:54:07 2018 +0200"
      },
      "message": "patch 8.0.1761: job in terminal window with no output channel is killed\n\nProblem:    Job in terminal window with no output channel is killed.\nSolution:   Keep the job running when the input is a tty. (Ozaki Kiichi,\n            closes #2734)\n"
    },
    {
      "commit": "ebe74b73677b06db7d483987a863b41cee051cc0",
      "tree": "845132a5cdf2177e0d45e500e08443f57b3a3bf4",
      "parents": [
        "a69b39511d769bc88f0854bd026556fdb9bd2817"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 21 23:34:43 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 21 23:34:43 2018 +0200"
      },
      "message": "patch 8.0.1747: MS-Windows: term_start() does not set job_info() cmd\n\nProblem:    MS-Windows: term_start() does not set job_info() cmd.\nSolution:   Share the code from job_start() to set jv_argv.\n"
    },
    {
      "commit": "a69b39511d769bc88f0854bd026556fdb9bd2817",
      "tree": "a1ef5f17d72738d542456d44059885905f5ddf26",
      "parents": [
        "2060892028e05b1325dc0759259254180669eb5e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 21 23:00:27 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 21 23:00:27 2018 +0200"
      },
      "message": "patch 8.0.1746: MS-Windows: channel tests fail\n\nProblem:    MS-Windows: channel tests fail.\nSolution:   Make a copy of the command before splitting it.\n"
    },
    {
      "commit": "2060892028e05b1325dc0759259254180669eb5e",
      "tree": "26858ee1551ef811ca2f48eaea266253334fc2b5",
      "parents": [
        "9980b37a80dc72eef05bf8862aaf475ab17790a5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 21 22:30:08 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 21 22:30:08 2018 +0200"
      },
      "message": "patch 8.0.1745: build failure on MS-Windows\n\nProblem:    Build failure on MS-Windows.\nSolution:   Build job arguments for MS-Windows. Fix allocating job twice.\n"
    },
    {
      "commit": "e1fc51558dc14906a8d9f6a6e7bb1ac2a6ba8f3d",
      "tree": "4128c9bcc4f90ef51c976d324e22a32f81c2aabe",
      "parents": [
        "259a90f7ce4d6d983a7fe5461da88cc52c46d9fe"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 21 19:49:08 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 21 19:49:08 2018 +0200"
      },
      "message": "patch 8.0.1742: cannot get a list of all the jobs\n\nProblem:    Cannot get a list of all the jobs.  Cannot get the command of\n            the job.\nSolution:   When job_info() is called without an argument return a list of\n            jobs.  Otherwise, include the command that the job is running.\n            (Yegappan Lakshmanan)\n"
    },
    {
      "commit": "2e324950b83fcdf60843b54a6a339183370f338a",
      "tree": "c80a94cf7de8b07ad87c83d2188e83620df86cb0",
      "parents": [
        "78a16b0f2a142aae1fdc96c50ab0f25194d0e755"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 14 14:37:07 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 14 14:37:07 2018 +0200"
      },
      "message": "patch 8.0.1709: some non-C89 code may slip through\n\nProblem:    Some non-C89 code may slip through.\nSolution:   Enforce C89 in configure. Fix detected problems. (James McCoy,\n            closes #2735)\n"
    },
    {
      "commit": "f59c6e8cee092433d325ba21a107654a8d84f776",
      "tree": "c099b90bce7ba9db27eeff0eb0c7368b93a70446",
      "parents": [
        "07b46af645fa7a2b95afec3f3d87c91942d9cbd0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 10 15:59:11 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 10 15:59:11 2018 +0200"
      },
      "message": "patch 8.0.1685: can\u0027t set ANSI colors of a terminal window\n\nProblem:    Can\u0027t set ANSI colors of a terminal window.\nSolution:   Add term_setansicolors(), term_getansicolors() and\n            g:term_ansi_colors. (Andy Massimino, closes #2747)\n"
    },
    {
      "commit": "e80757c1545286240d687e9a303cf8eeb3f9a6de",
      "tree": "d7815e52f08aa2e5e58faeee86c1d0f8b63ded80",
      "parents": [
        "756ef113d14428e598274f87672d7f0e34ff9781"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 10 12:42:44 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 10 12:42:44 2018 +0200"
      },
      "message": "patch 8.0.1681: the format attribute fails with MinGW\n\nProblem:    The format attribute fails with MinGW. (John Marriott)\nSolution:   Don\u0027t use the format attribute with MinGW.\n"
    },
    {
      "commit": "4ac2e8d8e60dcc7dbff662e177b86ccfbda7cd9e",
      "tree": "03d2b5045b471034c9e9f14faa99b2740fa0f6bd",
      "parents": [
        "820082914122d5bf7b6e89ff30cf364ad40a560f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 08 12:38:26 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 08 12:38:26 2018 +0200"
      },
      "message": "patch 8.0.1676: no compiler warning for wrong printf format\n\nProblem:    No compiler warning for wrong printf format.\nSolution:   Add a printf attribute for gcc. Fix reported problems. (Dominique\n            Pelle, closes #2789)\n"
    },
    {
      "commit": "22efba47deb7e504142487fdc1617ec638cf0683",
      "tree": "0b7a6e98661786974cd0137b2c5ce99a03dc3120",
      "parents": [
        "b6ed74fef8e088128c45928ee7d02458b2882c1e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 07 13:22:21 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 07 13:22:21 2018 +0200"
      },
      "message": "patch 8.0.1671: crash when passing non-dict argument as env to job_start()\n\nProblem:    Crash when passing non-dict argument as env to job_start().\nSolution:   Check for valid argument. (Ozaki Kiichi, closes #2765)\n"
    },
    {
      "commit": "9af9778209cd0cbb284f6ff7e88f707418089975",
      "tree": "918565320329b05e75862ffa7a31ef5cc9abc48c",
      "parents": [
        "8b31a6ff7a0a8184ddc9997a0cc4aa5f2350b279"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 03 12:51:01 2018 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 03 12:51:01 2018 +0200"
      },
      "message": "patch 8.0.1657: crash when reading a channel\n\nProblem:    Crash when reading a channel.\nSolution:   Clear the write flag before writing. (idea by Shinya Ohyanagi,\n            closes #2769).\n"
    },
    {
      "commit": "135682517bc378cfdb63fe3a6e3553935f69f6ce",
      "tree": "5fa4aaca6a81a5f0b88c1e1da730f74e24acde42",
      "parents": [
        "43cb6262141c0a0853680bd8d0433e04db3bf182"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 16 20:46:58 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 16 20:46:58 2018 +0100"
      },
      "message": "patch 8.0.1609: shell commands in the GUI use a dumb terminal\n\nProblem:    Shell commands in the GUI use a dumb terminal.\nSolution:   Add the \"!\" flag to \u0027guioptions\u0027 to execute system commands in a\n            special terminal window.  Only for Unix now.\n"
    },
    {
      "commit": "25cdd9c33b21ddbd31321c075873bb225450d2d2",
      "tree": "380538cdf0abb9b7f3777c57ada6930930c9e036",
      "parents": [
        "b5b7562475ad032a174b893286172de0d2c157cd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 10 20:28:12 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 10 20:28:12 2018 +0100"
      },
      "message": "patch 8.0.1593: :qall never exits with an active terminal window\n\nProblem:    :qall never exits with an active terminal window.\nSolution:   Add a way to kill a job in a terminal window.\n"
    },
    {
      "commit": "4d8bac8bf593ff087517ff79090c2d224325aae6",
      "tree": "51e277a9012731df3a3dc362af5c5db39991485a",
      "parents": [
        "20586cb4f4d516a60b96cc02a94b810fea8b8cdb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 09 21:33:34 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 09 21:33:34 2018 +0100"
      },
      "message": "patch 8.0.1592: terminal windows in a session are not properly restored\n\nProblem:    Terminal windows in a session are not properly restored.\nSolution:   Add \"terminal\" in \u0027sessionoptions\u0027.  When possible restore the\n            command running in a terminal.\n"
    },
    {
      "commit": "b3292fa2d362b064ff8a115fc0ad794c1f1265d7",
      "tree": "79b4fdcf2368cca8313256f21c0c4e9f7f99f319",
      "parents": [
        "ab5e7c3deb40328e1c7d40534ed8cd9da47a92f8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 13 15:17:58 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 13 15:17:58 2018 +0100"
      },
      "message": "patch 8.0.1516: errors for job options are not very specific\n\nProblem:    Errors for job options are not very specific.\nSolution:   Add more specific error messages.\n"
    },
    {
      "commit": "d23a823669d93fb2a570a039173eefe4856ac806",
      "tree": "617130258eae70e3bd7ef7b6da9c494ffee7b572",
      "parents": [
        "42443c7d7fecc3a2a72154bb6139b028438617c2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 10 18:45:26 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 10 18:45:26 2018 +0100"
      },
      "message": "patch 8.0.1496: clearing a pointer takes two lines\n\nProblem:    Clearing a pointer takes two lines.\nSolution:   Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,\n            closes #2629)\n"
    },
    {
      "commit": "a338adcf222b6a24e26ea5ae6a2ad27f914acb38",
      "tree": "0ffe28d0a3a60c2c1444a991514505c448d4335b",
      "parents": [
        "37badc898b8d167e11553b6d05908ffd35928a6e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 31 20:51:47 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 31 20:51:47 2018 +0100"
      },
      "message": "patch 8.0.1449: slow redrawing with DirectX\n\nProblem:    Slow redrawing with DirectX.\nSolution:   Avoid calling gui_mch_flush() unnecessarily, especially when\n            updating the cursor. (Ken Takata, closes #2560)\n"
    },
    {
      "commit": "620ca2da372dc9c892022faff83d363c67cc5c45",
      "tree": "f1315ceb93d6cdee927169ee0e349a3b352dcbb5",
      "parents": [
        "05684310a53c8a4804441c1c6f8b7fc9e8194940"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 09 19:13:13 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 09 19:13:13 2017 +0100"
      },
      "message": "patch 8.0.1381: ch_readraw() waits for NL if channel mode is NL\n\nProblem:    ch_readraw() waits for NL if channel mode is NL.\nSolution:   Pass a \"raw\" flag to channel_read_block(). (Yasuhiro Matsumoto)\n"
    },
    {
      "commit": "5fd8b78214a52b561780eb5ba000b1a3f5ba1d3d",
      "tree": "ce77a681acf5a5a2abee9392a3f1781a3b85d5ce",
      "parents": [
        "d09a206ee94ccb653707ce9b6e536d4d58886e04"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 11 15:54:00 2017 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 11 15:54:00 2017 +0100"
      },
      "message": "patch 8.0.1286: occasional crash when using a channel\n\nProblem:    Occasional crash when using a channel. (Marek)\nSolution:   Decrement reference count later. (closes #2315)\n"
    },
    {
      "commit": "f33606112a59de6965692840b47d9cb4b924fc97",
      "tree": "14645c554f821e686128f5754b09c9be10909e8e",
      "parents": [
        "5ece3e359c4b96d0f9bf1ce690223545f40f34b8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 01 16:21:31 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 01 16:21:31 2017 +0200"
      },
      "message": "patch 8.0.1170: using termdebug results in 100% CPU time\n\nProblem:    Using termdebug results in 100% CPU time. (tomleb)\nSolution:   Use polling instead of select().\n"
    },
    {
      "commit": "71eeb74a608ddae2b52fb43766616672d0cdda18",
      "tree": "1d2942c8b45fd77feb46fe89412d5bf7c7a8307b",
      "parents": [
        "072412ed45aa20a67aaa7e387d7f6bf59c7d3fbe"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 13 22:18:01 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 13 22:18:01 2017 +0200"
      },
      "message": "patch 8.0.1101: channel write fails if writing to log fails\n\nProblem:    Channel write fails if writing to log fails.\nSolution:   Ignore return value of fwrite(). (Ozaki Kiichi, closes #2081)\n"
    },
    {
      "commit": "5b5adf5b9cd226d775643872e65c62674d6ada95",
      "tree": "4b06972c0929cd46fd955b5a25e872727ffe450d",
      "parents": [
        "9d18961323a2a5c3b609c98ce0d78613c71f3532"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 09 18:16:43 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 09 18:16:43 2017 +0200"
      },
      "message": "patch 8.0.1083: leaking memory in input part of channel\n\nProblem:    Leaking memory in input part of channel.\nSolution:   Clear the input part of channel.  Free the entry. Move failing\n            command test to a separate file to avoid bogus leak reports\n            clouding tests that should not leak.\n"
    },
    {
      "commit": "aba680a8513124e9556956115db4df35bd4a0e56",
      "tree": "3e4417baac7c2a36163abfabc866e70c2224b589",
      "parents": [
        "74121231be50e245d18c64281fdef08e7ec1ed5b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 09 16:42:53 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 09 16:42:53 2017 +0200"
      },
      "message": "patch 8.0.1081: memory leak for the channel write queue\n\nProblem:    Memory leak for the channel write queue.\nSolution:   Free the write queue when clearing a channel.\n"
    },
    {
      "commit": "3c518400d1a51929572dd9fcf77dba94d78d7545",
      "tree": "d87d536f1d0c3621ed013f0cf2b1b9ffe18b3ee1",
      "parents": [
        "1a735d6c9bf4204492b9f9aeba280737fab46ed3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 08 20:47:00 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 08 20:47:00 2017 +0200"
      },
      "message": "patch 8.0.1076: term_start() does not take callbacks\n\nProblem:    term_start() does not take callbacks. When using two terminals\n            without a job only one is read from.  A terminal without a window\n            returns the wrong pty.\nSolution:   Support \"callback\", \"out_cb\" and \"err_cb\".  Fix terminal without a\n            window. Fix reading from multiple channels.\n"
    },
    {
      "commit": "2dc9d26c14e410c09e538cccfa90da19ae344ba4",
      "tree": "a64bfe611511770d918f712be72d9e5c4378ba82",
      "parents": [
        "ba2929b6afd2fc20479912a8dec789be26a38244"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 08 14:39:30 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 08 14:39:30 2017 +0200"
      },
      "message": "patch 8.0.1074: \":term NONE\" does not work on MS-Windows\n\nProblem:    \":term NONE\" does not work on MS-Windows.\nSolution:   Make it work.  Split \"pty\" into \"pty_in\" and \"pty_out\". (Yasuhiro\n            Matsumoto, closes #2058, closes #2045)\n"
    },
    {
      "commit": "dada6d2a8e887309e88cb126f1251d81f91b4b9d",
      "tree": "90b1f483ed53f0b6c5ab963c6becc1e1cd9887fd",
      "parents": [
        "ef68e4fa528165f8dd63156feeffc1af629b8d8a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 02 17:18:35 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 02 17:18:35 2017 +0200"
      },
      "message": "patch 8.0.1036: ++eof argument for terminal only available on MS-Windows\n\nProblem:    ++eof argument for terminal only available on MS-Windows.\nSolution:   Also support ++eof on Unix.  Add a test.\n"
    },
    {
      "commit": "ef68e4fa528165f8dd63156feeffc1af629b8d8a",
      "tree": "14d8384050c19d4279c316b3fcd43e82ba942734",
      "parents": [
        "3346cc4ffb459ecddb97a8c19bcc5834afa4dead"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 02 16:28:36 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 02 16:28:36 2017 +0200"
      },
      "message": "patch 8.0.1035: sending buffer lines to terminal doesn\u0027t work on MS-Windows\n\nProblem:    Sending buffer lines to terminal doesn\u0027t work on MS-Windows.\nSolution:   Use CR instead of NL after every line.  Make the EOF text work\n            properly.  Add the ++eof argument to :terminal.\n"
    },
    {
      "commit": "3346cc4ffb459ecddb97a8c19bcc5834afa4dead",
      "tree": "0c911bd400c68687eafebf5d7be41df5cf67afe3",
      "parents": [
        "995e4afcfe60aa3c214ba680e7b027a4e05cf62b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 02 14:54:21 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 02 14:54:21 2017 +0200"
      },
      "message": "patch 8.0.1034: sending buffer lines to terminal doesn\u0027t work on MS-Windows\n\nProblem:    Sending buffer lines to terminal doesn\u0027t work on MS-Windows.\nSolution:   Send CTRL-D to mark the end of the text. (Yasuhiro Matsumoto,\n            closes #2043) Add the \"eof_chars\" option.\n"
    },
    {
      "commit": "4ab7968aa9d8a624cd56f55b5cad2bedb240eb73",
      "tree": "ba518cce64059e79a13941a0fb0ac799c5d60534",
      "parents": [
        "8d9f0ef5c6a6f6d19c3d02690e1ee347a70b8452"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 27 14:50:47 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 27 14:50:47 2017 +0200"
      },
      "message": "patch 8.0.1005: terminal without job updates slowly in GUI\n\nProblem:    Terminal without job updates slowly in GUI.\nSolution:   Poll for input when a channel has the keep_open flag.\n"
    },
    {
      "commit": "e85928a324ab78912ea0f0ceb2dcd9fd686dc3b0",
      "tree": "33f2d1ec2765520869d95ed91f9f0d52cca3e866",
      "parents": [
        "02e177d3e85e089ebdfba1a7d937150cffcb287a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 27 13:10:10 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 27 13:10:10 2017 +0200"
      },
      "message": "patch 8.0.1003: 64 bit compiler warning\n\nProblem:    64 bit compiler warning\nSolution:   Add type cast. (Mike Williams)\n"
    },
    {
      "commit": "02e177d3e85e089ebdfba1a7d937150cffcb287a",
      "tree": "8dd39ac4f0b474700a6f0935c98ac2fa99586fe8",
      "parents": [
        "0903d56f5ca69bb1fa0bbb00ed2a3d9c4d06ddb4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 26 23:43:28 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 26 23:43:28 2017 +0200"
      },
      "message": "patch 8.0.1002: unnecessarily updating screen after timer callback\n\nProblem:    Unnecessarily updating screen after timer callback.\nSolution:   Check if calling the timer sets must_redraw.\n"
    },
    {
      "commit": "13ebb03e7520c2c34f93444b0146640ca08e7424",
      "tree": "6a56af98898e32e5aa48fb80fb5fce1248e1ec24",
      "parents": [
        "dde81312b031211752d1fcb8539d79f90f324a2e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 26 22:02:51 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 26 22:02:51 2017 +0200"
      },
      "message": "patch 8.0.1000: cannot open a terminal without running a job in it\n\nProblem:    Cannot open a terminal without running a job in it.\nSolution:   Make \":terminal NONE\" open a terminal with a pty.\n"
    },
    {
      "commit": "dc926dd0dd0ef72fe7993f134f2cc1551cd269ea",
      "tree": "3f0385ba597b873381e06396602e257c8210ba42",
      "parents": [
        "77ac9b5c62b35e90df35fc0bfdee57636cedb144"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 19 21:26:44 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 19 21:26:44 2017 +0200"
      },
      "message": "patch 8.0.0969: Coverity warning for unused return value\n\nProblem:    Coverity warning for unused return value.\nSolution:   Add (void) to avoid the warning.\n"
    },
    {
      "commit": "683b7967253ecd44476a5a01d857271c0d3ff4f4",
      "tree": "e73a18c1e3d5ccca473d163ba17942f00fb5600a",
      "parents": [
        "d21f8b54b24e08d1f2b7c6ae32a9bc75ac4fa9fc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 19 15:51:59 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 19 15:51:59 2017 +0200"
      },
      "message": "patch 8.0.0964: channel write buffer does not work with poll()\n\nProblem:    Channel write buffer does not work with poll().\nSolution:   Use the same mechanism as with select().\n"
    },
    {
      "commit": "f66a2cda2c425c441fc5e20c8f8893c9630e3aaa",
      "tree": "0b33a8285fbbd1af576cb28f80fae702cde71fe6",
      "parents": [
        "ea5d6fadbbba614e51e819cb537a3d52600bfcc5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 18 21:53:22 2017 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 18 21:53:22 2017 +0200"
      },
      "message": "patch 8.0.0959: build failure on MS-Windows\n\nProblem:    Build failure on MS-Windows.\nSolution:   Use ioctlsocket() instead of fcntl().\n"
    }
  ],
  "next": "97bd5e6527bf2b48acdd1550acba161e82a5bc99"
}
