)]}'
{
  "commit": "d54e80358e8dc495bed4ab4ec3005ad5ae04af2a",
  "tree": "ccbcf44eff970f941f99dfd7d82d2051c59b9540",
  "parents": [
    "73e1b171150380df588b997805c7cde1b0668270"
  ],
  "author": {
    "name": "Ryan Lortie",
    "email": "desrt@desrt.ca",
    "time": "Mon Feb 04 14:41:25 2013 +0100"
  },
  "committer": {
    "name": "Ryan Lortie",
    "email": "desrt@desrt.ca",
    "time": "Mon Feb 04 14:50:55 2013 +0100"
  },
  "message": "gutils: stop g_get_home_dir() from reading passwd\n\nIn the case that the \"HOME\" environment variable is set (as it is under\nnormal circumstances), we don\u0027t really need to be opening /etc/passwd.\n\nFor historical reasons (ie: how we used to ignore $HOME) and due to the\ngrouping of many unrelated things together (reading username, hostname,\nhome directory, tmpdir, etc.) into one function we were still opening\n/etc/passwd in g_get_home_dir(), even if $HOME was set.\n\nSince earlier commits removed code from it, all that remains in\ng_get_any_init_do() is the logic for dealing with $HOME and reading the\npassword database.\n\nWe now split the logic to deal with $HOME into g_get_home_dir().  With\nonly the password database functionality remaining, g_get_any_init_do()\nis renamed to g_get_user_database_entry() and modified not to set global\nvariables but rather return a struct.  If g_get_home_dir() cannot find\n$HOME, it falls back to calling g_get_user_database_entry() and using\nthe home directory from there.\n\nUse of the \u0027g_utils_global\u0027 lock is further reduced by using\ng_once_init_enter() to protect the critical sections in each of\ng_get_user_database_entry() and g_get_home_dir().\n\nFinally, the g_get_user_name() and g_get_real_name() functions are\nmodified to use the new regime.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "70c4cab73310bca633923c672f173b9f60bb6899",
      "old_mode": 33188,
      "old_path": "glib/gutils.c",
      "new_id": "f2d420ea1b1c4508602e12a2b4cbb04a4e28ab67",
      "new_mode": 33188,
      "new_path": "glib/gutils.c"
    }
  ]
}
