gimp r25230 - in trunk: . plug-ins/common
- From: muks svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r25230 - in trunk: . plug-ins/common
- Date: Tue, 25 Mar 2008 22:57:06 +0000 (GMT)
Author: muks
Date: Tue Mar 25 22:57:06 2008
New Revision: 25230
URL: http://svn.gnome.org/viewvc/gimp?rev=25230&view=rev
Log:
2008-03-25 Mukund Sivaraman <muks mukund org>
* plug-ins/common/mng.c: More code cleanups.
Modified:
trunk/ChangeLog
trunk/plug-ins/common/mng.c
Modified: trunk/plug-ins/common/mng.c
==============================================================================
--- trunk/plug-ins/common/mng.c (original)
+++ trunk/plug-ins/common/mng.c Tue Mar 25 22:57:06 2008
@@ -172,43 +172,44 @@
* Function prototypes
*/
-static mng_ptr myalloc (mng_size_t size);
-static void myfree (mng_ptr ptr,
- mng_size_t size);
-static mng_bool myopenstream (mng_handle handle);
-static mng_bool myclosestream (mng_handle handle);
-static mng_bool mywritedata (mng_handle handle,
- mng_ptr buf,
- mng_uint32 size,
- mng_uint32 *written_size);
-
-static gint32 parse_chunks_type_from_layer_name (const gchar *str);
-static gint32 parse_disposal_type_from_layer_name (const gchar *str);
-static gint32 parse_ms_tag_from_layer_name (const gchar *str);
-
-static gint find_unused_ia_colour (guchar *pixels,
- gint numpixels,
- gint *colors);
-static gboolean ia_has_transparent_pixels (guchar *pixels,
- gint numpixels);
-static gboolean respin_cmap (png_structp png_ptr,
- png_infop png_info_ptr,
- guchar *remap,
- gint32 image_id,
- GimpDrawable *drawable);
-
-static gboolean mng_save_image (const gchar *filename,
- gint32 image_id,
- gint32 drawable_id,
- gint32 original_image_id);
-static gint mng_save_dialog (gint32 image_id);
-
-static void query (void);
-static void run (const gchar *name,
- gint nparams,
- const GimpParam *param,
- gint *nreturn_vals,
- GimpParam **return_vals);
+static mng_ptr myalloc (mng_size_t size);
+static void myfree (mng_ptr ptr,
+ mng_size_t size);
+static mng_bool myopenstream (mng_handle handle);
+static mng_bool myclosestream (mng_handle handle);
+static mng_bool mywritedata (mng_handle handle,
+ mng_ptr buf,
+ mng_uint32 size,
+ mng_uint32 *written_size);
+
+
+static gint32 parse_chunks_type_from_layer_name (const gchar *str);
+static gint32 parse_disposal_type_from_layer_name (const gchar *str);
+static gint32 parse_ms_tag_from_layer_name (const gchar *str);
+static gint find_unused_ia_colour (guchar *pixels,
+ gint numpixels,
+ gint *colors);
+static gboolean ia_has_transparent_pixels (guchar *pixels,
+ gint numpixels);
+
+
+static gboolean respin_cmap (png_structp png_ptr,
+ png_infop png_info_ptr,
+ guchar *remap,
+ gint32 image_id,
+ GimpDrawable *drawable);
+static gboolean mng_save_image (const gchar *filename,
+ gint32 image_id,
+ gint32 drawable_id,
+ gint32 original_image_id);
+static gint mng_save_dialog (gint32 image_id);
+static void query (void);
+static void run (const gchar *name,
+ gint nparams,
+ const GimpParam *param,
+ gint *nreturn_vals,
+ GimpParam **return_vals);
+
/*
* Callbacks for libmng
@@ -632,100 +633,78 @@
/* For now, we hardwire a comment */
- if ((ret =
- mng_putchunk_text (handle, strlen (MNG_TEXT_TITLE), MNG_TEXT_TITLE, 22,
- "Created using GIMP")) != MNG_NOERROR)
+ if (mng_putchunk_text (handle,
+ strlen (MNG_TEXT_TITLE), MNG_TEXT_TITLE,
+ 22, "Created using GIMP") != MNG_NOERROR)
{
g_warning ("Unable to mng_putchunk_text() in mng_save_image()");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ goto err3;
}
#if 0
- /* how do we get this to work? */
- if (mng_data.bkgd)
- {
- GimpRGB bgcolor;
- guchar red, green, blue;
+ /* how do we get this to work? */
+ if (mng_data.bkgd)
+ {
+ GimpRGB bgcolor;
+ guchar red, green, blue;
- gimp_context_get_background(&bgcolor);
- gimp_rgb_get_uchar(&bgcolor, &red, &green, &blue);
+ gimp_context_get_background (&bgcolor);
+ gimp_rgb_get_uchar (&bgcolor, &red, &green, &blue);
- ret = mng_putchunk_back(handle, red, green, blue,
- MNG_BACKGROUNDCOLOR_MANDATORY,
- 0, MNG_BACKGROUNDIMAGE_NOTILE);
- if (MNG_NOERROR != ret)
- {
- g_warning("Unable to mng_putchunk_back() "
- "in mng_save_image()");
- mng_cleanup(&handle);
- fclose(userdata->fp);
- g_free(userdata);
- return 0;
- }
+ if (mng_putchunk_back (handle, red, green, blue,
+ MNG_BACKGROUNDCOLOR_MANDATORY,
+ 0, MNG_BACKGROUNDIMAGE_NOTILE) != MNG_NOERROR)
+ {
+ g_warning("Unable to mng_putchunk_back() in mng_save_image()");
+ goto err3;
+ }
- ret = mng_putchunk_bkgd(handle, MNG_FALSE, 2, 0,
- gimp_rgb_luminance_uchar(&bgcolor),
- red, green, blue);
- if (MNG_NOERROR != ret)
- {
- g_warning("Unable to mng_putchunk_bkgd() "
- "in mng_save_image()");
- mng_cleanup(&handle);
- fclose(userdata->fp);
- g_free(userdata);
- return 0;
- }
+ if (mng_putchunk_bkgd (handle, MNG_FALSE, 2, 0,
+ gimp_rgb_luminance_uchar (&bgcolor),
+ red, green, blue) != MNG_NOERROR)
+ {
+ g_warning("Unable to mng_putchunk_bkgd() in mng_save_image()");
+ goto err3;
}
+ }
+
#endif
if (mng_data.gama)
{
- ret = mng_putchunk_gama (handle, MNG_FALSE,
- (1.0 / (gimp_gamma ()) * 100000));
- if (MNG_NOERROR != ret)
+ if (mng_putchunk_gama (handle, MNG_FALSE,
+ (1.0 / (gimp_gamma ()) * 100000)) != MNG_NOERROR)
{
g_warning ("Unable to mng_putchunk_gama() in mng_save_image()");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ goto err3;
}
}
#if 0
- /* how do we get this to work? */
+ /* how do we get this to work? */
if (mng_data.phys)
{
gimp_image_get_resolution(original_image_id, &xres, &yres);
- ret = mng_putchunk_phyg (handle, MNG_FALSE,
- (mng_uint32) (xres * 39.37),
- (mng_uint32) (yres * 39.37), 1);
- if (MNG_NOERROR != ret)
+
+ if (mng_putchunk_phyg (handle, MNG_FALSE,
+ (mng_uint32) (xres * 39.37),
+ (mng_uint32) (yres * 39.37), 1) != MNG_NOERROR)
{
g_warning("Unable to mng_putchunk_phyg() in mng_save_image()");
- mng_cleanup(&handle);
- fclose(userdata->fp);
- g_free(userdata);
- return 0;
+ goto err3;
}
- ret = mng_putchunk_phys (handle, MNG_FALSE,
- (mng_uint32) (xres * 39.37),
- (mng_uint32) (yres * 39.37), 1);
- if (MNG_NOERROR != ret)
+ if (mng_putchunk_phys (handle, MNG_FALSE,
+ (mng_uint32) (xres * 39.37),
+ (mng_uint32) (yres * 39.37), 1) != MNG_NOERROR)
{
g_warning("Unable to mng_putchunk_phys() in mng_save_image()");
- mng_cleanup(&handle);
- fclose(userdata->fp);
- g_free(userdata);
- return 0;
+ goto err3;
}
}
+
#endif
if (mng_data.time)
@@ -733,16 +712,12 @@
t = time (NULL);
gmt = gmtime (&t);
- if ((ret =
- mng_putchunk_time (handle, gmt->tm_year + 1900, gmt->tm_mon + 1,
- gmt->tm_mday, gmt->tm_hour, gmt->tm_min,
- gmt->tm_sec)) != MNG_NOERROR)
+ if (mng_putchunk_time (handle, gmt->tm_year + 1900, gmt->tm_mon + 1,
+ gmt->tm_mday, gmt->tm_hour, gmt->tm_min,
+ gmt->tm_sec) != MNG_NOERROR)
{
g_warning ("Unable to mng_putchunk_time() in mng_save_image()");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ goto err3;
}
}
@@ -753,15 +728,12 @@
palette = gimp_image_get_colormap (image_id, &numcolors);
- if (numcolors != 0 &&
- (ret = mng_putchunk_plte (handle, numcolors, (mng_palette8e *) palette))
- != MNG_NOERROR)
+ if ((numcolors != 0) &&
+ (mng_putchunk_plte (handle, numcolors,
+ (mng_palette8e *) palette) != MNG_NOERROR))
{
g_warning ("Unable to mng_putchunk_plte() in mng_save_image()");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ goto err3;
}
}
@@ -803,8 +775,8 @@
layer_drawable = gimp_drawable_get (layers[i]);
layer_rows = layer_drawable->height;
layer_cols = layer_drawable->width;
- gimp_drawable_offsets (layers[i], &layer_offset_x, &layer_offset_y);
+ gimp_drawable_offsets (layers[i], &layer_offset_x, &layer_offset_y);
layer_has_unique_palette = TRUE;
for (j = 0; j < 256; j++)
@@ -838,10 +810,7 @@
break;
default:
g_warning ("Unsupported GimpImageType in mng_save_image()");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ goto err3;
}
/* Delta PNG chunks are not yet supported */
@@ -885,63 +854,51 @@
layer_mng_interlace_type = MNG_INTERLACE_SEQUENTIAL;
break;
default:
- g_warning
- ("Huh? Programmer stupidity error with 'layer_chunks_type'");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ g_warning ("Huh? Programmer stupidity error "
+ "with 'layer_chunks_type'");
+ goto err3;
}
- if ((i == (num_layers - 1))
- || (parse_disposal_type_from_layer_name (layer_name) !=
- DISPOSE_COMBINE))
+ if ((i == (num_layers - 1)) ||
+ (parse_disposal_type_from_layer_name (layer_name) != DISPOSE_COMBINE))
frame_mode = MNG_FRAMINGMODE_3;
else
frame_mode = MNG_FRAMINGMODE_1;
frame_delay = parse_ms_tag_from_layer_name (layer_name);
- if ((ret = mng_putchunk_fram (handle, MNG_FALSE, frame_mode, 0, NULL,
- MNG_CHANGEDELAY_DEFAULT,
- MNG_CHANGETIMOUT_NO,
- MNG_CHANGECLIPPING_DEFAULT,
- MNG_CHANGESYNCID_NO,
- frame_delay, 0, 0,
- layer_offset_x,
- layer_offset_x + layer_cols,
- layer_offset_y,
- layer_offset_y + layer_rows,
- 0, 0)) != MNG_NOERROR)
+ if (mng_putchunk_fram (handle, MNG_FALSE, frame_mode, 0, NULL,
+ MNG_CHANGEDELAY_DEFAULT,
+ MNG_CHANGETIMOUT_NO,
+ MNG_CHANGECLIPPING_DEFAULT,
+ MNG_CHANGESYNCID_NO,
+ frame_delay, 0, 0,
+ layer_offset_x,
+ layer_offset_x + layer_cols,
+ layer_offset_y,
+ layer_offset_y + layer_rows,
+ 0, 0) != MNG_NOERROR)
{
g_warning ("Unable to mng_putchunk_fram() in mng_save_image()");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ goto err3;
}
if ((layer_offset_x != 0) || (layer_offset_y != 0))
- if ((ret =
- mng_putchunk_defi (handle, 0, 0, 1, 1, layer_offset_x,
- layer_offset_y, 1, layer_offset_x,
- layer_offset_x + layer_cols, layer_offset_y,
- layer_offset_y + layer_rows)) != MNG_NOERROR)
- {
- g_warning ("Unable to mng_putchunk_defi() in mng_save_image()");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
- }
+ {
+ if (mng_putchunk_defi (handle, 0, 0, 1, 1, layer_offset_x,
+ layer_offset_y, 1, layer_offset_x,
+ layer_offset_x + layer_cols, layer_offset_y,
+ layer_offset_y + layer_rows) != MNG_NOERROR)
+ {
+ g_warning ("Unable to mng_putchunk_defi() in mng_save_image()");
+ goto err3;
+ }
+ }
if ((temp_file_name = gimp_temp_name ("mng")) == NULL)
{
- g_warning ("gimp_temp_name() failed in mng_save_image(");
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ g_warning ("gimp_temp_name() failed in mng_save_image()");
+ goto err3;
}
if ((outfile = g_fopen (temp_file_name, "wb")) == NULL)
@@ -950,28 +907,23 @@
gimp_filename_to_utf8 (temp_file_name),
g_strerror (errno));
g_unlink (temp_file_name);
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ goto err3;
}
- if ((png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING,
- (png_voidp) NULL,
- (png_error_ptr) NULL,
- (png_error_ptr) NULL)) == NULL)
+ png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING,
+ (png_voidp) NULL,
+ (png_error_ptr) NULL,
+ (png_error_ptr) NULL);
+ if (NULL == png_ptr)
{
- g_warning
- ("Unable to png_create_write_struct() in mng_save_image()");
+ g_warning ("Unable to png_create_write_struct() in mng_save_image()");
fclose (outfile);
g_unlink (temp_file_name);
- mng_cleanup (&handle);
- fclose (userdata->fp);
- g_free (userdata);
- return 0;
+ goto err3;
}
- if ((png_info_ptr = png_create_info_struct (png_ptr)) == NULL)
+ png_info_ptr = png_create_info_struct (png_ptr);
+ if (NULL == png_info_ptr)
{
g_warning
("Unable to png_create_info_struct() in mng_save_image()");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]