)]}'
{
  "commit": "7d484017077089ac2642b89da8984ca46a07323d",
  "tree": "acd3526e0ecd0a3a860c867c100bddf820dd9f70",
  "parents": [
    "1fc13bf576b82d5e5b64ba94e6306360b340ec4b"
  ],
  "author": {
    "name": "Paul Smith",
    "email": "psmith@gnu.org",
    "time": "Thu Sep 08 02:25:20 2022 -0400"
  },
  "committer": {
    "name": "Paul Smith",
    "email": "psmith@gnu.org",
    "time": "Thu Sep 08 03:04:15 2022 -0400"
  },
  "message": "[SV 63016] Don\u0027t fail exporting to $(shell ...)\n\nThe fix for SV 10593 caused recursive expansion errors when exporting\na variable that contains a $(shell ...) invocation.  If we see this\ntype of recursion, ignore it and expand to the empty string rather\nthan failing.\n\n* src/variable.h (env_recursion): New global variable.\n* src/variable.c (target_environment): If creating the environment\nfor a $(shell ...) function increment env_recursion.  Remove the\ncheck for expansion in a shell function context.\n* src/expand.c (recursively_expand_for_file): Check for recursive\nexpansion in a $(shell ...) environment context and if present,\nshow the verbose message and return the empty string.\n* tests/scripts/functions/shell: Add a test for this situation.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6bc2ac59a2108023dbb5069e1ee92ec3e7e43cbc",
      "old_mode": 33188,
      "old_path": "src/expand.c",
      "new_id": "2acb32c5445d9eb9f0a478aa83c3e89a1b8c2e54",
      "new_mode": 33188,
      "new_path": "src/expand.c"
    },
    {
      "type": "modify",
      "old_id": "6c3d21250ba9fbfd99e96d00b609d806d730c6ce",
      "old_mode": 33188,
      "old_path": "src/variable.c",
      "new_id": "b5c43c35c707ea5ec1580145432662b9dfccee8a",
      "new_mode": 33188,
      "new_path": "src/variable.c"
    },
    {
      "type": "modify",
      "old_id": "a28749c60747d76ac2fc4ebcb1320abe6de0ba43",
      "old_mode": 33188,
      "old_path": "src/variable.h",
      "new_id": "155d9d63721a53ebd727a84d2e8d2dba7d430361",
      "new_mode": 33188,
      "new_path": "src/variable.h"
    },
    {
      "type": "modify",
      "old_id": "1ca1e9abeb7bc6712e90fa7e30eacc731e913e69",
      "old_mode": 33188,
      "old_path": "tests/scripts/functions/shell",
      "new_id": "a5bd5ddcffb866999bb44d2a1626338196c8db4c",
      "new_mode": 33188,
      "new_path": "tests/scripts/functions/shell"
    }
  ]
}
