Based on a patch by Hartmut Kuhse, run all strings through
gimp_any_to_utf8() which always returns something that's UTF-8, even
if it's only "(invalid UTF-8 String)". Better than crashing.
Also fix the errors that were discovered by it. Multiple
definitions of global variables are no longer silently combined by
the linker, and will be reported as errors.
If you see GIMP crash strangely (i.e, apart from the usual crashes),
please go see a head doctor.
Created a resource file for plug-ins and a rule to link it to them.
The application icon file is smaller than the default one, there's no
point in doubling the size of a plug-in executable just for an icon.
If no problems turn up, this will close the bug.
The new interface provides a common set of methods used by other gtk
widgets (e.g. GtkEntry). This interface is bound to the XMPModel
allowing writing/reading to and from the XMPModel utilised by the
widgets.
It is now possible to create an entry widget by using g_object_new and
provide three parameters: the schema_uri, the property name you want to
subscribe and an instance of an xmp-model.
I changed the name of the GimpXMPModelEntry, which reads now better as
GimpXmpModelEntry. I removed functions in the interface, which are not
in use anymore, because of the code improvements in the entry widget and
the XMPModel. The new entry widget is not build as a library anymore.
The XMPModel listens now on the row-changed event and checks if the row
belong to a property or schema change. If a property change occured a
detailed property-changed signal is emitted. A detailed schema-changed
signal is currently not emitted, because not implemented.
The client can now subscribe to a specific property-change signal. The
detail is provided as <xmp-schema-prefix>:<xmp-property-name>. The
xmpdump test program was used to verify that the implementation works.
The problem is that the parser adds an empty property value when
parsing an empty Alt-array, "<rdf:Alt/>".
But when it is encoded it is expected to be in the form of a NULL
terminated array of pairs of property values, with the result that the
NULL terminator is considered the second element of the first pair and
the loop encoding these properties goes beyond the end of the array,
thus dereferencing invalid pointers.
This commit alters the parser to avoid adding dummy values when empty
rdf:Alt, rdf:Bag and rdf:Seq elements are found.
Added a function to merge the Exif data into the xmp model. The function
is using the image id and to access the Exif data parasite. For each
Exif property a corresponding value in the XMP model is created.
2009-02-12 Michael Natterer <mitch@gimp.org>
* plug-ins/file-faxg3/Makefile.am
* plug-ins/help/Makefile.am
* plug-ins/metadata/Makefile.am: add $(libgimpconfig) to LDADD
where it was missing. Libgimp pulls in libgimpconfig and these
plug-ins were linking against the installed libgimpconfig under
some #$&%*#%&%$& .la file circumstances.
svn path=/trunk/; revision=28017
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
2008-10-19 Sven Neumann <sven@gimp.org>
* plug-ins/metadata/xmp-encode.c
* plug-ins/metadata/xmp-parse.c
* plug-ins/metadata/metadata.c
* plug-ins/metadata/xmpdump.c: removal of unused includes and
other minor cleanups.
svn path=/trunk/; revision=27332
2008-10-19 Sven Neumann <sven@gimp.org>
Bug 493778 – metadata plug-in crashes on some images
* plug-ins/metadata/xmp-encode.c (gen_property): introduced a
utility function to create XML elements. Deal gracefully with
NULL
and empty values. Does not fix the crash, but fixes a warning
that
has been reported in the same bug report.
svn path=/trunk/; revision=27323
2007-08-29 Raphael Quinet <raphael@gimp.org>
* plug-ins/metadata/xmp-encode.c (gen_property): escape the text
values output in the XMP packet. Based on a bug report and patch
by John Marshall. Fixes bug #455481.
svn path=/trunk/; revision=23398