)]}'
{
  "commit": "c3f856a43034257ff9abbe004b186ef31a42aa9f",
  "tree": "3e001058a67b3d76a9fe2509594dddda23a88777",
  "parents": [
    "8d101c19d4d9aaedf83a448c925513742d4efcf0"
  ],
  "author": {
    "name": "Paul Eggert",
    "email": "eggert@cs.ucla.edu",
    "time": "Tue Jul 21 08:11:47 2026 -0700"
  },
  "committer": {
    "name": "Paul Eggert",
    "email": "eggert@cs.ucla.edu",
    "time": "Tue Jul 21 12:52:53 2026 -0700"
  },
  "message": "bison: port to recent glibc / Gnulib\n\n* src/muscle-tab.c (muscle_grow, muscle_syncline_grow)\n(muscle_pair_list_grow, muscle_boundary_grow, string_decode)\n(define_directive): Use char *, not char const *, for\npointers that are passed to obstack_free or are stored through.\nThis avoids undefined behavior in C.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "41a7b133d61149c4e7b8a67c08e774cc12ba5f24",
      "old_mode": 33188,
      "old_path": "src/muscle-tab.c",
      "new_id": "9ba37ccb8aab66aef2d812f84eff51f9058766d5",
      "new_mode": 33188,
      "new_path": "src/muscle-tab.c"
    }
  ]
}
