)]}'
{
  "log": [
    {
      "commit": "db1ea3474899ebbd783aba872d3005f95a816d0f",
      "tree": "b70fedd7d69098f5141dbbb09ef41851a61eec8d",
      "parents": [
        "3623d80675e5321b92c2d88a7b7ec6bd998d81d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 17 18:42:49 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:39:24 2014 -0800"
      },
      "message": "Implement some of the missing LFS64 support.\n\nThis gives us:\n\n* \u003cdirent.h\u003e\n  struct dirent64\n  readdir64, readdir64_r, alphasort64, scandir64\n\n* \u003cfcntl.h\u003e\n  creat64, openat64, open64.\n\n* \u003csys/stat.h\u003e\n  struct stat64\n  fstat64, fstatat64, lstat64, stat64.\n\n* \u003csys/statvfs.h\u003e\n  struct statvfs64\n  statvfs64, fstatvfs64.\n\n* \u003csys/vfs.h\u003e\n  struct statfs64\n  statfs64, fstatfs64.\n\nThis also removes some of the incorrect #define hacks we\u0027ve had in the\npast (for stat64, for example, which we promised to clean up way back\nin bug 8472078).\n\nBug: 11865851\nBug: 8472078\nChange-Id: Ia46443521918519f2dfa64d4621027dfd13ac566\n"
    },
    {
      "commit": "a8a3178445e8a229671977411f44c04844dcc1ab",
      "tree": "4bb201cee62087a277da0dc9328597a102309244",
      "parents": [
        "c65cbf97d9769025ad83d6e7f4e7daa58a273a4c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 12:37:12 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 12:37:12 2014 -0800"
      },
      "message": "Add the glibc-compatible d_fileno.\n\nd_ino is the POSIX name, but glibc also offers d_fileno, and\nthat\u0027s what strace is using.\n\nChange-Id: I3fadbe7a64700b42e78c7f4631620e864d43147b\n"
    },
    {
      "commit": "38f0ef3ff7143ae22c07763f23860f445b9ddacb",
      "tree": "51db2f544c77b43f21c2800fb944c2f96868f019",
      "parents": [
        "8a6eec38eb19b5af317b57c15459f9786df83eba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 16:31:36 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 16:31:36 2014 -0800"
      },
      "message": "Our dirent is a dirent64.\n\nChange-Id: Idc9ebfd900fddd4f7c7ac95bc9b74401ebc801a3\n"
    },
    {
      "commit": "c30396f5f225e0b5a83a35432e2d82a7063cfdb9",
      "tree": "84df04116350a6895e76c26490bbcf499a3e3099",
      "parents": [
        "8f9a1eb108f22fc2ce7283ef184d909ec0ca1152"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Mon Oct 29 15:32:54 2012 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 29 07:44:27 2012 -0700"
      },
      "message": "libc: Fix alphasort() signature (and implementation).\n\nThe declaration for alphasort() in \u003cdirent.h\u003e used the deprecated:\n\n  int alphasort(const void*, const void*);\n\nwhile both Posix and GLibc use instead:\n\n  int alphasort(const struct dirent** a, const struct dirent** b);\n\nSee: http://pubs.opengroup.org/onlinepubs/9699919799/functions/alphasort.html\n\nThis patch does the following:\n\n- Update the declaration to match Posix/GLibc\n- Get rid of the upstream BSD code which isn\u0027t compatible with the new\n  signature.\n- Implement a new trivial alphasort() with the right signature, and\n  ensure that it uses strcoll() instead of strcmp().\n- Remove Bionic-specific #ifdef .. #else .. #endif block in\n  dirent_test.cpp which uses alphasort().\n\nEven through strcoll() currently uses strcmp(), this does the right\nthing in the case where we decide to update strcoll() to properly\nimplement locale-specific ordered comparison.\n\nChange-Id: I4fd45604d8a940aaf2eb0ecd7d73e2f11c9bca96\n"
    },
    {
      "commit": "063cfb2084ea4b12d3c85b2d2c44e888f0857eb4",
      "tree": "ec94389e76f6fd79d573c4a689b7c83c4711edd0",
      "parents": [
        "7193731ae6b8083bc7a5e5e468fb98b1dbcf3f3d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 20:55:23 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 26 16:42:06 2012 -0700"
      },
      "message": "Clean up the implementation of the \u003cdirent.h\u003e functions.\n\nChange-Id: I3c647cc9588525afc41fee90ee468d58cd13503a\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
