static GimpValueArray * temp_name_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GimpValueArray *args, GError **error) { gboolean success = TRUE; GimpValueArray *return_vals; const gchar *extension; gchar *name = NULL; extension = g_value_get_string (gimp_value_array_index (args, 0)); if (success) { GFile *file = gimp_get_temp_file (gimp, extension); name = g_file_get_path (file); g_object_unref (file); } return_vals = gimp_procedure_get_return_values (procedure, success, error ? *error : NULL); if (success) g_value_take_string (gimp_value_array_index (return_vals, 1), name); return return_vals; }
static GFile * file_remote_get_temp_file (Gimp *gimp, GFile *file) { gchar *basename; GFile *temp_file = NULL; basename = g_path_get_basename (gimp_file_get_utf8_name (file)); if (basename) { const gchar *ext = strchr (basename, '.'); if (ext && strlen (ext)) temp_file = gimp_get_temp_file (gimp, ext + 1); g_free (basename); } if (! temp_file) temp_file = gimp_get_temp_file (gimp, "xxx"); return temp_file; }