Justus Winter
e86e90cc03
tests/gpgscm: Foreign objects support for TinySCHEME.
...
* tests/gpgscm/scheme-private.h (struct cell): Add 'foreign_object'.
(is_foreign_object): New prototype.
(get_foreign_object_{vtable,data}): Likewise.
* tests/gpgscm/scheme.c (enum scheme_types): New type.
(is_foreign_object): New function.
(get_foreign_object_{vtable,data}): Likewise.
(mk_foreign_object): Likewise.
(finalize_cell): Free foreign objects.
(atom2str): Pretty-print foreign objects.
(vtbl): Add new functions.
* tests/gpgscm/scheme.h (struct foreign_object_vtable): New type.
(mk_foreign_object): New prototype.
(struct scheme_interface): Add new functions.
Patch from Thomas Munro,
https://sourceforge.net/p/tinyscheme/patches/13/
Signed-off-by: Justus Winter <justus@g10code.com>
2016-04-21 15:36:34 +02:00
Justus Winter
cac96faaea
tests/gpgscm: Dynamically allocate string buffer.
...
* tests/gpgscm/scheme-config.h (strbuff{,_size}): Make buffer dynamic.
* tests/gpgscm/scheme.c (expand_strbuff): New function.
(putcharacter): Adapt length test.
(readstrexp): Expand buffer if necessary.
(scheme_init_custom_alloc): Initialize buffer.
(scheme_deinit): Free buffer.
Patch from Thomas Munro,
https://sourceforge.net/p/tinyscheme/patches/11/
Signed-off-by: Justus Winter <justus@g10code.com>
2016-04-21 15:36:34 +02:00
Justus Winter
fd881ecc89
tests/gpgscm: Expose function to open streams as Scheme ports.
...
* tests/gpgscm/scheme.c (vtbl): Add 'port_from_file' to the vtable.
* tests/gpgscm/scheme.h (struct scheme_interface): New field
'mk_port_from_file'.
Signed-off-by: Justus Winter <justus@g10code.com>
2016-04-21 15:36:34 +02:00
Justus Winter
f617570339
tests/gpgscm: Nicer error message.
...
* tests/gpgscm/scheme.c (opexe_0): Include the value that we tried to
evaluate as function-like in the error message.
Signed-off-by: Justus Winter <justus@g10code.com>
2016-04-21 15:36:34 +02:00
Justus Winter
707d4d95b1
tests/gpgscm: Handle unhandled enumeration values.
...
* tests/gpgscm/scheme.c (opexe_{3,4}): Handle unhandled enumeration
values in the opcode dispatching code.
Signed-off-by: Justus Winter <justus@g10code.com>
2016-04-21 15:36:34 +02:00
Justus Winter
fabb066f90
tests/gpgscm: Verbatim import of latest TinySCHEME.
...
* tests/gpgscm/COPYING: New file.
* tests/gpgscm/init.scm: Likewise.
* tests/gpgscm/opdefines.h: Likewise.
* tests/gpgscm/scheme-private.h: Likewise.
* tests/gpgscm/scheme.c: Likewise.
* tests/gpgscm/scheme.h: Likewise.
Signed-off-by: Justus Winter <justus@g10code.com>
2016-04-21 15:36:34 +02:00