Overview of changes in ScriptFu version 3

About

This is a brief list of changes, in order of importance. See other pages for more information.

This is the NEWS for ScriptFu version 3.

The first few changes mean some existing scripts need to be ported.

GIMP PDB Programmers Data Base

It changed for major release GIMP 3.0, breaking API. This affects some existing scripts.

New registration functions and GUI

You can register a script as a filter or an ordinary procedure.

Such scripts use a new dialog with improved settings.

The old registration function script-fu-register is deprecated.

New filter scripts are multi-layer aware

All new filter scripts should be multi-layer capable and take a vector of drawables (should use script-fu-register-filter.)

You can still declare a filter plugin taking one drawable, but it will give a warning to the terminal where GIMP was started.

Optional dialect for return values from the PDB

A script can optionally use a dialect that means shorter and more natural scripts.

SF-VALUE is obsolete

Use SF-ADJUSTMENT instead.

ScriptFu separate interpreter

You can install scripts like other plugins in the /plug-ins directory. They will run in their own process. Such scripts won’t take down other scripts or menu items, if they crash hard.

ScriptFu Console

The history of commands persists across sessions. The next time you start the GIMP app, you can up-arrow to get commands from the previous session.

Byte type

The byte type was added. It lets you read and write bytes from files.

Scheme string-port

Fixed and slightly changed.

Scheme display

The function now writes to stdout. You can use it to debug scripts.

Scheme quit

The function now immediately returns to GIMP with an error code as the status of the call to the plugin script.

Interpreter error messages

The interpreter gives improved error messages for mismatched parens and other errors.

Forgiving calls to the PDB

The interpreter will call PDB procedures even when too few or too many arguments are given, with a warning instead of an error. Sometimes this will succeed.

Logging

The interpreter does more logging to the terminal where GIMP was started. This can aid in debugging scripts.

Init scripts

The init scripts such as the conventional init.scm are now in the /scripts/script-fu-init directory.

You can put your own such scripts in a similar, user directory and a script can load them at run time.

Compatibility scripts

Scripts can optionally load compatibility scripts for some obsolete Scheme functions and PDB procedures from GIMP 2.

Test framework and scripts

New test scripts show how ScriptFu should behave.

When you find a bug, you should submit a test script to show it.

Refresh Scripts

This menu item was removed.

To install or remove a script, use the GIMP Extension Manager.

Unicode

Minor fixes.