mirror of https://github.com/GNOME/gimp.git
pdb, plug-ins: change gimp_temp_name() to gimp_temp_file()
This commit is contained in:
parent
4118fb6a76
commit
6468fa06c7
|
@ -201,7 +201,7 @@ get_parasite_list_invoker (GimpProcedure *procedure,
|
|||
}
|
||||
|
||||
static GimpValueArray *
|
||||
temp_name_invoker (GimpProcedure *procedure,
|
||||
temp_file_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
GimpContext *context,
|
||||
GimpProgress *progress,
|
||||
|
@ -211,24 +211,20 @@ temp_name_invoker (GimpProcedure *procedure,
|
|||
gboolean success = TRUE;
|
||||
GimpValueArray *return_vals;
|
||||
const gchar *extension;
|
||||
gchar *name = NULL;
|
||||
GFile *file = 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);
|
||||
file = gimp_get_temp_file (gimp, extension);
|
||||
}
|
||||
|
||||
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);
|
||||
g_value_set_object (gimp_value_array_index (return_vals, 1), file);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
@ -412,14 +408,14 @@ register_gimp_procs (GimpPDB *pdb)
|
|||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-temp-name
|
||||
* gimp-temp-file
|
||||
*/
|
||||
procedure = gimp_procedure_new (temp_name_invoker);
|
||||
procedure = gimp_procedure_new (temp_file_invoker);
|
||||
gimp_object_set_static_name (GIMP_OBJECT (procedure),
|
||||
"gimp-temp-name");
|
||||
"gimp-temp-file");
|
||||
gimp_procedure_set_static_help (procedure,
|
||||
"Generates a unique filename.",
|
||||
"Generates a unique filename using the temp path supplied in the user's gimprc.",
|
||||
"Generates a unique temporary file.",
|
||||
"Generates a unique file using the temp path supplied in the user's gimprc.",
|
||||
NULL);
|
||||
gimp_procedure_set_static_attribution (procedure,
|
||||
"Josh MacDonald",
|
||||
|
@ -433,12 +429,11 @@ register_gimp_procs (GimpPDB *pdb)
|
|||
NULL,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_procedure_add_return_value (procedure,
|
||||
gimp_param_spec_string ("name",
|
||||
"name",
|
||||
"The new temp filename",
|
||||
FALSE, FALSE, FALSE,
|
||||
NULL,
|
||||
GIMP_PARAM_READWRITE));
|
||||
g_param_spec_object ("file",
|
||||
"file",
|
||||
"The new temp file",
|
||||
G_TYPE_FILE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
}
|
||||
|
|
|
@ -385,13 +385,13 @@ EXPORTS
|
|||
gimp_image_get_component_visible
|
||||
gimp_image_get_default_new_layer_mode
|
||||
gimp_image_get_effective_color_profile
|
||||
gimp_image_get_exported_uri
|
||||
gimp_image_get_filename
|
||||
gimp_image_get_exported_file
|
||||
gimp_image_get_file
|
||||
gimp_image_get_floating_sel
|
||||
gimp_image_get_guide_orientation
|
||||
gimp_image_get_guide_position
|
||||
gimp_image_get_id
|
||||
gimp_image_get_imported_uri
|
||||
gimp_image_get_imported_file
|
||||
gimp_image_get_item_position
|
||||
gimp_image_get_layer_by_name
|
||||
gimp_image_get_layer_by_tattoo
|
||||
|
@ -409,11 +409,10 @@ EXPORTS
|
|||
gimp_image_get_thumbnail_data
|
||||
gimp_image_get_type
|
||||
gimp_image_get_unit
|
||||
gimp_image_get_uri
|
||||
gimp_image_get_vectors
|
||||
gimp_image_get_vectors_by_name
|
||||
gimp_image_get_vectors_by_tattoo
|
||||
gimp_image_get_xcf_uri
|
||||
gimp_image_get_xcf_file
|
||||
gimp_image_grid_get_background_color
|
||||
gimp_image_grid_get_foreground_color
|
||||
gimp_image_grid_get_offset
|
||||
|
@ -470,7 +469,7 @@ EXPORTS
|
|||
gimp_image_set_colormap
|
||||
gimp_image_set_component_active
|
||||
gimp_image_set_component_visible
|
||||
gimp_image_set_filename
|
||||
gimp_image_set_file
|
||||
gimp_image_set_metadata
|
||||
gimp_image_set_resolution
|
||||
gimp_image_set_tattoo_state
|
||||
|
@ -746,7 +745,7 @@ EXPORTS
|
|||
gimp_show_help_button
|
||||
gimp_smudge
|
||||
gimp_smudge_default
|
||||
gimp_temp_name
|
||||
gimp_temp_file
|
||||
gimp_text_fontname
|
||||
gimp_text_get_extents_fontname
|
||||
gimp_text_layer_get_antialias
|
||||
|
|
|
@ -256,37 +256,36 @@ gimp_get_parasite_list (gint *num_parasites)
|
|||
}
|
||||
|
||||
/**
|
||||
* gimp_temp_name:
|
||||
* gimp_temp_file:
|
||||
* @extension: The extension the file will have.
|
||||
*
|
||||
* Generates a unique filename.
|
||||
* Generates a unique temporary file.
|
||||
*
|
||||
* Generates a unique filename using the temp path supplied in the
|
||||
* user's gimprc.
|
||||
* Generates a unique file using the temp path supplied in the user's
|
||||
* gimprc.
|
||||
*
|
||||
* Returns: (transfer full): The new temp filename.
|
||||
* The returned value must be freed with g_free().
|
||||
* Returns: (transfer full): The new temp file.
|
||||
**/
|
||||
gchar *
|
||||
gimp_temp_name (const gchar *extension)
|
||||
GFile *
|
||||
gimp_temp_file (const gchar *extension)
|
||||
{
|
||||
GimpValueArray *args;
|
||||
GimpValueArray *return_vals;
|
||||
gchar *name = NULL;
|
||||
GFile *file = NULL;
|
||||
|
||||
args = gimp_value_array_new_from_types (NULL,
|
||||
G_TYPE_STRING, extension,
|
||||
G_TYPE_NONE);
|
||||
|
||||
return_vals = gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
||||
"gimp-temp-name",
|
||||
"gimp-temp-file",
|
||||
args);
|
||||
gimp_value_array_unref (args);
|
||||
|
||||
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
|
||||
name = GIMP_VALUES_DUP_STRING (return_vals, 1);
|
||||
file = GIMP_VALUES_DUP_FILE (return_vals, 1);
|
||||
|
||||
gimp_value_array_unref (return_vals);
|
||||
|
||||
return name;
|
||||
return file;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ gboolean gimp_attach_parasite (const GimpParasite *parasite);
|
|||
gboolean gimp_detach_parasite (const gchar *name);
|
||||
GimpParasite* gimp_get_parasite (const gchar *name);
|
||||
gchar** gimp_get_parasite_list (gint *num_parasites);
|
||||
gchar* gimp_temp_name (const gchar *extension);
|
||||
GFile* gimp_temp_file (const gchar *extension);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -190,11 +190,11 @@ CODE
|
|||
);
|
||||
}
|
||||
|
||||
sub temp_name {
|
||||
$blurb = 'Generates a unique filename.';
|
||||
sub temp_file {
|
||||
$blurb = 'Generates a unique temporary file.';
|
||||
|
||||
$help = <<'HELP';
|
||||
Generates a unique filename using the temp path supplied in the user's gimprc.
|
||||
Generates a unique file using the temp path supplied in the user's gimprc.
|
||||
HELP
|
||||
|
||||
&josh_pdb_misc('1997');
|
||||
|
@ -206,18 +206,14 @@ HELP
|
|||
);
|
||||
|
||||
@outargs = (
|
||||
{ name => 'name', type => 'string',
|
||||
desc => 'The new temp filename' }
|
||||
{ name => 'file', type => 'file',
|
||||
desc => 'The new temp file' }
|
||||
);
|
||||
|
||||
%invoke = (
|
||||
code => <<'CODE'
|
||||
{
|
||||
GFile *file = gimp_get_temp_file (gimp, extension);
|
||||
|
||||
name = g_file_get_path (file);
|
||||
|
||||
g_object_unref (file);
|
||||
file = gimp_get_temp_file (gimp, extension);
|
||||
}
|
||||
CODE
|
||||
);
|
||||
|
@ -234,7 +230,7 @@ CODE
|
|||
detach_parasite
|
||||
get_parasite
|
||||
get_parasite_list
|
||||
temp_name);
|
||||
temp_file);
|
||||
|
||||
%exports = (app => [@procs], lib => [@procs[0..1,3..7]]);
|
||||
|
||||
|
|
|
@ -102,10 +102,10 @@
|
|||
* that metric, I figure this plug-in is worth about $10,000 USD */
|
||||
/* But you got it free. Magic of Gnu. */
|
||||
|
||||
typedef gboolean (*LoadFn) (const char *infile,
|
||||
const char *outfile);
|
||||
typedef gboolean (*SaveFn) (const char *infile,
|
||||
const char *outfile);
|
||||
typedef gboolean (* LoadFn) (GFile *infile,
|
||||
GFile *outfile);
|
||||
typedef gboolean (* SaveFn) (GFile *infile,
|
||||
GFile *outfile);
|
||||
|
||||
typedef struct _CompressorEntry CompressorEntry;
|
||||
|
||||
|
@ -178,25 +178,25 @@ static GimpPDBStatusType save_image (const CompressorEntry *compressor,
|
|||
gint32 run_mode,
|
||||
GError **error);
|
||||
|
||||
static gboolean valid_file (const gchar *filename);
|
||||
static gboolean valid_file (GFile *file);
|
||||
static const gchar * find_extension (const CompressorEntry *compressor,
|
||||
const gchar *filename);
|
||||
|
||||
static gboolean gzip_load (const char *infile,
|
||||
const char *outfile);
|
||||
static gboolean gzip_save (const char *infile,
|
||||
const char *outfile);
|
||||
static gboolean gzip_load (GFile *infile,
|
||||
GFile *outfile);
|
||||
static gboolean gzip_save (GFile *infile,
|
||||
GFile *outfile);
|
||||
|
||||
static gboolean bzip2_load (const char *infile,
|
||||
const char *outfile);
|
||||
static gboolean bzip2_save (const char *infile,
|
||||
const char *outfile);
|
||||
static gboolean bzip2_load (GFile *infile,
|
||||
GFile *outfile);
|
||||
static gboolean bzip2_save (GFile *infile,
|
||||
GFile *outfile);
|
||||
|
||||
static gboolean xz_load (const char *infile,
|
||||
const char *outfile);
|
||||
static gboolean xz_save (const char *infile,
|
||||
const char *outfile);
|
||||
static goffset get_file_info (const gchar *filename);
|
||||
static gboolean xz_load (GFile *infile,
|
||||
GFile *outfile);
|
||||
static gboolean xz_save (GFile *infile,
|
||||
GFile *outfile);
|
||||
static goffset get_file_info (GFile *file);
|
||||
|
||||
|
||||
G_DEFINE_TYPE (Compressor, compressor, GIMP_TYPE_PLUG_IN)
|
||||
|
@ -424,7 +424,7 @@ save_image (const CompressorEntry *compressor,
|
|||
{
|
||||
gchar *filename = g_file_get_path (file);
|
||||
const gchar *ext;
|
||||
gchar *tmpname;
|
||||
GFile *tmp_file;
|
||||
|
||||
ext = find_extension (compressor, filename);
|
||||
|
||||
|
@ -436,16 +436,16 @@ save_image (const CompressorEntry *compressor,
|
|||
|
||||
/* get a temp name with the right extension and save into it. */
|
||||
|
||||
tmpname = gimp_temp_name (ext + 1);
|
||||
tmp_file = gimp_temp_file (ext + 1);
|
||||
|
||||
if (! (gimp_file_save (run_mode,
|
||||
image,
|
||||
drawable,
|
||||
g_file_new_for_path (tmpname)) &&
|
||||
valid_file (tmpname)))
|
||||
tmp_file) &&
|
||||
valid_file (tmp_file)))
|
||||
{
|
||||
g_unlink (tmpname);
|
||||
g_free (tmpname);
|
||||
g_file_delete (tmp_file, NULL, NULL);
|
||||
g_object_unref (tmp_file);
|
||||
g_free (filename);
|
||||
|
||||
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
||||
|
@ -457,18 +457,19 @@ save_image (const CompressorEntry *compressor,
|
|||
gimp_progress_init_printf (_("Compressing '%s'"),
|
||||
gimp_file_get_utf8_name (file));
|
||||
|
||||
if (! compressor->save_fn (tmpname, filename))
|
||||
if (! compressor->save_fn (tmp_file, file))
|
||||
{
|
||||
g_unlink (tmpname);
|
||||
g_free (tmpname);
|
||||
g_file_delete (tmp_file, NULL, NULL);
|
||||
g_object_unref (tmp_file);
|
||||
g_free (filename);
|
||||
|
||||
return GIMP_PDB_EXECUTION_ERROR;
|
||||
}
|
||||
|
||||
g_unlink (tmpname);
|
||||
g_file_delete (tmp_file, NULL, NULL);
|
||||
g_object_unref (tmp_file);
|
||||
|
||||
gimp_progress_update (1.0);
|
||||
g_free (tmpname);
|
||||
|
||||
/* ask the core to save a thumbnail for compressed XCF files */
|
||||
if (strcmp (ext, ".xcf") == 0)
|
||||
|
@ -489,7 +490,7 @@ load_image (const CompressorEntry *compressor,
|
|||
GimpImage *image;
|
||||
gchar *filename;
|
||||
const gchar *ext;
|
||||
gchar *tmpname;
|
||||
GFile *tmp_file;
|
||||
|
||||
filename = g_file_get_path (file);
|
||||
|
||||
|
@ -503,11 +504,11 @@ load_image (const CompressorEntry *compressor,
|
|||
}
|
||||
|
||||
/* find a temp name */
|
||||
tmpname = gimp_temp_name (ext + 1);
|
||||
tmp_file = gimp_temp_file (ext + 1);
|
||||
|
||||
if (! compressor->load_fn (filename, tmpname))
|
||||
if (! compressor->load_fn (file, tmp_file))
|
||||
{
|
||||
g_free (tmpname);
|
||||
g_object_unref (tmp_file);
|
||||
g_free (filename);
|
||||
*status = GIMP_PDB_EXECUTION_ERROR;
|
||||
return NULL;
|
||||
|
@ -517,10 +518,10 @@ load_image (const CompressorEntry *compressor,
|
|||
|
||||
/* now that we uncompressed it, load the temp file */
|
||||
|
||||
image = gimp_file_load (run_mode, g_file_new_for_path (tmpname));
|
||||
image = gimp_file_load (run_mode, tmp_file);
|
||||
|
||||
g_unlink (tmpname);
|
||||
g_free (tmpname);
|
||||
g_file_delete (tmp_file, NULL, NULL);
|
||||
g_object_unref (tmp_file);
|
||||
|
||||
if (image)
|
||||
{
|
||||
|
@ -543,11 +544,17 @@ load_image (const CompressorEntry *compressor,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
valid_file (const gchar *filename)
|
||||
valid_file (GFile *file)
|
||||
{
|
||||
struct stat buf;
|
||||
gchar *filename;
|
||||
struct stat buf;
|
||||
gboolean valid;
|
||||
|
||||
return g_stat (filename, &buf) == 0 && buf.st_size > 0;
|
||||
filename = g_file_get_path (file);
|
||||
valid = g_stat (filename, &buf) == 0 && buf.st_size > 0;
|
||||
g_free (filename);
|
||||
|
||||
return valid;
|
||||
}
|
||||
|
||||
static const gchar *
|
||||
|
@ -588,33 +595,35 @@ find_extension (const CompressorEntry *compressor,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
gzip_load (const char *infile,
|
||||
const char *outfile)
|
||||
gzip_load (GFile *infile,
|
||||
GFile *outfile)
|
||||
{
|
||||
gboolean ret;
|
||||
int fd;
|
||||
gzFile in;
|
||||
FILE *out;
|
||||
char buf[16384];
|
||||
int len;
|
||||
gchar *in_filename = g_file_get_path (infile);
|
||||
gchar *out_filename = g_file_get_path (outfile);
|
||||
gboolean ret;
|
||||
int fd;
|
||||
gzFile in;
|
||||
FILE *out;
|
||||
char buf[16384];
|
||||
int len;
|
||||
|
||||
ret = FALSE;
|
||||
in = NULL;
|
||||
out = NULL;
|
||||
|
||||
fd = g_open (infile, O_RDONLY | _O_BINARY, 0);
|
||||
fd = g_open (in_filename, O_RDONLY | _O_BINARY, 0);
|
||||
if (fd == -1)
|
||||
goto out;
|
||||
|
||||
in = gzdopen (fd, "rb");
|
||||
if (!in)
|
||||
if (! in)
|
||||
{
|
||||
close (fd);
|
||||
goto out;
|
||||
}
|
||||
|
||||
out = g_fopen (outfile, "wb");
|
||||
if (!out)
|
||||
out = g_fopen (out_filename, "wb");
|
||||
if (! out)
|
||||
goto out;
|
||||
|
||||
while (TRUE)
|
||||
|
@ -642,13 +651,18 @@ gzip_load (const char *infile,
|
|||
if (out)
|
||||
fclose (out);
|
||||
|
||||
g_free (in_filename);
|
||||
g_free (out_filename);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gzip_save (const char *infile,
|
||||
const char *outfile)
|
||||
gzip_save (GFile *infile,
|
||||
GFile *outfile)
|
||||
{
|
||||
gchar *in_filename = g_file_get_path (infile);
|
||||
gchar *out_filename = g_file_get_path (outfile);
|
||||
gboolean ret;
|
||||
FILE *in;
|
||||
int fd;
|
||||
|
@ -661,16 +675,16 @@ gzip_save (const char *infile,
|
|||
in = NULL;
|
||||
out = NULL;
|
||||
|
||||
in = g_fopen (infile, "rb");
|
||||
if (!in)
|
||||
in = g_fopen (in_filename, "rb");
|
||||
if (! in)
|
||||
goto out;
|
||||
|
||||
fd = g_open (outfile, O_CREAT | O_WRONLY | O_TRUNC | _O_BINARY, 0664);
|
||||
fd = g_open (out_filename, O_CREAT | O_WRONLY | O_TRUNC | _O_BINARY, 0664);
|
||||
if (fd == -1)
|
||||
goto out;
|
||||
|
||||
out = gzdopen (fd, "wb");
|
||||
if (!out)
|
||||
if (! out)
|
||||
{
|
||||
close (fd);
|
||||
goto out;
|
||||
|
@ -710,9 +724,11 @@ gzip_save (const char *infile,
|
|||
}
|
||||
|
||||
static gboolean
|
||||
bzip2_load (const char *infile,
|
||||
const char *outfile)
|
||||
bzip2_load (GFile *infile,
|
||||
GFile *outfile)
|
||||
{
|
||||
gchar *in_filename = g_file_get_path (infile);
|
||||
gchar *out_filename = g_file_get_path (outfile);
|
||||
gboolean ret;
|
||||
int fd;
|
||||
BZFILE *in;
|
||||
|
@ -724,7 +740,7 @@ bzip2_load (const char *infile,
|
|||
in = NULL;
|
||||
out = NULL;
|
||||
|
||||
fd = g_open (infile, O_RDONLY | _O_BINARY, 0);
|
||||
fd = g_open (in_filename, O_RDONLY | _O_BINARY, 0);
|
||||
if (fd == -1)
|
||||
goto out;
|
||||
|
||||
|
@ -735,7 +751,7 @@ bzip2_load (const char *infile,
|
|||
goto out;
|
||||
}
|
||||
|
||||
out = g_fopen (outfile, "wb");
|
||||
out = g_fopen (out_filename, "wb");
|
||||
if (!out)
|
||||
goto out;
|
||||
|
||||
|
@ -764,13 +780,18 @@ bzip2_load (const char *infile,
|
|||
if (out)
|
||||
fclose (out);
|
||||
|
||||
g_free (in_filename);
|
||||
g_free (out_filename);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
bzip2_save (const char *infile,
|
||||
const char *outfile)
|
||||
bzip2_save (GFile *infile,
|
||||
GFile *outfile)
|
||||
{
|
||||
gchar *in_filename = g_file_get_path (infile);
|
||||
gchar *out_filename = g_file_get_path (outfile);
|
||||
gboolean ret;
|
||||
FILE *in;
|
||||
int fd;
|
||||
|
@ -783,11 +804,11 @@ bzip2_save (const char *infile,
|
|||
in = NULL;
|
||||
out = NULL;
|
||||
|
||||
in = g_fopen (infile, "rb");
|
||||
in = g_fopen (in_filename, "rb");
|
||||
if (!in)
|
||||
goto out;
|
||||
|
||||
fd = g_open (outfile, O_CREAT | O_WRONLY | O_TRUNC | _O_BINARY, 0664);
|
||||
fd = g_open (out_filename, O_CREAT | O_WRONLY | O_TRUNC | _O_BINARY, 0664);
|
||||
if (fd == -1)
|
||||
goto out;
|
||||
|
||||
|
@ -828,13 +849,18 @@ bzip2_save (const char *infile,
|
|||
if (out)
|
||||
BZ2_bzclose (out);
|
||||
|
||||
g_free (in_filename);
|
||||
g_free (out_filename);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
xz_load (const char *infile,
|
||||
const char *outfile)
|
||||
xz_load (GFile *infile,
|
||||
GFile *outfile)
|
||||
{
|
||||
gchar *in_filename = g_file_get_path (infile);
|
||||
gchar *out_filename = g_file_get_path (outfile);
|
||||
gboolean ret;
|
||||
FILE *in;
|
||||
FILE *out;
|
||||
|
@ -848,11 +874,11 @@ xz_load (const char *infile,
|
|||
in = NULL;
|
||||
out = NULL;
|
||||
|
||||
in = g_fopen (infile, "rb");
|
||||
in = g_fopen (in_filename, "rb");
|
||||
if (!in)
|
||||
goto out;
|
||||
|
||||
out = g_fopen (outfile, "wb");
|
||||
out = g_fopen (out_filename, "wb");
|
||||
if (!out)
|
||||
goto out;
|
||||
|
||||
|
@ -916,13 +942,18 @@ xz_load (const char *infile,
|
|||
if (out)
|
||||
fclose (out);
|
||||
|
||||
g_free (in_filename);
|
||||
g_free (out_filename);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
xz_save (const char *infile,
|
||||
const char *outfile)
|
||||
xz_save (GFile *infile,
|
||||
GFile *outfile)
|
||||
{
|
||||
gchar *in_filename = g_file_get_path (infile);
|
||||
gchar *out_filename = g_file_get_path (outfile);
|
||||
gboolean ret;
|
||||
FILE *in;
|
||||
FILE *out;
|
||||
|
@ -937,12 +968,12 @@ xz_save (const char *infile,
|
|||
in = NULL;
|
||||
out = NULL;
|
||||
|
||||
in = g_fopen (infile, "rb");
|
||||
in = g_fopen (in_filename, "rb");
|
||||
if (!in)
|
||||
goto out;
|
||||
|
||||
file_size = get_file_info (infile);
|
||||
out = g_fopen (outfile, "wb");
|
||||
out = g_fopen (out_filename, "wb");
|
||||
if (!out)
|
||||
goto out;
|
||||
|
||||
|
@ -1010,14 +1041,16 @@ xz_save (const char *infile,
|
|||
if (out)
|
||||
fclose (out);
|
||||
|
||||
g_free (in_filename);
|
||||
g_free (out_filename);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* get file size from a filename */
|
||||
static goffset
|
||||
get_file_info (const gchar *filename)
|
||||
get_file_info (GFile *file)
|
||||
{
|
||||
GFile *file = g_file_new_for_path (filename);
|
||||
GFileInfo *info;
|
||||
goffset size = 1;
|
||||
|
||||
|
@ -1033,7 +1066,5 @@ get_file_info (const gchar *filename)
|
|||
g_object_unref (info);
|
||||
}
|
||||
|
||||
g_object_unref (file);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
|
|
@ -1075,6 +1075,7 @@ mng_save_image (const gchar *filename,
|
|||
|
||||
gchar frame_mode;
|
||||
int frame_delay;
|
||||
GFile *temp_file;
|
||||
gchar *temp_file_name;
|
||||
png_structp pp;
|
||||
png_infop info;
|
||||
|
@ -1218,19 +1219,21 @@ mng_save_image (const gchar *filename,
|
|||
}
|
||||
}
|
||||
|
||||
if ((temp_file_name = gimp_temp_name ("mng")) == NULL)
|
||||
if ((temp_file = gimp_temp_file ("mng")) == NULL)
|
||||
{
|
||||
g_warning ("gimp_temp_name() failed in mng_save_image()");
|
||||
g_warning ("gimp_temp_file() failed in mng_save_image()");
|
||||
goto err3;
|
||||
}
|
||||
|
||||
temp_file_name = g_file_get_path (temp_file);
|
||||
|
||||
if ((outfile = g_fopen (temp_file_name, "wb")) == NULL)
|
||||
{
|
||||
g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
|
||||
_("Could not open '%s' for writing: %s"),
|
||||
gimp_filename_to_utf8 (temp_file_name),
|
||||
gimp_file_get_utf8_name (temp_file),
|
||||
g_strerror (errno));
|
||||
g_unlink (temp_file_name);
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
goto err3;
|
||||
}
|
||||
|
||||
|
@ -1240,7 +1243,7 @@ mng_save_image (const gchar *filename,
|
|||
{
|
||||
g_warning ("Unable to png_create_write_struct() in mng_save_image()");
|
||||
fclose (outfile);
|
||||
g_unlink (temp_file_name);
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
goto err3;
|
||||
}
|
||||
|
||||
|
@ -1251,7 +1254,7 @@ mng_save_image (const gchar *filename,
|
|||
("Unable to png_create_info_struct() in mng_save_image()");
|
||||
png_destroy_write_struct (&pp, NULL);
|
||||
fclose (outfile);
|
||||
g_unlink (temp_file_name);
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
goto err3;
|
||||
}
|
||||
|
||||
|
@ -1260,7 +1263,7 @@ mng_save_image (const gchar *filename,
|
|||
g_warning ("HRM saving PNG in mng_save_image()");
|
||||
png_destroy_write_struct (&pp, &info);
|
||||
fclose (outfile);
|
||||
g_unlink (temp_file_name);
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
goto err3;
|
||||
}
|
||||
|
||||
|
@ -1300,7 +1303,7 @@ mng_save_image (const gchar *filename,
|
|||
g_warning ("This can't be!\n");
|
||||
png_destroy_write_struct (&pp, &info);
|
||||
fclose (outfile);
|
||||
g_unlink (temp_file_name);
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
goto err3;
|
||||
}
|
||||
|
||||
|
@ -1397,13 +1400,14 @@ mng_save_image (const gchar *filename,
|
|||
fclose (outfile);
|
||||
|
||||
infile = g_fopen (temp_file_name, "rb");
|
||||
if (NULL == infile)
|
||||
|
||||
if (! infile)
|
||||
{
|
||||
g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
|
||||
_("Could not open '%s' for reading: %s"),
|
||||
gimp_filename_to_utf8 (temp_file_name),
|
||||
gimp_file_get_utf8_name (temp_file),
|
||||
g_strerror (errno));
|
||||
g_unlink (temp_file_name);
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
goto err3;
|
||||
}
|
||||
|
||||
|
@ -1530,7 +1534,7 @@ mng_save_image (const gchar *filename,
|
|||
}
|
||||
|
||||
fclose (infile);
|
||||
g_unlink (temp_file_name);
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
}
|
||||
|
||||
if (mng_putchunk_mend (handle) != MNG_NOERROR)
|
||||
|
|
|
@ -1672,7 +1672,7 @@ get_bbox (GFile *file,
|
|||
return retval;
|
||||
}
|
||||
|
||||
static gchar *pnmfile;
|
||||
static gchar *pnmfilename;
|
||||
|
||||
/* Open the PostScript file. On failure, NULL is returned. */
|
||||
/* The filepointer returned will give a PNM-file generated */
|
||||
|
@ -1802,7 +1802,7 @@ ps_open (GFile *file,
|
|||
* using standard output as output file.
|
||||
* Thus, use a real output file.
|
||||
*/
|
||||
pnmfile = gimp_temp_name ("pnm");
|
||||
pnmfilename = g_file_get_path (gimp_temp_file ("pnm"));
|
||||
|
||||
/* Build command array */
|
||||
cmdA = g_ptr_array_new ();
|
||||
|
@ -1840,7 +1840,7 @@ ps_open (GFile *file,
|
|||
g_ptr_array_add (cmdA, g_strdup ("-dSAFER"));
|
||||
|
||||
/* Output file name */
|
||||
g_ptr_array_add (cmdA, g_strdup_printf ("-sOutputFile=%s", pnmfile));
|
||||
g_ptr_array_add (cmdA, g_strdup_printf ("-sOutputFile=%s", pnmfilename));
|
||||
|
||||
/* Offset command for gs to get image part with negative x/y-coord. */
|
||||
if ((offx != 0) || (offy != 0))
|
||||
|
@ -1892,7 +1892,7 @@ ps_open (GFile *file,
|
|||
/* Don't care about exit status of ghostscript. */
|
||||
/* Just try to read what it wrote. */
|
||||
|
||||
fd_popen = g_fopen (pnmfile, "rb");
|
||||
fd_popen = g_fopen (pnmfilename, "rb");
|
||||
|
||||
g_ptr_array_free (cmdA, FALSE);
|
||||
g_strfreev (pcmdA);
|
||||
|
@ -1907,7 +1907,7 @@ ps_close (FILE *ifp)
|
|||
{
|
||||
/* If a real outputfile was used, close the file and remove it. */
|
||||
fclose (ifp);
|
||||
g_unlink (pnmfile);
|
||||
g_unlink (pnmfilename);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ static GimpPDBStatusType send_image (const gchar *filename,
|
|||
static gboolean send_dialog (void);
|
||||
static void mail_entry_callback (GtkWidget *widget,
|
||||
gchar *data);
|
||||
static gboolean valid_file (const gchar *filename);
|
||||
static gboolean valid_file (GFile *file);
|
||||
static gchar * find_extension (const gchar *filename);
|
||||
|
||||
#ifdef SENDMAIL
|
||||
|
@ -328,6 +328,7 @@ send_image (const gchar *filename,
|
|||
{
|
||||
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
|
||||
gchar *ext;
|
||||
GFile *tmpfile;
|
||||
gchar *tmpname;
|
||||
#ifndef SENDMAIL /* xdg-email */
|
||||
gchar *mailcmd[9];
|
||||
|
@ -348,13 +349,14 @@ send_image (const gchar *filename,
|
|||
return GIMP_PDB_CALLING_ERROR;
|
||||
|
||||
/* get a temp name with the right extension and save into it. */
|
||||
tmpname = gimp_temp_name (ext + 1);
|
||||
tmpfile = gimp_temp_file (ext + 1);
|
||||
tmpname = g_file_get_path (tmpfile);
|
||||
|
||||
if (! (gimp_file_save (run_mode,
|
||||
image,
|
||||
drawable,
|
||||
g_file_new_for_path (tmpname)) &&
|
||||
valid_file (tmpname)))
|
||||
tmpfile) &&
|
||||
valid_file (tmpfile)))
|
||||
{
|
||||
goto error;
|
||||
}
|
||||
|
@ -416,19 +418,17 @@ send_image (const gchar *filename,
|
|||
* with g_rename().
|
||||
* On the other hand, g_file_move() seems to be more robust.
|
||||
*/
|
||||
GFile *source = g_file_new_for_path (tmpname);
|
||||
GFile *source = tmpfile;
|
||||
GFile *target = g_file_new_for_path (filepath);
|
||||
|
||||
if (! g_file_move (source, target, G_FILE_COPY_NONE, NULL, NULL, NULL, &error))
|
||||
{
|
||||
g_message ("%s", error->message);
|
||||
g_clear_error (&error);
|
||||
g_object_unref (source);
|
||||
g_object_unref (target);
|
||||
goto error;
|
||||
}
|
||||
|
||||
g_object_unref (source);
|
||||
g_object_unref (target);
|
||||
}
|
||||
|
||||
|
@ -521,6 +521,7 @@ cleanup:
|
|||
|
||||
g_free (mailcmd[0]);
|
||||
g_free (tmpname);
|
||||
g_object_unref (tmpfile);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
@ -671,11 +672,17 @@ send_dialog (void)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
valid_file (const gchar *filename)
|
||||
valid_file (GFile *file)
|
||||
{
|
||||
struct stat buf;
|
||||
gchar *filename;
|
||||
struct stat buf;
|
||||
gboolean valid;
|
||||
|
||||
return g_stat (filename, &buf) == 0 && buf.st_size > 0;
|
||||
filename = g_file_get_path (file);
|
||||
valid = g_stat (filename, &buf) == 0 && buf.st_size > 0;
|
||||
g_free (filename);
|
||||
|
||||
return valid;
|
||||
}
|
||||
|
||||
static gchar *
|
||||
|
|
|
@ -743,10 +743,7 @@ make_preview (void)
|
|||
|
||||
if (jsvals.preview)
|
||||
{
|
||||
gchar *tn = gimp_temp_name ("jpeg");
|
||||
GFile *file = g_file_new_for_path (tn);
|
||||
|
||||
g_free (tn);
|
||||
GFile *file = gimp_temp_file ("jpeg");
|
||||
|
||||
if (! undo_touched)
|
||||
{
|
||||
|
|
|
@ -382,7 +382,8 @@ load_image (GFile *file,
|
|||
gchar *lua_quoted = g_shell_quote (lua_script_escaped);
|
||||
gchar *lua_cmd = g_strdup_printf ("dofile(%s)", lua_quoted);
|
||||
gchar *filename = g_file_get_path (file);
|
||||
gchar *filename_out = gimp_temp_name ("exr");
|
||||
GFile *file_out = gimp_temp_file ("exr");
|
||||
gchar *filename_out = g_file_get_path (file_out);
|
||||
gchar *export_filename = g_strdup_printf ("lua/export_on_exit/export_filename=%s",
|
||||
filename_out);
|
||||
|
||||
|
@ -439,7 +440,7 @@ load_image (GFile *file,
|
|||
NULL,
|
||||
error))
|
||||
{
|
||||
image = gimp_file_load (run_mode, g_file_new_for_path (filename_out));
|
||||
image = gimp_file_load (run_mode, file_out);
|
||||
if (image)
|
||||
gimp_image_set_file (image, file);
|
||||
}
|
||||
|
@ -477,7 +478,8 @@ load_thumbnail_image (GFile *file,
|
|||
GimpImage *image = NULL;
|
||||
|
||||
gchar *filename = g_file_get_path (file);
|
||||
gchar *filename_out = gimp_temp_name ("jpg");
|
||||
GFile *file_out = gimp_temp_file ("jpg");
|
||||
gchar *filename_out = g_file_get_path (file_out);
|
||||
gchar *size = g_strdup_printf ("%d", thumb_size);
|
||||
GFile *lua_file = gimp_data_directory_file ("file-raw",
|
||||
"file-darktable-get-size.lua",
|
||||
|
@ -531,8 +533,7 @@ load_thumbnail_image (GFile *file,
|
|||
{
|
||||
gimp_progress_update (0.5);
|
||||
|
||||
image = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
|
||||
g_file_new_for_path (filename_out));
|
||||
image = gimp_file_load (GIMP_RUN_NONINTERACTIVE, file_out);
|
||||
if (image)
|
||||
{
|
||||
/* the size reported by raw files isn't precise,
|
||||
|
|
|
@ -321,7 +321,8 @@ load_image (GFile *file,
|
|||
{
|
||||
GimpImage *image = NULL;
|
||||
gchar *filename = g_file_get_path (file);
|
||||
gchar *filename_out = gimp_temp_name ("tif");
|
||||
GFile *file_out = gimp_temp_file ("tif");
|
||||
gchar *filename_out = g_file_get_path (file_out);
|
||||
gchar *rawtherapee_stdout = NULL;
|
||||
|
||||
gboolean search_path = FALSE;
|
||||
|
@ -357,7 +358,7 @@ load_image (GFile *file,
|
|||
NULL,
|
||||
error))
|
||||
{
|
||||
image = gimp_file_load (run_mode, g_file_new_for_path (filename_out));
|
||||
image = gimp_file_load (run_mode, file_out);
|
||||
if (image)
|
||||
gimp_image_set_file (image, file);
|
||||
}
|
||||
|
@ -381,8 +382,10 @@ load_thumbnail_image (GFile *file,
|
|||
{
|
||||
GimpImage *image = NULL;
|
||||
gchar *filename = g_file_get_path (file);
|
||||
gchar *filename_out = gimp_temp_name ("jpg");
|
||||
gchar *thumb_pp3 = gimp_temp_name ("pp3");
|
||||
GFile *file_out = gimp_temp_file ("jpg");
|
||||
gchar *filename_out = g_file_get_path (file_out);
|
||||
GFile *thumb_pp3_file = gimp_temp_file ("pp3");
|
||||
gchar *thumb_pp3 = g_file_get_path (thumb_pp3_file);
|
||||
FILE *thumb_pp3_f = fopen (thumb_pp3, "w");
|
||||
gchar *rawtherapee_stdout = NULL;
|
||||
const char *pp3_content =
|
||||
|
@ -477,8 +480,7 @@ load_thumbnail_image (GFile *file,
|
|||
{
|
||||
gimp_progress_update (0.5);
|
||||
|
||||
image = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
|
||||
g_file_new_for_path (filename_out));
|
||||
image = gimp_file_load (GIMP_RUN_NONINTERACTIVE, file_out);
|
||||
if (image)
|
||||
{
|
||||
/* is this needed for thumbnails? */
|
||||
|
|
|
@ -770,8 +770,9 @@ gfig_save_as_parasite (void)
|
|||
GFigObj *
|
||||
gfig_load_from_parasite (void)
|
||||
{
|
||||
FILE *fp;
|
||||
GFile *file;
|
||||
gchar *fname;
|
||||
FILE *fp;
|
||||
GimpParasite *parasite;
|
||||
GFigObj *gfig;
|
||||
|
||||
|
@ -780,14 +781,15 @@ gfig_load_from_parasite (void)
|
|||
if (! parasite)
|
||||
return NULL;
|
||||
|
||||
fname = gimp_temp_name ("gfigtmp");
|
||||
file = gimp_temp_file ("gfigtmp");
|
||||
fname = g_file_get_path (file);
|
||||
|
||||
fp = g_fopen (fname, "wb");
|
||||
if (!fp)
|
||||
if (! fp)
|
||||
{
|
||||
g_message (_("Error trying to open temporary file '%s' "
|
||||
"for parasite loading: %s"),
|
||||
gimp_filename_to_utf8 (fname), g_strerror (errno));
|
||||
gimp_file_get_utf8_name (file), g_strerror (errno));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -804,6 +806,7 @@ gfig_load_from_parasite (void)
|
|||
g_unlink (fname);
|
||||
|
||||
g_free (fname);
|
||||
g_object_unref (file);
|
||||
|
||||
return gfig;
|
||||
}
|
||||
|
|
|
@ -81,13 +81,16 @@ screenshot_gnome_shell_shoot (ScreenshotValues *shootvals,
|
|||
GimpImage **image,
|
||||
GError **error)
|
||||
{
|
||||
GFile *file;
|
||||
gchar *filename;
|
||||
const gchar *method = NULL;
|
||||
GVariant *args = NULL;
|
||||
GVariant *retval;
|
||||
gboolean success;
|
||||
|
||||
filename = gimp_temp_name ("png");
|
||||
file = gimp_temp_file ("png");
|
||||
|
||||
filename = g_file_get_path (file);
|
||||
|
||||
switch (shootvals->shoot_type)
|
||||
{
|
||||
|
@ -157,8 +160,8 @@ screenshot_gnome_shell_shoot (ScreenshotValues *shootvals,
|
|||
break;
|
||||
}
|
||||
|
||||
g_free (filename);
|
||||
filename = NULL;
|
||||
g_clear_pointer (&filename, g_free);
|
||||
g_clear_object (&file);
|
||||
|
||||
retval = g_dbus_proxy_call_sync (proxy, method, args,
|
||||
G_DBUS_CALL_FLAGS_NONE,
|
||||
|
|
Loading…
Reference in New Issue