monoeg_g_getenv (const gchar * variable)
{
  const gchar * D.6645;

  D.6645 = getenv (variable);
  return D.6645;
}


monoeg_g_setenv (const gchar * variable, const gchar * value, gboolean overwrite)
{
  gboolean D.6647;
  int D.6648;
  _Bool D.6649;

  D.6648 = setenv (variable, value, overwrite);
  D.6649 = D.6648 == 0;
  D.6647 = (gboolean) D.6649;
  return D.6647;
}


monoeg_g_unsetenv (const gchar * variable)
{
  unsetenv (variable);
}


monoeg_g_win32_getlocale ()
{
  gchar * D.6651;

  D.6651 = 0B;
  return D.6651;
}


monoeg_g_path_is_absolute (const char * filename)
{
  gboolean D.6655;
  char D.6656;
  _Bool D.6657;

  if (filename == 0B) goto <D.6653>; else goto <D.6654>;
  <D.6653>:
  monoeg_g_log (0B, 8, "%s:%d: assertion \'%s\' failed", "gmisc-unix.c", 70, "filename != NULL");
  D.6655 = 0;
  return D.6655;
  <D.6654>:
  D.6656 = *filename;
  D.6657 = D.6656 == 47;
  D.6655 = (gboolean) D.6657;
  return D.6655;
}


monoeg_g_get_home_dir ()
{
  const gchar * D.6659;

  get_pw_data ();
  D.6659 = home_dir;
  return D.6659;
}


get_pw_data ()
{
  const gchar * user_name.0;
  unsigned int D.6666;
  int D.6667;
  char * D.6670;
  gchar * D.6671;
  char * D.6672;
  gchar * D.6673;
  const gchar * home_dir.1;
  const gchar * D.6677;
  const gchar * D.6680;
  struct passwd pw;
  struct passwd * result;
  char buf[4096];

  try
    {
      user_name.0 = user_name;
      if (user_name.0 != 0B) goto <D.6662>; else goto <D.6663>;
      <D.6662>:
      return;
      <D.6663>:
      pthread_mutex_lock (&pw_lock);
      user_name.0 = user_name;
      if (user_name.0 != 0B) goto <D.6664>; else goto <D.6665>;
      <D.6664>:
      pthread_mutex_unlock (&pw_lock);
      return;
      <D.6665>:
      D.6666 = getuid ();
      D.6667 = getpwuid_r (D.6666, &pw, &buf, 4096, &result);
      if (D.6667 == 0) goto <D.6668>; else goto <D.6669>;
      <D.6668>:
      D.6670 = pw.pw_dir;
      D.6671 = monoeg_strdup (D.6670);
      home_dir = D.6671;
      D.6672 = pw.pw_name;
      D.6673 = monoeg_strdup (D.6672);
      user_name = D.6673;
      <D.6669>:
      home_dir.1 = home_dir;
      if (home_dir.1 == 0B) goto <D.6675>; else goto <D.6676>;
      <D.6675>:
      D.6677 = monoeg_g_getenv ("HOME");
      home_dir = D.6677;
      <D.6676>:
      user_name.0 = user_name;
      if (user_name.0 == 0B) goto <D.6678>; else goto <D.6679>;
      <D.6678>:
      D.6680 = monoeg_g_getenv ("USER");
      user_name = D.6680;
      user_name.0 = user_name;
      if (user_name.0 == 0B) goto <D.6681>; else goto <D.6682>;
      <D.6681>:
      user_name = "somebody";
      <D.6682>:
      <D.6679>:
      pthread_mutex_unlock (&pw_lock);
    }
  finally
    {
      pw = {CLOBBER};
      result = {CLOBBER};
      buf = {CLOBBER};
    }
}


monoeg_strdup (const gchar * str)
{
  gchar * D.6688;

  if (str != 0B) goto <D.6686>; else goto <D.6687>;
  <D.6686>:
  D.6688 = __strdup (str);
  return D.6688;
  <D.6687>:
  D.6688 = 0B;
  return D.6688;
}


monoeg_g_get_user_name ()
{
  const gchar * D.6690;

  get_pw_data ();
  D.6690 = user_name;
  return D.6690;
}


monoeg_g_get_tmp_dir ()
{
  const char * tmp_dir.2;
  const gchar * D.6697;
  const gchar * D.6700;
  const gchar * D.6703;
  const gchar * D.6706;

  tmp_dir.2 = tmp_dir;
  if (tmp_dir.2 == 0B) goto <D.6693>; else goto <D.6694>;
  <D.6693>:
  pthread_mutex_lock (&tmp_lock);
  tmp_dir.2 = tmp_dir;
  if (tmp_dir.2 == 0B) goto <D.6695>; else goto <D.6696>;
  <D.6695>:
  D.6697 = monoeg_g_getenv ("TMPDIR");
  tmp_dir = D.6697;
  tmp_dir.2 = tmp_dir;
  if (tmp_dir.2 == 0B) goto <D.6698>; else goto <D.6699>;
  <D.6698>:
  D.6700 = monoeg_g_getenv ("TMP");
  tmp_dir = D.6700;
  tmp_dir.2 = tmp_dir;
  if (tmp_dir.2 == 0B) goto <D.6701>; else goto <D.6702>;
  <D.6701>:
  D.6703 = monoeg_g_getenv ("TEMP");
  tmp_dir = D.6703;
  tmp_dir.2 = tmp_dir;
  if (tmp_dir.2 == 0B) goto <D.6704>; else goto <D.6705>;
  <D.6704>:
  tmp_dir = "/tmp";
  <D.6705>:
  <D.6702>:
  <D.6699>:
  <D.6696>:
  pthread_mutex_unlock (&tmp_lock);
  <D.6694>:
  D.6706 = tmp_dir;
  return D.6706;
}


