)]}'
{
  "commit": "6e692a4aecd3060972f22df6c22a4e33d2c46edd",
  "tree": "54adf59f9c0cbd0a5701909255892f18bf04c490",
  "parents": [
    "556220179be56440292bfa4f9545ec9b39cbe715"
  ],
  "author": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Tue Oct 21 13:07:53 2025 -0400"
  },
  "committer": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Tue Oct 21 13:07:53 2025 -0400"
  },
  "message": "Portable strncpy()/stpncpy().\n\nRather than just have the trivial byte-by-byte implementations, defer to\nstrnlen()/memcpy()/memset().\n\nUse these for arm/arm64, and riscv64. x86-64 already has sse2 assembler\nfor these.\n\nChange-Id: Ibc3193dd32d72df00cff953a5adeb8c8ec1c96dc\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4c35797f734c8813f89cb12d95e17e2d0df2be3c",
      "old_mode": 33188,
      "old_path": "libc/Android.bp",
      "new_id": "971c2b39da3ad125c5a044f5adc016ca091d14ba",
      "new_mode": 33188,
      "new_path": "libc/Android.bp"
    },
    {
      "type": "modify",
      "old_id": "1a051894bc8d0a5a42de814d061a1ebda47378af",
      "old_mode": 33188,
      "old_path": "libc/bionic/string.cpp",
      "new_id": "482bf3e63a8a519a662dae2962856c890f3a486c",
      "new_mode": 33188,
      "new_path": "libc/bionic/string.cpp"
    },
    {
      "type": "delete",
      "old_id": "6bdee5de164822790ecf155d2e6d01545ce7a471",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/stpncpy.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d6d8647fc763bff48c3c434bed6a6b74066d053e",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/strncpy.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
