gimp/plug-ins/script-fu/libscriptfu/tinyscheme
lloyd konneker 3ee7ca9d56 ScriptFu: delete extra copies of init.scm
Cleanup cruft, unused files.

script-fu/scripts/init/init.scm
is the only copy that GIMP uses.
It is more or less upstream TinyScheme init.scm v1.42,
that K. Cozens occasionally patches with upstream changes.
But upstream has been at 1.42 for several years.

/scripts/script-fu.init is an unused copy of upstream TinyScheme init.scm v1.40
It should have been deleted on the earlier commit
that moved the file in the repo to /scripts/init/init.scm
and the installed init files to /scripts/scriptfu-init.

/tinyscheme/init.scm is an unused copy of upstream TinySche init.scm 1.41
Deleting it means that the tinyscheme dir can no longer be built by itself
into TinyScheme standalone binary, but we don't support that anyway.
2025-02-05 18:49:40 +00:00
..
BUILDING
CHANGES
COPYING
Manual.txt
MiniSCHEMETribute.txt
README Fix spelling errors found with codespell 2025-01-04 15:11:03 +00:00
dynload.c Use LoadLibraryW () 2023-01-24 14:48:44 +00:00
dynload.h
error-port.c ScriptFu: fix #10307 plugin call display not effective 2024-04-25 12:51:00 +00:00
error-port.h ScriptFu: fix #10307 plugin call display not effective 2024-04-25 12:51:00 +00:00
hack.txt
meson.build ScriptFu: fix #10307 plugin call display not effective 2024-04-25 12:51:00 +00:00
opdefines.h
scheme-private.h ScriptFu: TinyScheme: fix closing of ports 2024-05-01 12:08:46 +00:00
scheme.c plug-ins: new named argument syntax in Script-Fu. 2025-01-20 00:01:23 +01:00
scheme.h plug-ins: new named argument syntax in Script-Fu. 2025-01-20 00:01:23 +01:00
string-port.c libscriptfu: Fix long warning on Windows 2024-08-31 19:28:02 +00:00
string-port.h ScriptFu: fix #10307 plugin call display not effective 2024-04-25 12:51:00 +00:00

README

# About ScriptFu's TinyScheme

This version of TinyScheme has diverged from upstream.
Upstream is at SourceForge.

Occasionally fixes upstream are manually backported here.

## Changes

These are not upstream:

1. changes enabling wrapping by ScriptFu
2. i18n internationalization
3. unicode via UTF-8
4. byte type
5. string-port changes

## Build differences

This builds differently from upstream.
It might not build standalone anymore.

1. depends on GLib types, superficially
2. depends on external i18n support
3. some files have been extracted from the original scheme.c
4. depends on GLib for unicode support

## Unicode

This discussed implementation of unicode in this TinyScheme.

Scheme strings and string-ports are UTF-8 encoded.
Each char is one to four bytes.

Reserved words in the language are still ASCII.
Symbols may be unicode.

A string's length is in characters, not bytes.

Strings, and the contents of string-ports, are internally still NUL-terminated.

The implementation continues to pass gchar pointers.

Processing scheme strings may require unicode conversions.

The string length value stored in a scheme string's data cell is the length in *characters*.

Most functions taking a string length take the number of characters.

The number of bytes in a string can be had with libc strlen().

## Other forks

Another significant fork of upstream TinyScheme is in the gnupgp project, where it scripts tests.