)]}'
{
  "commit": "c4641723fbf6532b2e80a662e15573b31276bc73",
  "tree": "de697c9552af66b0438e5c49d8cdebd26ca4b22c",
  "parents": [
    "d05dded1676924e8894c90f7a7c3527b492bcdff"
  ],
  "author": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Thu Jul 07 23:47:19 2011 -0400"
  },
  "committer": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Fri Jul 08 00:09:31 2011 -0400"
  },
  "message": "[API] Add compose() and decompose() unicode funcs, rename other ones\n\nAdd compose() and decompose() unicode funcs.  These implement\npair-wise canonical composition/decomposition.\n\nThe glib/icu implementations are lacking for now.  We are adding\nAPI for this to glib, but I cannot find any useful API in ICU.\nMay end of implementing these in-house.\n\nChanged all unicode_funcs callback names to remove the \"_get\" part.\nEg, hb_unicode_get_script_func_t is now hb_unicode_script_func_t,\nand hb_unicode_get_script() is hb_unicode_script() now.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c5fe068bce077750e995f74a701c5bf36d2d27bf",
      "old_mode": 33188,
      "old_path": "TODO",
      "new_id": "e15e295f571f4913fa5d9649bd8999f36616c80d",
      "new_mode": 33188,
      "new_path": "TODO"
    },
    {
      "type": "modify",
      "old_id": "109b9ba7195abf7b3d39e78d5480505b0d0349c8",
      "old_mode": 33188,
      "old_path": "src/hb-glib.cc",
      "new_id": "de909729a1a5922705227d11c20b7a739aff66b4",
      "new_mode": 33188,
      "new_path": "src/hb-glib.cc"
    },
    {
      "type": "modify",
      "old_id": "1e0134cbd74535b0d7f31bc3acf090dade52fe5f",
      "old_mode": 33188,
      "old_path": "src/hb-icu.cc",
      "new_id": "4797cc5b89a009269c7c112a7ca7f90a6d89b8ab",
      "new_mode": 33188,
      "new_path": "src/hb-icu.cc"
    },
    {
      "type": "modify",
      "old_id": "248f2bd4abb035056e40bda47505b135c31fafa4",
      "old_mode": 33188,
      "old_path": "src/hb-ot-shape.cc",
      "new_id": "8378e813cac71a872fbcbef1c951c060a84896e5",
      "new_mode": 33188,
      "new_path": "src/hb-ot-shape.cc"
    },
    {
      "type": "modify",
      "old_id": "5db6cfe07509244b73372bff314320eb2e07d714",
      "old_mode": 33188,
      "old_path": "src/hb-shape.cc",
      "new_id": "1ff830a7d35aae1b98842223080d761e5b04f2fa",
      "new_mode": 33188,
      "new_path": "src/hb-shape.cc"
    },
    {
      "type": "modify",
      "old_id": "55b94a75879e97b7dcd8410a29013b141f1e9795",
      "old_mode": 33188,
      "old_path": "src/hb-unicode-private.hh",
      "new_id": "2b0ec99d780cf35f730dd6043db21b9ad12f3edc",
      "new_mode": 33188,
      "new_path": "src/hb-unicode-private.hh"
    },
    {
      "type": "modify",
      "old_id": "ba0004b48d227820c871d1fb22f3b8e750973d9d",
      "old_mode": 33188,
      "old_path": "src/hb-unicode.cc",
      "new_id": "e2043c2215208a7504a57555942211052f7bd63c",
      "new_mode": 33188,
      "new_path": "src/hb-unicode.cc"
    },
    {
      "type": "modify",
      "old_id": "e7a200565aec5a9ac0bf81351d7653f28912c354",
      "old_mode": 33188,
      "old_path": "src/hb-unicode.h",
      "new_id": "9aa97a6b1c4bded7ccb0b78b4da6aee12ad65a40",
      "new_mode": 33188,
      "new_path": "src/hb-unicode.h"
    },
    {
      "type": "modify",
      "old_id": "c84ba8639b6c3c1710dd20685ffe2bccb143d608",
      "old_mode": 33188,
      "old_path": "test/test-unicode.c",
      "new_id": "a691cb4d59a3953cd43d4891d6f38fbf9c5fce10",
      "new_mode": 33188,
      "new_path": "test/test-unicode.c"
    }
  ]
}
