Commit Graph

108 Commits

Author SHA1 Message Date
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Ell
993bbd354e Issue #1682 - Segfault when starting GIMP, due to empty data files
Use gimp_input_data_stream_read_line_always(), instead of
g_input_data_stream_read_line(), in a bunch of places that don't
expect EOF.  If we don't do that, the code assumes the GError
parameter is set by the function and returns an error indication,
causing the caller to segfault when it tries to access
error->message.  Instead, we now process an empty line when EOF is
reached, which is caught by the normal parsing logic.

Additionally:

  - Use gimp_ascii_strto[id]() when loading gradients, generated
    brushes, and palettes, to improve error checking for invalid
    numeric input.

  - Improve gradient-segment endpoint consistency check.

  - Allow loading palette files with 0 colors.  They can be created
    during the session, so we might as well successfully load them.
2018-06-20 15:13:05 -04:00
Ell
ea6d997e56 Issue #1607 - Fatal Crash on ACT Palette File Import
... and various other palette formats

Change accidental 'G_IS_INPUT_STREAM (file)' argument validation to
'G_IS_INPUT_STREAM (input)'.
2018-06-10 01:47:13 -04:00
d228e76ebe app: fix memory leak.
GMatchInfo data created by g_regex_match() must be freed.
2017-11-26 04:01:19 +01:00
84ee79c71d app: clean out many tabs under app/core/. 2016-11-25 05:51:03 +01:00
93c19c20d4 app: fix a bunch of valgrind-found leaks 2014-07-20 21:40:57 +02:00
e6f4252d55 app: simplify GimpData load/save error reporting a lot
Add the filename and general "Foo failed" spam generically in GimpData
and GimpDataFactory, and make the individual loaders/savers much
simpler.
2014-07-04 18:46:02 +02:00
6f7e244d75 app: add GInputStream* parameter to GimpDataLoadFunc
and port all loaders to loading from an already open stream.
2014-07-04 03:31:03 +02:00
01878cc2e0 app: improve palette loading error message 2014-07-04 00:14:36 +02:00
4d50c3aafd app: port gimp_palette_load_css() to GIO
which finishes palette porting. Remove all temp hack porting code
and a ton of ugly includes.
2014-07-03 17:36:01 +02:00
12d6519f3e app: port gimp_palette_load_aco() to GIO 2014-07-03 17:23:11 +02:00
aedc3c0ddb app: port gimp_palette_load_psp() to GIO 2014-07-03 16:59:04 +02:00
5d4d3a0e3c app: port more palette importers to GIO 2014-07-03 16:42:37 +02:00
3213fe04ef app: port gimp_palette_load_detect_format() to GIO 2014-07-03 16:27:05 +02:00
bfd8aa69f5 app: prepare for more palette load/import GOI porting
by passing an open GInputStream to gimp_palette_load_gpl(), all
palette import functions will become like that.
2014-07-03 16:11:26 +02:00
9ec4e93434 app: port gimp_palette_load_gpl() to GIO 2014-07-03 15:49:58 +02:00
20032907e0 app: use gimp_file_get_utf8_name() in the code ported to GFile earlier 2014-07-01 14:25:37 +02:00
113617f526 app: change the GimpData loading API from filename to GFile 2014-07-01 02:30:22 +02:00
665e7d9a7d app: some whitespace and indentation in gimppalette-load.c 2013-09-24 22:14:10 +02:00
d02dd9f0da app: Rename the pallete loading functions from last commit. 2013-09-17 19:39:12 -04:00
198f2514ab app: Refactor palette loaders.
I specifically moved the file opening/closing logic to the common
code. This makes the code easier to understand for me since there
is less duplication. In fact, this commit removes more lines than
it adds.
2013-09-17 17:54:54 -04:00
3ad73b3658 libgimpcolor: add GdkPixbuf <-> GeglBuffer utility functions
and update tons of includes in libgimp and app.
2012-05-03 03:37:20 +02:00
3e119c5af7 libgimpcolor: add gimp_rgb[a]_set,get_pixel()
which converts from/to any pixel format using Babl. Added tons of
includes and CFLAGS now that libgimpcolor publically uses Babl.
2012-05-02 17:50:43 +02:00
cc47b2a600 libgimpwidgets/color: move the cairo color utility functions to libgimpcolor
Add CAIRO_CFLAGS to a lot of Makefiles to make this possible, and
because they pull in cairo via the libgimp headers.
2011-04-28 15:50:39 +02:00
f46122b862 app: add lots of accessors to GimpPalette
and use them all over the place instead of directly accessing the struct.
2010-10-27 14:36:44 +02:00
caad58d203 app: add a GimpContext parameter to GimpDataLoadFunc 2010-04-11 13:12:41 +02:00
4fcf34699f app: flip context and name parameters in GimpDataNewFunc 2010-04-10 19:55:42 +02:00
430b0e5517 app: add a GimpContext parameter to all functions which create GimpData
and pass a context whereever needed. Fix up gimp_tool_preset_new()
to actually make a copy of the context's active tool's options.
2010-04-05 13:26:31 +02:00
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
f8666de70f improved error handling. Fixes compiler warnings about ignoring the return
2008-11-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimppalette-load.c (gimp_palette_load_aco): improved
	error handling. Fixes compiler warnings about ignoring the 
return
	value of read().


svn path=/trunk/; revision=27570
2008-11-07 09:32:23 +00:00
db7c35373d unified error messages.
2008-09-16  Sven Neumann  <sven@gimp.org>

	* app/core/gimppalette-load.c (gimp_palette_load): unified error
	messages.


svn path=/trunk/; revision=26952
2008-09-16 20:25:15 +00:00
694ad967a6 skip empty lines.
2008-03-19  Sven Neumann  <sven@gimp.org>

	* app/core/gimppalette-load.c (gimp_palette_load): skip empty lines.

svn path=/trunk/; revision=25126
2008-03-19 17:19:37 +00:00
c86291c4f5 app/core/gimppalette-import.c applied slightly modified patch from Nicola
2007-12-18  Sven Neumann  <sven@gimp.org>

	* app/core/gimppalette-import.c
	* app/core/gimppalette-load.[ch]: applied slightly modified patch
	from Nicola Archibald that adds import of colors from CSS files
	(bug #464480).

	* app/core/gimppalette.c (gimp_palette_find_entry): allow to call
	this function on an empty palette.

svn path=/trunk/; revision=24393
2007-12-18 17:01:19 +00:00
2b2cc44ad0 app/core/gimppalette-import.c applied slightly modified version of a patch
2007-08-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimppalette-import.c
	* app/core/gimppalette-load.[ch]: applied slightly modified version
	of a patch from Nicola Archibald that adds support for importing
	Adobe Color palette version 1 files (bug #316618).

svn path=/trunk/; revision=23134
2007-08-07 13:42:55 +00:00
cd772f930a app/core/gimppalette-import.c app/core/gimppalette-load.c use GSlice for
2007-05-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimppalette-import.c
	* app/core/gimppalette-load.c
	* app/core/gimppalette.c: use GSlice for palette entries and
	temporary structs.


svn path=/trunk/; revision=22587
2007-05-22 21:59:19 +00:00
41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
85cecec576 app/base/base.c app/core/gimp-user-install.c
2006-11-12  Michael Natterer  <mitch@gimp.org>

	* app/base/base.c
	* app/core/gimp-user-install.c
	* app/core/gimpbrushgenerated-load.c
	* app/core/gimpcontainer.c
	* app/core/gimpgradient-load.c
	* app/core/gimppalette-load.c
	* app/core/gimpparamspecs-desc.c
	* app/dialogs/tips-parser.c
	* app/menus/plug-in-menus.c
	* app/plug-in/gimppluginmanager.c
	* app/plug-in/gimppluginprocedure.c
	* app/text/gimptext-parasite.c
	* app/tools/gimpforegroundselecttool.c
	* app/widgets/gimpselectiondata.c
	* app/xcf/xcf.c: use g_str_has_prefix() instead of strncmp().
2006-11-12 20:30:50 +00:00
544d679e55 app/core/gimpbrushgenerated-load.c app/core/gimpgradient-load.c
2006-10-04  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrushgenerated-load.c
	* app/core/gimpgradient-load.c
	* app/core/gimppalette-load.c
	* app/core/gimppalette-save.c: read and write all files in binary
	mode. Improved parser error messages (added line numbers). Minor
	changes to simply read DOS files instead of barfing on them.
2006-10-04 17:50:35 +00:00
c6ae0a7918 added gimp_palette_load_detect_format().
2006-10-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppalette-load.[ch]: added
	gimp_palette_load_detect_format().

	* app/core/gimppalette-import.c: removed it here. Also removed all
	file I/O related includes.
2006-10-03 14:54:07 +00:00
92f21409b0 added functions to load ACT, RIFF and PSP palette files but don't use them
2006-10-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppalette-load.[ch]: added functions to load ACT,
	RIFF and PSP palette files but don't use them as data file
	loaders (yet?)

	* app/core/gimppalette-import.c (gimp_palette_import_from_file):
	use the functions instead of implementing all formats inline.
2006-10-03 14:31:31 +00:00
75eed97620 app/core/Makefile.am app/core/gimppalette-load.[ch] new files.
2006-10-03  Michael Natterer  <mitch@gimp.org>

	* app/core/Makefile.am
	* app/core/gimppalette-load.[ch]
	* app/core/gimppalette-save.[ch]: new files.

	* app/core/gimppalette.[ch]: removed loading and saving code here.

	* app/core/gimp.c
	* app/core/gimppalette-import.c: changed accordingly.
2006-10-03 13:22:12 +00:00
b53aa45a76 Changed GimpViewable preview rendering to have a context to get
2006-08-29  Michael Natterer  <mitch@gimp.org>

	Changed GimpViewable preview rendering to have a context to get
	FG/BG/whatever from. Use the context to enable dynamic FG/BG
	colors in gradients. Fixes bug #127676 and bug #352214. Addresses
	bug #128367 (doesn't fix it because there's no loading/saving and
	no GUI yet).

	* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
	specifying gradient colors in terms of foreground and background.

	* app/core/gimpgradient.[ch]: added color_type members to the
	GimpGradientSegment struct and honor them in
	gimp_gradient_get_color_at(). Added GimpContext parameters to all
	functions which finally call get_color_at().

	* app/core/gimp-gradients.c: use the new method to implement the
	builtin gradients.

	* app/core/gimpviewable.[ch]: added GimpContext parameters to all
	get_preview() and get_pixbuf() functions.

	* app/core/gimpbrush.c
	* app/core/gimpbuffer.c
	* app/core/gimpdrawable-preview.[ch]
	* app/core/gimpgradient.c
	* app/core/gimpimage-preview.[ch]
	* app/core/gimpimagefile.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c
	* app/core/gimpundo.[ch]
	* app/text/gimpfont.c
	* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
	and ::get_pixbuf() implementations accordingly.

	* app/core/gimpdrawable-blend.c
	* app/core/gimppalette-import.[ch]
	* app/dialogs/dialogs-constructors.c
	* app/dialogs/palette-import-dialog.c
	* app/dialogs/resize-dialog.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpdisplayshell.c
	* app/display/gimpnavigationeditor.c
	* app/paint/gimppaintoptions.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimptexttool.c
	* app/actions/gradient-editor-commands.c
	* app/widgets/gimpaction.c
	* app/widgets/gimpbrusheditor.[ch]
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpcellrendererviewable.c
	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimpclipboard.c
	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainerbox.c
	* app/widgets/gimpcontainercombobox.c
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainerentry.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainertreeview.[ch]
	* app/widgets/gimpdataeditor.[ch]
	* app/widgets/gimpdevicestatus.c
	* app/widgets/gimpdnd.[ch]
	* app/widgets/gimpdrawabletreeview.c
	* app/widgets/gimpfiledialog.c
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimpgradientselect.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimppaletteeditor.[ch]
	* app/widgets/gimppropwidgets.[ch]
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimpthumbbox.[ch]
	* app/widgets/gimptoolbox-image-area.c
	* app/widgets/gimptoolbox-indicator-area.c
	* app/widgets/gimptooloptionseditor.c
	* app/widgets/gimpundoeditor.c
	* app/widgets/gimpvectorstreeview.c
	* app/widgets/gimpview-popup.[ch]
	* app/widgets/gimpview.[ch]
	* app/widgets/gimpviewablebutton.c
	* app/widgets/gimpviewabledialog.c
	* app/widgets/gimpviewrenderer.[ch]
	* app/widgets/gimpviewrenderer-frame.c
	* app/widgets/gimpviewrendererbrush.c
	* app/widgets/gimpviewrendererbuffer.c
	* app/widgets/gimpviewrendererdrawable.c
	* app/widgets/gimpviewrenderergradient.c
	* app/widgets/gimpviewrendererimage.c
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/gradient.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
	and parameters, implement GimpDocked::set_context() in many
	widgets. Pass these locally remembered contexts to GimpViewable
	functions. Did some minor cleanups on the way. There are still
	some minor FIXMEs around where the code uses a NULL context (which
	is allowed by the APIs)

	* app/pdb/drawable_cmds.c
	* app/pdb/gradient_cmds.c
	* app/pdb/gradients_cmds.c
	* app/pdb/image_cmds.c: regenerated.
2006-08-29 21:44:51 +00:00
c3448b2cbf It makes more sense to have GimpData::dirty indicate a name change than to
2006-05-23  Sven Neumann  <sven@gimp.org>

	It makes more sense to have GimpData::dirty indicate a name change
	than to invalidate the previews whenever the name changes.

	* app/core/gimpdata.c: call gimp_object_name_changed() from
	gimp_data_real_dirty() instead of implementing
	GimpObject::name-changed and calling gimp_data_dirty() from there.

	* app/core/gimpbrushclipboard.c
	* app/core/gimppalette.c
	* app/core/gimppatternclipboard.c: call gimp_data_dirty() in place
	of gimp_object_name_changed().

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_dirty):
	chain up unconditionally.
2006-05-23 15:39:45 +00:00
6ebcf700d1 removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15  Sven Neumann  <sven@gimp.org>

	* app/*/*.c:
	* lib*/*.c: removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15 09:46:31 +00:00
5fc9bd4096 app/actions/tool-options-commands.c app/core/gimp.c
2006-04-07  Sven Neumann  <sven@gimp.org>

	* app/actions/tool-options-commands.c
	* app/core/gimp.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpbuffer.c
	* app/core/gimpcontext.c
	* app/core/gimpdatafactory.c
	* app/core/gimpgradient-load.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpitem.c
	* app/core/gimplayer.c
	* app/core/gimplayermask.c
	* app/core/gimplist.c
	* app/core/gimppalette.c
	* app/dialogs/template-options-dialog.c
	* app/display/gimpdisplayshell-dnd.c
	* app/file/file-open.c
	* app/paint/gimp-paint.c
	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpdatafactoryview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimptemplateview.c
	* app/widgets/gimptoolbox-dnd.c: use gimp_object_set_static_name()
	and gimp_object_take_name() where appropriate.
2006-04-07 10:51:22 +00:00
0d4a10fee4 app/config/*.c app/core/*.c app/display/*.c app/text/*.c port to
2005-12-10  Michael Natterer  <mitch@gimp.org>

	* app/config/*.c
	* app/core/*.c
	* app/display/*.c
	* app/text/*.c
	* app/vectors/*.c: port to G_DEFINE_TYPE() and friends. Some related
	core reordering and cleanup.
2005-12-10 19:24:36 +00:00
34697840ed set the "tooltip" return value to NULL before calling the virtual
2005-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpviewable.c (gimp_viewable_get_description): set the
	"tooltip" return value to NULL before calling the virtual function.

	* app/core/gimpbrush.c
	* app/core/gimpbuffer.c
	* app/core/gimpchannel.c
	* app/core/gimplayer.c
	* app/core/gimppaintinfo.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c
	* app/core/gimptoolinfo.c (get_description): don't do it here.

	* app/core/gimpbuffer.c
	* app/core/gimppaintinfo.c: untabbify, cleanup.

	* app/core/gimpobject.c: emit "notify::name" whenerver the name
	changes, clenup.
2005-10-09 23:05:25 +00:00
f4e2ea30d8 reverted, it duplicates existing functionality.
2005-09-01  Sven Neumann  <neumann@jpk.com>

	* app/core/gimppalette.[ch]: reverted, it duplicates existing
	functionality.

	* app/core/gimppalette-import.c
	(gimp_palette_import_from_indexed_image): name the colors using
	their index in the colormap.
2005-09-01 18:06:21 +00:00
cf538a33c2 added gimp_palette_new_from_colormap().
2005-09-01  Sven Neumann  <sven@gimp.org>

	* app/core/gimppalette.[ch]: added gimp_palette_new_from_colormap().
2005-09-01 17:18:26 +00:00
8938834a72 actually return the added entry, and not always the palette's last entry
2005-07-13  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppalette.c (gimp_palette_add_entry): actually return
	the added entry, and not always the palette's last entry (argh!).

	* app/widgets/gimppaletteeditor.c: make sure the cursor is always
	on the newly added color. Really fixes #15060 this time.
2005-07-13 17:46:12 +00:00