)]}'
{
  "commit": "d95704341280fc521dc2b16bbbc5858f6647e2c3",
  "tree": "3b5b7b5afc47bd6c7fb3818f0af6792e30fa5fd9",
  "parents": [
    "4a44d85e28bd282f53ccf0fa933dd71b8744a229"
  ],
  "author": {
    "name": "Laszlo Ersek",
    "email": "lersek@redhat.com",
    "time": "Tue Aug 20 00:35:33 2013 +0200"
  },
  "committer": {
    "name": "Luiz Capitulino",
    "email": "lcapitulino@redhat.com",
    "time": "Tue Aug 20 11:51:59 2013 -0400"
  },
  "message": "OptsVisitor: introduce basic list modes\n\nWe\u0027re going to need more state while processing a list of repeated\noptions. This change eliminates \"repeated_opts_first\" and adds a new state\nvariable:\n\n  list_mode       repeated_opts  repeated_opts_first\n  --------------  -------------  -------------------\n  LM_NONE         NULL           false\n  LM_STARTED      non-NULL       true\n  LM_IN_PROGRESS  non-NULL       false\n\nAdditionally, it is documented that lookup_scalar() and processed(), both\ncalled by opts_type_XXX(), are invalid in LM_STARTED -- generated qapi\ncode calls opts_next_list() to allocate the very first link before trying\nto parse a scalar into it. List mode restrictions are expressed in\npositive / inclusive form.\n\nSigned-off-by: Laszlo Ersek \u003clersek@redhat.com\u003e\nTested-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "174bd8bdb085f03a530d8fa8d1cd95dfc27bcd6f",
      "old_mode": 33188,
      "old_path": "qapi/opts-visitor.c",
      "new_id": "29fd1abd957a2aad1abe5288ca42d7c3207bf34c",
      "new_mode": 33188,
      "new_path": "qapi/opts-visitor.c"
    }
  ]
}
