)]}'
{
  "commit": "daea200ec4fabb4a0918b72129db70229da9abd7",
  "tree": "e9f2960de72c1550b1094788aba3f007dec8f4b1",
  "parents": [
    "c5c5109b24ef8add52e7855c753f6677028ef5d3"
  ],
  "author": {
    "name": "Zack Weinberg",
    "email": "zack@owlfolio.org",
    "time": "Tue Feb 24 16:00:03 2026 -0500"
  },
  "committer": {
    "name": "Zack Weinberg",
    "email": "zack@owlfolio.org",
    "time": "Tue Feb 24 16:10:47 2026 -0500"
  },
  "message": "autoheader: preserve hand-written template files\n\nConsistent with the existing behavior of autoreconf regarding\nhand-maintained aclocal.m4, make both autoheader and autoreconf\ncheck for the /* Generated from configure.ac by autoheader */\nline that autoheader emits at the beginning of its generated\nconfiguration header templates.  If the file exists but the\nmarker line is not there, they will now leave the file alone\nunless given the new command line option --replace-handwritten.\n\nFixes \u003chttps://savannah.gnu.org/support/index.php?111388\u003e.\n\nI’m looking for feedback regarding whether the new option should\nalso cause autoreconf to clobber a hand-written aclocal.m4, or any\nother files that _could_ be generated but aren’t always.  (aclocal.m4\nin particular may need coordination with Automake, since the ‘aclocal’\ntool belongs to them.)\n\n* bin/autoheader.in: Add option --replace-handwritten.  If the\n  primary template file already exists and doesn’t begin with a\n  marker comment indicating it was generated by autoheader, don’t\n  modify it unless --replace-handwritten was given.\n* bin/autoreconf.in: Similarly.\n* doc/autoconf.texi: Document new option for autoheader and\n  autoreconf.\n* tests/tools.at: Test new behavior.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7bbf0b152418f51fcb6d17c065378b3f66de8c66",
      "old_mode": 33188,
      "old_path": "NEWS",
      "new_id": "479a80f7967273b44cf8f66d9df2a4bf2affeb5e",
      "new_mode": 33188,
      "new_path": "NEWS"
    },
    {
      "type": "modify",
      "old_id": "537a16b642d63f58dac605bf2949e46204e385e9",
      "old_mode": 33188,
      "old_path": "bin/autoheader.in",
      "new_id": "a7fc17cb26eb65ed341ff9f7fbc2b337d688c3d3",
      "new_mode": 33188,
      "new_path": "bin/autoheader.in"
    },
    {
      "type": "modify",
      "old_id": "56011f72daa9fed7135f4844af9a6cd2ff0036fb",
      "old_mode": 33188,
      "old_path": "bin/autoreconf.in",
      "new_id": "aec1d9f2913582a50095ae518e7cbf679e517f93",
      "new_mode": 33188,
      "new_path": "bin/autoreconf.in"
    },
    {
      "type": "modify",
      "old_id": "5b4f106a46cb64c8f0ff62984772abb3da9ff667",
      "old_mode": 33188,
      "old_path": "doc/autoconf.texi",
      "new_id": "d4cdb9472b8b8555ee668b1e1c77efefc50dad8e",
      "new_mode": 33188,
      "new_path": "doc/autoconf.texi"
    },
    {
      "type": "modify",
      "old_id": "8c08abbb41cb88e097b44e43e05d796600e3293d",
      "old_mode": 33188,
      "old_path": "tests/tools.at",
      "new_id": "8cb2594725c1235a972ab49cb12eb8f42faed4ed",
      "new_mode": 33188,
      "new_path": "tests/tools.at"
    }
  ]
}
