script-fu used to query the information of every PDB procedure on
startup, in order to get the number of parameters for each
procedure. This was done so that nullary procedures were defined
in such a way as to accept (and ignore) any number of arguments
(and at least one of the scripts we ship relies on this behavior).
However, this requires expensive back-and-forth communication with
the main GIMP process, which notable slowed down script-fu's
startup, and had a non-negligible impact on GIMP's startup time.
Instead, avoid querying procedure information, and implement the
special behavior for nullary procedures at call time. We do this
by defining, in addition to the "strict" gimp-proc-db-call
procedure, a "permissive" -gimp-proc-db-call internal procedure,
and using the latter to call the predefined PDB procedures.
(cherry picked from commit 9a2999a553)
with proper value names. Mark most values as _BROKEN because they use
weird alpha compositing that has to die. Move GimpLayerModeEffects to
libgimpbase, deprecate it, and set it as compat enum for GimpLayerMode.
Add the GimpLayerModeEffects values as compat constants to script-fu
and pygimp.
Add GIMP_DESATURATE_LUMINANCE to enum GimpDesaturateMode and rename
GIMP_DESATURATE_LUMINOSITY to GIMP_DESATURATE_LUMA.
Keep GIMP_DESATURATE_LUMINOSITY as deprecated compat value and add it
to the script-fo and pygimp compat constants.
Change GimpOperationDesaturate to process GIMP_DESATURATE_LUMINANCE
with linear "RGBA float".
GIMP_ADD_foo_MASK -> GIMP_ADD_MASK_foo
GIMP_foo_MODE -> GIMP_BLEND_foo
GIMP_foo_CLONE -> GIMP_CLONE_foo
GIMP_foo -> GIMP_DODGE_BURN_TYPE_foo
GIMP_foo -> GIMP_TRANSFER_foo
Add compat values for the old names and compat code to script-fu
and pygimp.
Did the most stupid fix of simply not calling the procedure if it is
"script-fu-refresh-scripts". This is really not a use case that
warrants complicating lots of code.
plug-ins/script-fu/scheme-wrapper.c:
- Fixed set and get of UTF-8 coded strings for parasites.
plug-ins/script-fu/tinyscheme/scheme.c:
- Additional fix to string-append and fixed substring. The mk_empty_string
routine is not the way to allocate space for UTF-8 coded strings.
- Added some comments.
The item groups has all the duplicated functionality from drawable
and vectors (name, visible, linked etc).
Hijack the unused GIMP_PDB_REGION and turn it into GIMP_PDB_ITEM;
change all protocol aware files accordingly and bump the protocol
version number. Change script-fu to handle the new type.
Fix for nasty gc bug. This change shifts the burden of protecting newly
allocated cells in foreign functions from the foreign functions to the
TinyScheme interpreter.
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-11-19 Sven Neumann <sven@gimp.org>
Bug 558454 – Plugin Map Color Range disapears from GIMP
* plug-ins/script-fu/scripts/Makefile.am
* plug-ins/script-fu/scripts/plug-in-compat.init: new file
providing compatibility with plug-ins from older GIMP
versions. Contains a reimplementation of plug-in-color-map based
on ideas and code from Eric Lamarque.
* plug-ins/script-fu/scheme-wrapper.c (tinyscheme_init): load
the
plug-in-compat.init file.
svn path=/trunk/; revision=27683
2008-09-19 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/scheme-wrapper.c: move variables to local
scopes, fix some whitespace and indentation, some misc. cleanup,
remove comments about array calling conventions that had lots of
copy and paste errors.
svn path=/trunk/; revision=27014
2008-09-11 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/scheme-wrapper.[ch]: reordered and renamed
functions to be consistent. Got rid of file-global "register_scripts"
variable. Pass more "scheme *sc" pointers around to reduce usage
or the global variable.
* plug-ins/script-fu/script-fu-eval.c
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/script-fu-server.c
* plug-ins/script-fu/script-fu.c: changed accordingly.
svn path=/trunk/; revision=26928
2008-09-11 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/Makefile.am
* plug-ins/script-fu/re/*: removed....
* plug-ins/script-fu/script-fu-regex.[ch]: and replaced with a
few-liner using GRegex. Seems to have some issues that need to be
sorted out.
* plug-ins/script-fu/scheme-wrapper.c: changed accordingly.
svn path=/trunk/; revision=26921
2008-09-10 Michael Natterer <mitch@gimp.org>
Change Script-Fu error handling to properly use the new error
message passing in PDB return values:
* plug-ins/script-fu/script-fu-scripts.[ch]: remove function
script_fu_error_msg().
* plug-ins/script-fu/script-fu-interface.c (script_fu_ok): output
errors of interactive script-fu dialogs directly here with
g_message().
* plug-ins/script-fu/script-fu-scripts.c (script_fu_run_command):
add GError and return the error message instead of displaying it.
(script_fu_load_script): show the returned error here (and make it
more specific than the former script_fu_error_msg() did).
(script_fu_script_proc): return error messages via the procedure's
return values.
* plug-ins/script-fu/scheme-wrapper.c
(script_fu_marshal_procedure_call): if an error message was
returned from the PDB call, pass it to foreign_error() so it ends
up where it should (consle, text console or error string).
* plug-ins/script-fu/script-fu-console.c
* plug-ins/script-fu/script-fu-text-console.c: set the error
handler to PLUGIN while interpreting scheme, we handle errors
from calling back into the PDB ourselves now.
svn path=/trunk/; revision=26920
2008-09-09 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/scheme-wrapper.c
(script_fu_marshal_procedure_call): remove debug arrays to map the
values of registered enums to strings. Look up the strings
registered with the type system instead.
svn path=/trunk/; revision=26911
2008-09-09 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/scheme-wrapper.c: fix formatting of prototypes.
(script_fu_marshal_procedure_call): move variables to local scopes
where possible. Make this function a bit readable by indenting the
debug code in DEBUG_MARSHAL normally.
svn path=/trunk/; revision=26910
2008-07-14 Sven Neumann <sven@gimp.org>
Add new PDB data type PDB_COLORARRAY for using arrays of GimpRGB
colors as argument or return value.
* libgimpbase/gimpbaseenums.[ch] (enum GimpPDBArgType): replaced
the unused GIMP_PDB_BOUNDARY with GIMP_PDB_COLORARRAY.
* libgimpbase/gimpprotocol.h: increased GIMP_PROTOCOL_VERSION.
(struct _GPParam): added d_colorarray entry to the union.
* libgimpbase/gimpprotocol.c
* libgimp/gimp.[ch]
* app/pdb/gimp-pdb-compat.c
* app/plug-in/plug-in-params.c
* app/plug-in/gimpplugin-message.c
* tools/pdbgen/pdb.pl: deal with the new data type.
* tools/pdbgen/enums.pl: regenerated.
* plug-ins/pygimp/pygimp-pdb.c
* plug-ins/script-fu/scheme-wrapper.c: handle the new data type.
svn path=/trunk/; revision=26189
2007-10-21 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/scheme-wrapper.c: Reverted changes in handling
of string arrays to stay backwards compatible (see bug #317634).
* plug-ins/script-fu/scripts/font-map.scm: Updated based on change
in handling of string arrays listed above.
svn path=/trunk/; revision=23897
2007-09-27 Kevin Cozens <kcozens@cvs.gnome.org>
Create SF-RUN-MODE constant for use in Script-Fu. Fixes bug #479893.
* plug-ins/script-fu/scheme-wrapper.c
* plug-ins/script-fu/scheme-wrapper.h: Added set_run_mode_constant()
which creates a new constant called SF-RUN-MODE. This constant can
be used by Script-Fu scripts when calling a plug-in that needs to
know the current run mode.
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/script-fu-console.c
* plug-ins/script-fu/script-fu.c
* plug-ins/script-fu/script-fu-server.c: Added calls to create the
new SF-RUN-MODE constant.
* plug-ins/script-fu/scripts/difference-clouds.scm: Pass SF-RUN-MODE
to the solid noise plug-in instead of always using RUN-INTERACTIVE.
svn path=/trunk/; revision=23674
2007-08-31 Simon Budig <simon@gimp.org>
* plug-ins/script-fu/tinyscheme/scheme.[ch]
* plug-ins/script-fu/tinyscheme/scheme-private.h: make it possible
for foreign functions to return an error.
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/scheme-wrapper.c: Make use of this.
Fixes bug #472026.
svn path=/trunk/; revision=23432
2007-08-30 Simon Budig <simon@gimp.org>
* plug-ins/script-fu/scheme-wrapper.c
* plug-ins/script-fu/tinyscheme/scheme.[ch]
* plug-ins/script-fu/scheme-wrapper.h: Shuffeled some
code around to have scheme.c not include scheme-wrapper.h.
svn path=/trunk/; revision=23411
2007-08-30 Simon Budig <simon@gimp.org>
* plug-ins/script-fu/tinyscheme/scheme.[ch]
* plug-ins/script-fu/tinyscheme/scheme-private.h: small changes
to tinyscheme - mostly removing workarounds for message output.
* plug-ins/script-fu/scheme-wrapper.[ch]: try to channel the
output through a central function, have various output functions
to handle the messages. Remove some hacks.
* plug-ins/script-fu/script-fu-text-console.c
* plug-ins/script-fu/script-fu-scripts.[ch]
* plug-ins/script-fu/script-fu-interface.c
* plug-ins/script-fu/script-fu.c
* plug-ins/script-fu/script-fu-server.c
* plug-ins/script-fu/script-fu-console.[ch]: use the new
infrastructure. Remove more hacks.
* plug-ins/script-fu/servertest.py: small script to test the
communication with the script-fu-server.
svn path=/trunk/; revision=23400
2007-08-13 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/scheme-wrapper.c (ts_output_string): Use the
string length in bytes passed in instead of recalculating it.
* plug-ins/script-fu/tinyscheme/scheme.c: Added comment.
svn path=/trunk/; revision=23239
2007-06-20 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/scheme-wrapper.c (init_constants): hardcode
the built-in units. Dynamically constructing the constants using
gimp_unit_get_singular() doesn't work because it returns a
translated string.
svn path=/trunk/; revision=22804
2007-05-25 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/script-fu-text-console.c
* plug-ins/script-fu/script-fu.c
* plug-ins/script-fu/scheme-wrapper.c
* plug-ins/script-fu/scheme-wrapper.h: Applied slightly modified
patch from Eric Lamarque that makes use of TinyScheme's interactive
mode for the text console in Script-Fu. Fixes bug #440674.
svn path=/trunk/; revision=22622
2007-05-25 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/Makefile.am: Missed commit of this file.
* plug-ins/script-fu/scheme-wrapper.h:
* plug-ins/script-fu/scheme-wrapper.c (ts_output_string): Updated
to expect a 'const char *' and an int but no file pointer.
* plug-ins/script-fu/tinyscheme/scheme.c:
* plug-ins/script-fu/tinyscheme/scheme.h: Changes due to use of
'const char *' for ts_output_routine.
svn path=/trunk/; revision=22620
2007-05-25 Kevin Cozens <kcozens@cvs.gnome.org>
This is the first part of fixing bugs #438997 and #440674.
* plug-ins/script-fu/scheme-wrapper.c: Removed ts_output_routine
declaration from here...
* plug-ins/script-fu/tinyscheme/scheme.h: and added it here.
* plug-ins/script-fu/tinyscheme/scheme.c (putchars): Updated to be
smarter about where it's output needs to be sent.
svn path=/trunk/; revision=22619
2007-05-15 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/scheme-wrapper.c (marshall_proc_db_call): Allow
any number type in a vector to be passed in PDB call as an INT*ARRAY.
Updated error messages accordingly. Fixes bug #435640.
svn path=/trunk/; revision=22495