)]}'
{
  "commit": "01b1af321f804ef6dfd40d3054c8757f31096ea8",
  "tree": "03c14bda00b71bb7322ff5d2bfc3e2355b37e932",
  "parents": [
    "fc96d20b2c6d7ff24349ad015119438077d3f1e9"
  ],
  "author": {
    "name": "Tom Tromey",
    "email": "tom@tromey.com",
    "time": "Sat Feb 22 11:48:26 2020 -0700"
  },
  "committer": {
    "name": "Tom Tromey",
    "email": "tom@tromey.com",
    "time": "Sat Feb 22 12:57:25 2020 -0700"
  },
  "message": "Allow TUI windows in Python\n\nThis patch adds support for writing new TUI windows in Python.\n\n2020-02-22  Tom Tromey  \u003ctom@tromey.com\u003e\n\n\t* NEWS: Add entry for gdb.register_window_type.\n\t* tui/tui-layout.h (window_factory): New typedef.\n\t(tui_register_window): Declare.\n\t* tui/tui-layout.c (saved_tui_windows): New global.\n\t(tui_apply_current_layout): Use it.\n\t(tui_register_window): New function.\n\t* python/python.c (do_start_initialization): Call\n\tgdbpy_initialize_tui.\n\t(python_GdbMethods): Add \"register_window_type\" function.\n\t* python/python-internal.h (gdbpy_register_tui_window)\n\t(gdbpy_initialize_tui): Declare.\n\t* python/py-tui.c: New file.\n\t* Makefile.in (SUBDIR_PYTHON_SRCS): Add py-tui.c.\n\ngdb/doc/ChangeLog\n2020-02-22  Tom Tromey  \u003ctom@tromey.com\u003e\n\n\t* python.texi (Python API): Add menu item.\n\t(TUI Windows In Python): New node.\n\ngdb/testsuite/ChangeLog\n2020-02-22  Tom Tromey  \u003ctom@tromey.com\u003e\n\n\t* gdb.python/tui-window.exp: New file.\n\t* gdb.python/tui-window.py: New file.\n\nChange-Id: I85fbfb923a1840450a00a7dce113a05d7f048baa\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "718e500507b664b8d0b5f76ecbcae1e14d288d14",
      "old_mode": 33188,
      "old_path": "gdb/ChangeLog",
      "new_id": "a83d3e76af385e7974821a47fc7b4c0d17faf930",
      "new_mode": 33188,
      "new_path": "gdb/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "8870728c6609022b281dbdda68cb139840f33d5b",
      "old_mode": 33188,
      "old_path": "gdb/Makefile.in",
      "new_id": "f9606b8fc766c77c6006fd024783d7d7ca1fcb6c",
      "new_mode": 33188,
      "new_path": "gdb/Makefile.in"
    },
    {
      "type": "modify",
      "old_id": "18703247fa61109b11cfe68715208d23096a653c",
      "old_mode": 33188,
      "old_path": "gdb/NEWS",
      "new_id": "e33d838dd186a6d7624ef580dd02b96fa1fd8f41",
      "new_mode": 33188,
      "new_path": "gdb/NEWS"
    },
    {
      "type": "modify",
      "old_id": "2b6bbc87693f02c4047e574fafe4cabad941bcdf",
      "old_mode": 33188,
      "old_path": "gdb/doc/ChangeLog",
      "new_id": "572ec3204c205ec1287bd306f749ab9b90b21e69",
      "new_mode": 33188,
      "new_path": "gdb/doc/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "100b2b2b61d926951ba16529e362bcd10ac7da86",
      "old_mode": 33188,
      "old_path": "gdb/doc/python.texi",
      "new_id": "0b8e8808fff052bf8ec3211698abb576f5fdce06",
      "new_mode": 33188,
      "new_path": "gdb/doc/python.texi"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4cb86ae75da4e309285dc4c4eeaa7de067e71d78",
      "new_mode": 33188,
      "new_path": "gdb/python/py-tui.c"
    },
    {
      "type": "modify",
      "old_id": "e2464548a7ef6ea79f00bb5c2b90b0ef4660ca3d",
      "old_mode": 33188,
      "old_path": "gdb/python/python-internal.h",
      "new_id": "bbb66bd0f5c145452bdbcba00aa0f28d540fe9db",
      "new_mode": 33188,
      "new_path": "gdb/python/python-internal.h"
    },
    {
      "type": "modify",
      "old_id": "fbbc159ede3ee5da46c4b8f85bae364423ed5b58",
      "old_mode": 33188,
      "old_path": "gdb/python/python.c",
      "new_id": "6e243c1a07bcebf9b058c0daca671e472912a989",
      "new_mode": 33188,
      "new_path": "gdb/python/python.c"
    },
    {
      "type": "modify",
      "old_id": "8f2fbdf2660db794d5c0ef8d3a27594c54100982",
      "old_mode": 33188,
      "old_path": "gdb/testsuite/ChangeLog",
      "new_id": "6bc24e29e48b1434bb829fde3f7630184b68fd90",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/ChangeLog"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1a4feebe22bf9ce672bbab41311ef28324f44cee",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.python/tui-window.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4deb585f13855eff23400d76bd41f828f1125dd9",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.python/tui-window.py"
    },
    {
      "type": "modify",
      "old_id": "748a10672956d6284bf218447f8329bcb8ca5e7d",
      "old_mode": 33188,
      "old_path": "gdb/tui/tui-layout.c",
      "new_id": "66c74494d1716d2bed16fec18c839bc9fd685809",
      "new_mode": 33188,
      "new_path": "gdb/tui/tui-layout.c"
    },
    {
      "type": "modify",
      "old_id": "6607e8d40d8c2f8dd6ea328f8ad5243db5ea1f41",
      "old_mode": 33188,
      "old_path": "gdb/tui/tui-layout.h",
      "new_id": "90618377e177b731125abe26ec541f7e16af0b96",
      "new_mode": 33188,
      "new_path": "gdb/tui/tui-layout.h"
    }
  ]
}
