temp_filename_f = xmalloc (temp_filename_length + 2); strcpy (temp_filename_f, temp_filename); temp_filename_f[temp_filename_length] = '.'; temp_filename_f[temp_filename_length + 1] = 'f'; temp_filename_f[temp_filename_length + 2] = '\0';
choose_temp_base (){  char *base = 0;  int len;  base = choose_temp_base_try (getenv ("TMPDIR"), base);  base = choose_temp_base_try (getenv ("TMP"), base);  base = choose_temp_base_try (getenv ("TEMP"), base);#ifdef P_tmpdir  base = choose_temp_base_try (P_tmpdir, base);#endif  base = choose_temp_base_try (concat4 (dir_separator_str, "usr",                                         dir_separator_str, "tmp"),                                 base);  base = choose_temp_base_try (concat (dir_separator_str, "tmp"), base);   /* If all else fails, use the current directory! */  if (base == (char *)0)    base = concat (".", dir_separator_str);  len = strlen (base);  temp_filename = xmalloc (len + strlen (concat (dir_separator_str,                                                  "gfXXXXXX")) + 1);  strcpy (temp_filename, base);  if (len > 0 && temp_filename[len-1] != '/'      && temp_filename[len-1] != DIR_SEPARATOR)    temp_filename[len++] = DIR_SEPARATOR;  strcpy (temp_filename + len, "gfXXXXXX");  mktemp (temp_filename);  temp_filename_length = strlen (temp_filename);  if (temp_filename_length == 0)    abort ();}