racket/collects/scribblings/inside/hooks.scrbl
2009-12-01 15:11:45 +00:00

92 lines
3.3 KiB
Racket

#lang scribble/doc
@(require "utils.ss")
@title{Flags and Hooks}
The following flags and hooks are available when PLT Scheme is
embedded:
@itemize[
@item{@cppdef{scheme_exit} --- This pointer can be set to a function
that takes an integer argument and returns @cpp{void}; the function
will be used as the default exit handler. The default is @cpp{NULL}.}
@item{@cppdef{scheme_make_stdin}, @cppdef{scheme_make_stdout},
@cppdef{scheme_make_stderr}, --- These pointers can be set to a
function that takes no arguments and returns a Scheme port
@cpp{Scheme_Object *} to be used as the starting standard input,
output, and/or error port. The defaults are @cpp{NULL}. Setting the
initial error port is particularly important for seeing unexpected
error messages if @cpp{stderr} output goes nowhere.}
@item{@cppdef{scheme_console_output} --- This pointer can be set to a
function that takes a string and a @cpp{long} string length; the
function will be called to display internal MzScheme warnings and
messages that possibly contain non-terminating nuls. The default is
@var{NULL}.}
@item{@cppdef{scheme_check_for_break} --- This points to a function
of no arguments that returns an integer. It is used as the default
user-break polling procedure in the main thread. A non-zero return
value indicates a user break, and each time the function returns a
non-zero value, it counts as a new break signal (though the break
signal may be ignored if a previous signal is still pending). The
default is @cpp{NULL}.}
@item{@cppdef{scheme_case_sensitive} --- If this flag is set to a
non-zero value before @cppi{scheme_basic_env} is called, then
MzScheme will not ignore capitalization for symbols and global
variable names. The value of this flag should not change once it is
set. The default is zero.}
@item{@cppdef{scheme_allow_set_undefined} --- This flag determines
the initial value of @scheme[compile-allow-set!-undefined]. The default
is zero.}
@item{@cppdef{scheme_console_printf} --- This function pointer was
left for backward compatibility. The default builds a string and
calls @cppi{scheme_console_output}.}
]
@function[(void scheme_set_collects_path
[Scheme_Object* path])]{
Sets the path to be returned by @scheme[(find-system-path
'collects-dir)].}
@function[(void scheme_set_addon_path
[Scheme_Object* path])]{
Sets the path to be returned by @scheme[(find-system-path
'addon-dir)].}
@function[(void scheme_init_collection_paths_post
[Scheme_Env* env]
[Scheme_Object* pre_extra_paths]
[Scheme_Object* post_extra_paths])]{
Initializes the @scheme[current-library-collection-paths] parameter
using @scheme[find-library-collection-paths]. The
@var{pre_extra_paths} and @var{post_extra-paths} arguments are
propagated to @scheme[find-library-collection-paths].
The function calls @cpp{scheme_seal_parameters} automatically.}
@function[(void scheme_init_collection_paths
[Scheme_Env* env]
[Scheme_Object* pre_extra_paths])]{
Like @cpp{scheme_init_collection_paths_post}, but with @scheme[null]
as the last argument.}
@function[(void scheme_seal_parameters)]{
Takes a snapshot of the current values of built-in parameters. These
values are used for privileged actions, such as installing a @|PLaneT|
package.}