static gboolean gimp_curves_tool_settings_import (GimpImageMapTool *image_map_tool, GInputStream *input, GError **error) { GimpCurvesTool *tool = GIMP_CURVES_TOOL (image_map_tool); gchar header[64]; gsize bytes_read; if (! g_input_stream_read_all (input, header, sizeof (header), &bytes_read, NULL, error) || bytes_read != sizeof (header)) { g_prefix_error (error, _("Could not read header: ")); return FALSE; } g_seekable_seek (G_SEEKABLE (input), 0, G_SEEK_SET, NULL, NULL); if (g_str_has_prefix (header, "# GIMP Curves File\n")) return gimp_curves_config_load_cruft (tool->config, input, error); return GIMP_IMAGE_MAP_TOOL_CLASS (parent_class)->settings_import (image_map_tool, input, error); }
static gboolean gimp_curves_tool_settings_import (GimpImageMapTool *image_map_tool, const gchar *filename, GError **error) { GimpCurvesTool *tool = GIMP_CURVES_TOOL (image_map_tool); FILE *file; gchar header[64]; file = g_fopen (filename, "rt"); if (! file) { g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno), _("Could not open '%s' for reading: %s"), gimp_filename_to_utf8 (filename), g_strerror (errno)); return FALSE; } if (! fgets (header, sizeof (header), file)) { g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno), _("Could not read header from '%s': %s"), gimp_filename_to_utf8 (filename), g_strerror (errno)); fclose (file); return FALSE; } if (g_str_has_prefix (header, "# GIMP Curves File\n")) { gboolean success; rewind (file); success = gimp_curves_config_load_cruft (tool->config, file, error); fclose (file); return success; } fclose (file); return GIMP_IMAGE_MAP_TOOL_CLASS (parent_class)->settings_import (image_map_tool, filename, error); }