)]}'
{
  "commit": "08ca817286cef4a50486ff2dc212ec148ff956ae",
  "tree": "fc91c0c0b95ac72b0f1b3655925f96511f93105e",
  "parents": [
    "b6ac75bc5918c3a0a2200faa20aedebc76d5b349"
  ],
  "author": {
    "name": "Nigel Tao",
    "email": "nigeltao@golang.org",
    "time": "Wed Mar 08 22:14:31 2023 +1100"
  },
  "committer": {
    "name": "Nigel Tao",
    "email": "nigeltao@golang.org",
    "time": "Tue Mar 21 11:35:05 2023 +0000"
  },
  "message": "font: have Glyph return !ok for U+FFFD substitute\n\nThe other return values may still be non-zero, but this lets callers\nidentify when substitution happens.\n\n\"TODO: is falling back on the U+FFFD glyph the responsibility of the\nDrawer or the Face?\" was resolved. The answer is \"the Face\". For\nkerning, the previous rune is unchanged (and not set to U+FFFD).\n\nThis also fixes an inconsistency in the basicfont.Face implementation,\nwhere GlyphAdvance and GlyphBounds would unconditionally return a\nnon-zero advance, but Glyph could return a zero advance when the Face\ndoesn\u0027t have a U+FFFD entry.\n\nFixes golang/go#58252\n\nChange-Id: Ie97e68e1d5e2efd13c9e84ad12db4495d83a5ca3\nReviewed-on: https://go-review.googlesource.com/c/image/+/474376\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nReviewed-by: Nigel Tao (INACTIVE; USE @golang.org INSTEAD) \u003cnigeltao@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\nRun-TryBot: Nigel Tao \u003cnigeltao@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "15503818ff3996ee544a121973ec3510c7dcdae9",
      "old_mode": 33188,
      "old_path": "font/basicfont/basicfont.go",
      "new_id": "173c0610f53a788aa12a7cbd0128de710cee72f8",
      "new_mode": 33188,
      "new_path": "font/basicfont/basicfont.go"
    },
    {
      "type": "modify",
      "old_id": "d1a75350d92909a0da62dd8d71b26e77fab7136a",
      "old_mode": 33188,
      "old_path": "font/font.go",
      "new_id": "6b9b9bc89c8f469d2667d04503cfbabc8c0c8049",
      "new_mode": 33188,
      "new_path": "font/font.go"
    },
    {
      "type": "modify",
      "old_id": "231fdbea977f7134d3916f251161eb6f72c48fd8",
      "old_mode": 33188,
      "old_path": "font/opentype/opentype.go",
      "new_id": "694ac47bfe99317350fda49b0ddf143337b6375b",
      "new_mode": 33188,
      "new_path": "font/opentype/opentype.go"
    }
  ]
}
