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
2007-12-11 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.c (_gimp_wire_read_string): use g_try_new()
so a plug-in can't easily crash the core by sending an invalid
string message.
svn path=/trunk/; revision=24316
2007-12-11 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.c (_gimp_read_read_string):
NULL-terminate
all strings coming in over the wire protocol. Should help with
bug
#498207.
svn path=/trunk/; revision=24312
2007-06-25 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.c: if the wire protocol is used without
prior initialization, abort with g_error() instead of crashing.
svn path=/trunk/; revision=22831
2006-03-30 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.c (gimp_wire_read, gimp_wire_write):
sprinkled a few G_UNLIKELY() macros to help the compiler.
2006-02-23 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.[ch]: added utility functions to send
GimpRGB values over the wire.
* libgimpbase/gimpprotocol.c: use the functions.
2005-12-13 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.[ch]: let the private wire methods live in
the GIMP namespace. Declare internal functions as such and prefix
them with an underscore.
* libgimp/gimp.c
* libgimp/gimptile.c
* libgimpbase/gimpbase.def
* libgimpbase/gimpprotocol.c
* app/plug-in/plug-in-message.[ch]
* app/plug-in/plug-in-run.c
* app/plug-in/plug-in.c: changed accordingly.
2004-10-04 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpwire.c: added assertions to make sure "count" is
always >= 0. Turns the crash described in bug #154266 into a
warning plus corrupted wire state :) Real fix (in script-fu) will
follow. Untabified.
2002-11-25 Manish Singh <yosh@gimp.org>
* libgimpbase/gimpwire.c: using a union like that may not be
completely portable. Use a guint8 array instead. One wonders
if we really need to support the off-chance someone will make
a distributed gimp framework with this current incarnation
of the wire protocol.
2002-11-25 Manish Singh <yosh@gimp.org>
* libgimpbase/gimpwire.c: use a union instead of separate types to
read/write doubles so we don't violate C's aliasing rules. Fixes
bug #85249.
2002-05-16 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpprotocol.[ch]
* libgimpbase/gimpwire.[ch]: pass "gpointer user_data" to all
functions, which in gets turn passed to the registered reader,
writer, and flusher funcs.
* libgimp/gimp.c
* libgimp/gimptile.c: pass NULL as user_data. We have only one
pipe on the plug-in side.
* app/plug-in/plug-in.c: pass the PlugIn as user_data. As a
consequence, got rid of more global variables. The global
"current_plug_in" and the plug_in_push()/pop() madness are still
there. Will reeplace them by some less ugly hack later...
2002-05-16 Michael Natterer <mitch@gimp.org>
* libgimpbase/tmpl/gimpprotocol.sgml
* libgimpbase/tmpl/gimpwire.sgml: regenerated after API change.
2001-08-30 Michael Natterer <mitch@gimp.org>
* app/plug_in.c
* libgimpbase/gimpwire.c
* libgimp/gimp.c: removed GIOChannel "channel->funcs->io_foo()"
hacks and use plain g_io_channel_[read|write]_chars(). An
additional g_io_channel_set_buffered (channel, FALSE); is needed
to make the channels work in binary mode. Fixed misc other stuff
in the GIOChannel code.
* app/tools/gimpdrawtool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c
* app/widgets/gimpdialogfactory.c
* libgimpwidgets/gimpcolorarea.c
* libgimp/gimpui.c: replaced some deprecated GDK functions.
* app/gui/palette-editor.c: block the color_name entry's "changed"
signal while setting it. Fixes invalid UTF-8 warnings.
2001-07-15 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpwire.c: remove the usage of printf()/scanf()
when sending doubles over the wire. Instead, rely on the memory
layout of gdouble being IEEE compliant and transmit 8 bytes in
network byte order.
* libgimpbase/gimpprotocol.h: increase GP_VERSION because this
makes the wire protocol binary incompatible.
* app/main.c
* libgimp/gimp.c: removed the setlocate(LC_NUMERIC,"C") workaround.
2000-05-31 Michael Natterer <mitch@gimp.org>
* app/gimpunit.c
* libgimp/*: all libgimp headers are included via gimp.h or
gimpui.h, so include <gtk/gtk.h> there and in the *.c files.
Various cleanups.
2000-05-14 Michael Natterer <mitch@gimp.org>
After a weekend of extensive mail exchange with the signal crew,
we finally found that #2742 is not a Gimp bug but a real OSF/1
bug. OSF/1 does _not_ reliably restart read() and write() calls
on certain slow devices (pipes).
* libgimp/gimpwire.[ch]: guard all read/write calls on the wire
with loops checking for EINTR. This has to be done "manually"
as glib's GIOChannels return G_IO_ERROR_UNKNOWN on the occurence
of EINTR (which is a bug, too).
s/int/gboolean and minor cleanups while I was on it (not changing
any logic).
This fix depends on the current (broken) state of the GIOChannel
implementation and is scheduled for removal as soon as glib
behaves nicely here.
Left SA_RESTART there for the moment in app/main.c. See it as
defensive programming or just my fear to change two #2742-related
places at the same time. We might choose to remove SA_RESTART
later. Many thanks again to Austin, Garry and Tim.
2000-05-10 Michael Natterer <mitch@gimp.org>
Another try to get the signal/dead child recovery stuff right.
Could the brave signal crew (TM) (Austin, Garry, Raphael, Tim)
please do bad tests to the new code? I removed all strange
constants (SA_NODEFER etc.) and used only glib and POSIX stuff.
* app/main.c
* libgimp/gimp.c:
- Call gimp_signal_private() with no flags to enforce a proper
sigaction() behaviour (block signals while handler is active).
- Removed the reentrancy guards from the handlers.
- Renamed the handlers.
- Ignore SIGPIPE in the app and in plugins.
- Re-introduced the SIGCHLD handler because it should work
now. Also added a SIGCHLD handler to libgimp/gimp.c.
* app/errors.c
* libgimp/gimp.c: in the signal handler, unblock all signals
with sigprocmask() before calling g_on_error_query() because
gdb otherwise inherits the blocked signals and does nothing.
Wrapped the statements with "if (TRUE) { }" blocks so it's
easy to make the stack trace a command line option.
* app/plug_in.c
* libgimp/gimp.c: listen for G_IO_ERR and G_IO_HUP on the read
channels. In the app, pop up an error message and clean up the
plugin. In plugins, clean up and exit.
* libgimp/gimpwire.c: removed the "plug-in chrashed?" message
and print the program's name with all error messages.
* plug-ins/helpbrowser/helpbrowser.c: typo.
* app/app_procs.c
* app/gdisplay_color.[ch]
* app/gdisplay_color_ui.c: make the ui usable
* app/gdisplay.c: enable cdisplay support
* modules/Makefile.am
* modules/cdisplay_gamma.c: moved gamma functionality to separate
-Yosh
* libgimp/gimp.c: No need for <io.h> on Win32.
* libgimp/{gimp,gimpui}.def: Add two entry points.
* libgimp/gimp.h: Can't use __declspec(dllexport) for PLUG_IN_INFO
when compiling with gcc on Win32. Also handle __argc, __argv and
_stdcall differently with gcc on Win32
* libgimp/gimpenv.c: Include <string.h>.
* libgimp/gimpfeatures.h.in: Remove lots of extraneous trailing blanks.
* libgimp/gimpfileselection.c: Include <glib.h> early, see above.
* libgimp/{gimpwire,parasite}.c: Test for NATIVE_WIN32, not
_MSC_VER.
* libgimp/makefile.msc: Miscellaneous updates. The gimpi library
is now built as a static library.