Commit Graph

127 Commits

Author SHA1 Message Date
Ell
97a29b1e9e plug-ins: in script-fu, don't query PDB procedures' info on startup
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)
2018-09-26 14:41:29 -04:00
a88c0ffb93 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:47:19 +02:00
f2306abc0a Bug 761170: Warnings building with clang
Fix some of the warnings.
2017-07-15 21:05:56 +02:00
0a0acc9f2a plug-ins: remove the hardcoded compat enums from script-fu and pygimp
Instead, simply look them up via the type system, and register their
values like they were normal enums.
2017-01-09 16:00:10 +01:00
178794f6f1 libgimpbase: rename enum GimpHueRange's values
and add compat cruft for the old names.
2017-01-09 02:45:16 +01:00
152adbb1bd Rename GIMP_LAYER_MODE_FOO_BROKEN to GIMP_LAYER_MODE_FOO_LEGACY
"Broken" sounds like it needs fixing, but it's legacy compat stuff
that will have to stay for all eternity.
2017-01-09 01:27:20 +01:00
66060e3307 app, libgimp*, plug-ins: replace enum GimpLayerModeEffects by GimpLayerMode
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.
2017-01-08 23:00:19 +01:00
68a9835d56 Bug 756822 - Colors/Desaturate/Luminosity should operate on linear RGB
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".
2015-10-22 19:50:56 +02:00
d03b33f1d9 Bug 739457 - Some errors not detected for GIMP_PDB_COLOR arguments
Check that all 3 array elements are numbers-
2014-11-30 18:32:15 +01:00
48e6199a4f script-fu: port script loading to GFileEnumerator 2014-08-03 21:49:20 +02:00
425748dab0 libgimpbase, *: rename GimpFillType values: GIMP_FOO_FILL -> GIMP_FILL_FOO
Change all users accordingly and add compat enum values and compat
constants to script-fu and pygimp.
2014-06-03 01:11:32 +02:00
6aaa645e04 libgimp, script-fu: remove GIMP 1.2 (sic) compat defines
which we wanted to remove in the "next development cycle" after 2.0,
which would have been in 2.1.x.
2014-05-19 03:08:18 +02:00
386fb4080b script-fu: fix FOO-BUCKET-FILL compat enum value constants 2014-05-19 01:31:07 +02:00
a4223766f2 all,libgimp*: move GimpConvolveType and GimpInkBlobType to libgimpbase
and make GimpConvolveType's values sane.
2014-04-29 22:44:58 +02:00
22c222291d libgimpbase,*: clean up enum values in gimpbaseenums.h
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.
2014-04-29 20:58:30 +02:00
6b0d1038cc Bug 692641 - Various spelling fixes 2013-01-27 18:59:02 +01:00
c77fc779db libgimp, plug-ins: use g_strfreev() to free PDB string arrays 2012-11-27 21:16:26 +01:00
8e5beb6d83 Bug 575830 - script-fu-refresh crashes Script-Fu when called from a script
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.
2012-10-07 17:04:54 +02:00
2a30a2bb74 Bug 684698 - Preferences-Folders: only 15 folder items accepted
Raise "max_paths" from 16 to 256 in all calls to gimp_path_parse().
2012-09-26 23:29:51 +02:00
b06bc63630 Corrected TinyScheme version number shown in Script-Fu console. 2011-12-09 14:11:44 -05:00
262cc1c946 Bug 664316 - Searchpath separator required
Add constant SEARCHPATH-SEPARATOR (= G_SEARCHPATH_SEPARATOR_S).
2011-11-18 09:40:15 +01:00
b0d8ba5ffd Additional fixes for handling UTF-8 coded strings (Bugs 572865 & 628893)
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.
2010-09-20 23:20:45 -04:00
2d6f808ff8 pdb: add a new PDB group "item" and move lots of functions to it
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.
2010-07-09 09:34:44 +02:00
28e7c3f612 Applied changes from CVS version 1.9 of official version of TinyScheme.
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-08-07 15:14:45 -04:00
b559354af1 plug-ins: Make sure to flush output in ts_stdout_output_func() 2009-05-28 21:07:07 +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
d43a0fbf19 Bug 558454 – Plugin Map Color Range disapears from GIMP
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-11-19 08:17:28 +00:00
d80d1fabe9 move variables to local scopes, fix some whitespace and indentation, some
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-19 12:15:26 +00:00
a44896eeed increased size of the stack-allocated error string.
2008-09-19  Sven Neumann  <sven@gimp.org>

	* plug-ins/script-fu/scheme-wrapper.c
	(script_fu_marshal_procedure_call): increased size of the
	stack-allocated error string.


svn path=/trunk/; revision=27011
2008-09-19 09:47:10 +00:00
c76db26367 reordered and renamed functions to be consistent. Got rid of file-global
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 18:00:18 +00:00
5c6132b8cb namespace, copyright headers, indentation, formatting, everything...
2008-09-11  Michael Natterer  <mitch@gimp.org>

	* plug-ins/script-fu/script-fu-regex.[ch]: namespace, copyright
	headers, indentation, formatting, everything...

	* plug-ins/script-fu/scheme-wrapper.c: changed accordingly. Some
	formatting cleanup here too.


svn path=/trunk/; revision=26925
2008-09-11 13:33:58 +00:00
bace080590 plug-ins/script-fu/Makefile.am removed....
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 23:10:15 +00:00
0765087a8f Change Script-Fu error handling to properly use the new error message
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-10 20:33:50 +00:00
faf7eaa244 remove debug arrays to map the values of registered enums to strings. Look
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 14:40:52 +00:00
11b6b0742b fix formatting of prototypes.
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-09-09 14:22:44 +00:00
81131c0bb4 Add new PDB data type PDB_COLORARRAY for using arrays of GimpRGB colors as
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
2008-07-14 14:09:16 +00:00
7d42178b82 Add comment regarding the safe-foreign issue.
2007-10-21  Simon Budig  <simon@gimp.org>

        * plg-ins/script-fu/scheme-wrapper.c: Add comment regarding
	  the safe-foreign issue.


svn path=/trunk/; revision=23898
2007-10-21 20:47:26 +00:00
eaaf936670 Reverted changes in handling of string arrays to stay backwards compatible
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-10-21 20:39:01 +00:00
4d77d9a2d1 plugged memory leaks.
2007-09-28  Sven Neumann  <sven@gimp.org>

	* plug-ins/script-fu/scheme-wrapper.c: plugged memory leaks.

	* libgimpbase/gimpprotocol.c (gp_params_destroy): formatting.

svn path=/trunk/; revision=23683
2007-09-28 14:20:35 +00:00
0cb80bdcd8 Create SF-RUN-MODE constant for use in Script-Fu. Fixes bug #479893.
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-09-27 19:54:28 +00:00
b774625eee unified error messages, removed trailing newlines.
2007-09-27  Sven Neumann  <sven@gimp.org>

	* plug-ins/script-fu/scheme-wrapper.c: unified error
	messages, removed trailing newlines.

svn path=/trunk/; revision=23666
2007-09-27 10:27:46 +00:00
8d42d089ca plug-ins/script-fu/tinyscheme/scheme.[ch] make it possible for foreign
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-31 19:35:26 +00:00
a333d6c660 plug-ins/script-fu/scheme-wrapper.c
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 12:52:42 +00:00
0928a32a21 plug-ins/script-fu/tinyscheme/scheme.[ch] small changes to tinyscheme -
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-30 00:21:20 +00:00
2dfb1e5193 Use the string length in bytes passed in instead of recalculating it.
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-08-13 16:39:16 +00:00
1140960d35 hardcode the built-in units. Dynamically constructing the constants using
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-06-20 10:54:28 +00:00
0ce5d22b3b plug-ins/script-fu/script-fu-text-console.c plug-ins/script-fu/script-fu.c
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 17:45:49 +00:00
32259b03dc Missed commit of this file.
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 16:26:46 +00:00
c87485d1bf This is the first part of fixing bugs #438997 and #440674.
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-25 15:58:09 +00:00
4b2000bd1d Allow any number type in a vector to be passed in PDB call as an
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
2007-05-15 16:45:51 +00:00