)]}'
{
  "commit": "6f3e2813d72d17289381a289de3cfcb905efbe3d",
  "tree": "d6406532098e2c75dbb11eebc05cf6ec0d78104f",
  "parents": [
    "c39000898fa3f41df184597ebbd211e99df73aab"
  ],
  "author": {
    "name": "David Grayson",
    "email": "davidegrayson@gmail.com",
    "time": "Tue Feb 24 17:33:41 2026 -0800"
  },
  "committer": {
    "name": "LIU Hao",
    "email": "lh_mouse@126.com",
    "time": "Fri Feb 27 15:44:30 2026 +0800"
  },
  "message": "headers/intsafe: Add missing MIN/MAX macros.\n\nI tested this with my test suite at\nhttps://github.com/DavidEGrayson/intsafe\nto make sure the values and types are correct in\n32-bit/64-bit MinGW and 64-bit Cygwin environments.\n\nPotential compatibility issues:\n- The types of smaller macros like UINT8_MAX are \u0027int\u0027,\n  which is different from Microsoft\u0027s intsafe.h, but follows the\n  C specification and allows the preprocessor to understand\n  the macro\u0027s numeric value.\n- LONG_MIN, LONG_MAX, and ULONG_MAX describe \u0027long\u0027 and \u0027unsigned long\u0027,\n  whereas native Windows code might expect them to describe\n  LONG and ULONG, which sometimes have a different size.\n- 128-bit macros from the Microsoft header are not yet supported.\n- Some of these definitions are different than what we have in\n  stdint.h, limits.h, and cfgmgr32.h, so I\u0027d like to submit a patch\n  for those later if this is acceptd.\n\nTo keep things consistent and simple, I followed these rules:\n- A macro does not refer to another macro unless it saves a line of code.\n  Chains of macros are hard to debug because other included headers\n  could break the chain by redefining any macro in the chain.\n- Only use decimal if it makes the number shorter (otherwise use hex).\n- Don\u0027t use uppercase hex digits.\n- Don\u0027t use uppercase suffixes (for compatibility with __MSABI_LONG).\n- Only use \u0027l\u0027 and \u0027ll\u0027 suffixes if necessary.\n- Use a \u0027u\u0027 suffix on any unsigned macro that has a \u0027l\u0027 or \u0027ll\u0027 suffix,\n  to make it clear what the type is.\n- Use a \u0027u\u0027 suffix on any macro describing an unsigned type with\n  32 bits or more.  This ensures those macros will be treated as\n  unsigned in the preprocessor, avoiding surprising situations where\n  macros with the same value like ULONG_MAX and UINT32_MAX are\n  treated differently.\n- Only use subtraction if necessary.\n\nSigned-off-by: David Grayson \u003cdavidegrayson@gmail.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "17f3bda1ebc62e37bfea82cc48bd42e40829ed32",
      "old_mode": 33188,
      "old_path": "mingw-w64-headers/include/intsafe.h",
      "new_id": "0383cf9e305019edae712356d0cae5a6a7a00f66",
      "new_mode": 33188,
      "new_path": "mingw-w64-headers/include/intsafe.h"
    }
  ]
}
