Synched from libguile/
[bpt/guile.git] / doc / maint / guile.texi
index 953b4f9..aff4d1b 100644 (file)
@@ -1,6 +1,6 @@
 
 \facons
-@c snarfed from alist.c:35
+@c snarfed from alist.c:36
 @deffn {Scheme Procedure} acons key value alist
 @deffnx {C Function} scm_acons (key, value, alist)
 Add a new key-value pair to @var{alist}.  A new pair is
@@ -10,7 +10,7 @@ function is @emph{not} destructive; @var{alist} is not modified.
 @end deffn
 
 \fsloppy-assq
-@c snarfed from alist.c:49
+@c snarfed from alist.c:50
 @deffn {Scheme Procedure} sloppy-assq key alist
 @deffnx {C Function} scm_sloppy_assq (key, alist)
 Behaves like @code{assq} but does not do any error checking.
@@ -18,7 +18,7 @@ Recommended only for use in Guile internals.
 @end deffn
 
 \fsloppy-assv
-@c snarfed from alist.c:67
+@c snarfed from alist.c:68
 @deffn {Scheme Procedure} sloppy-assv key alist
 @deffnx {C Function} scm_sloppy_assv (key, alist)
 Behaves like @code{assv} but does not do any error checking.
@@ -26,7 +26,7 @@ Recommended only for use in Guile internals.
 @end deffn
 
 \fsloppy-assoc
-@c snarfed from alist.c:85
+@c snarfed from alist.c:86
 @deffn {Scheme Procedure} sloppy-assoc key alist
 @deffnx {C Function} scm_sloppy_assoc (key, alist)
 Behaves like @code{assoc} but does not do any error checking.
@@ -34,7 +34,7 @@ Recommended only for use in Guile internals.
 @end deffn
 
 \fassq
-@c snarfed from alist.c:112
+@c snarfed from alist.c:113
 @deffn {Scheme Procedure} assq key alist
 @deffnx {Scheme Procedure} assv key alist
 @deffnx {Scheme Procedure} assoc key alist
@@ -49,21 +49,21 @@ return the entire alist entry found (i.e. both the key and the value).
 @end deffn
 
 \fassv
-@c snarfed from alist.c:133
+@c snarfed from alist.c:134
 @deffn {Scheme Procedure} assv key alist
 @deffnx {C Function} scm_assv (key, alist)
 Behaves like @code{assq} but uses @code{eqv?} for key comparison.
 @end deffn
 
 \fassoc
-@c snarfed from alist.c:154
+@c snarfed from alist.c:155
 @deffn {Scheme Procedure} assoc key alist
 @deffnx {C Function} scm_assoc (key, alist)
 Behaves like @code{assq} but uses @code{equal?} for key comparison.
 @end deffn
 
 \fassq-ref
-@c snarfed from alist.c:198
+@c snarfed from alist.c:199
 @deffn {Scheme Procedure} assq-ref alist key
 @deffnx {Scheme Procedure} assv-ref alist key
 @deffnx {Scheme Procedure} assoc-ref alist key
@@ -81,21 +81,21 @@ where @var{associator} is one of @code{assq}, @code{assv} or @code{assoc}.
 @end deffn
 
 \fassv-ref
-@c snarfed from alist.c:215
+@c snarfed from alist.c:216
 @deffn {Scheme Procedure} assv-ref alist key
 @deffnx {C Function} scm_assv_ref (alist, key)
 Behaves like @code{assq-ref} but uses @code{eqv?} for key comparison.
 @end deffn
 
 \fassoc-ref
-@c snarfed from alist.c:232
+@c snarfed from alist.c:233
 @deffn {Scheme Procedure} assoc-ref alist key
 @deffnx {C Function} scm_assoc_ref (alist, key)
 Behaves like @code{assq-ref} but uses @code{equal?} for key comparison.
 @end deffn
 
 \fassq-set!
-@c snarfed from alist.c:261
+@c snarfed from alist.c:262
 @deffn {Scheme Procedure} assq-set! alist key val
 @deffnx {Scheme Procedure} assv-set! alist key value
 @deffnx {Scheme Procedure} assoc-set! alist key value
@@ -111,21 +111,21 @@ association list.
 @end deffn
 
 \fassv-set!
-@c snarfed from alist.c:279
+@c snarfed from alist.c:280
 @deffn {Scheme Procedure} assv-set! alist key val
 @deffnx {C Function} scm_assv_set_x (alist, key, val)
 Behaves like @code{assq-set!} but uses @code{eqv?} for key comparison.
 @end deffn
 
 \fassoc-set!
-@c snarfed from alist.c:297
+@c snarfed from alist.c:298
 @deffn {Scheme Procedure} assoc-set! alist key val
 @deffnx {C Function} scm_assoc_set_x (alist, key, val)
 Behaves like @code{assq-set!} but uses @code{equal?} for key comparison.
 @end deffn
 
 \fassq-remove!
-@c snarfed from alist.c:321
+@c snarfed from alist.c:322
 @deffn {Scheme Procedure} assq-remove! alist key
 @deffnx {Scheme Procedure} assv-remove! alist key
 @deffnx {Scheme Procedure} assoc-remove! alist key
@@ -135,14 +135,14 @@ the resulting alist.
 @end deffn
 
 \fassv-remove!
-@c snarfed from alist.c:337
+@c snarfed from alist.c:338
 @deffn {Scheme Procedure} assv-remove! alist key
 @deffnx {C Function} scm_assv_remove_x (alist, key)
 Behaves like @code{assq-remove!} but uses @code{eqv?} for key comparison.
 @end deffn
 
 \fassoc-remove!
-@c snarfed from alist.c:353
+@c snarfed from alist.c:354
 @deffn {Scheme Procedure} assoc-remove! alist key
 @deffnx {C Function} scm_assoc_remove_x (alist, key)
 Behaves like @code{assq-remove!} but uses @code{equal?} for key comparison.
@@ -199,6 +199,15 @@ Mark the async @var{a} for future execution.
 Execute all thunks from the asyncs of the list @var{list_of_a}.
 @end deffn
 
+\fsystem-async
+@c snarfed from async.c:180
+@deffn {Scheme Procedure} system-async thunk
+@deffnx {C Function} scm_system_async (thunk)
+This function is deprecated.  You can use @var{thunk} directly
+instead of explicitely creating an async object.
+
+@end deffn
+
 \fsystem-async-mark
 @c snarfed from async.c:222
 @deffn {Scheme Procedure} system-async-mark proc [thread]
@@ -222,6 +231,20 @@ Do nothing.  When called without arguments, return @code{#f},
 otherwise return the first argument.
 @end deffn
 
+\funmask-signals
+@c snarfed from async.c:268
+@deffn {Scheme Procedure} unmask-signals
+@deffnx {C Function} scm_unmask_signals ()
+Unmask signals. The returned value is not specified.
+@end deffn
+
+\fmask-signals
+@c snarfed from async.c:286
+@deffn {Scheme Procedure} mask-signals
+@deffnx {C Function} scm_mask_signals ()
+Mask signals. The returned value is not specified.
+@end deffn
+
 \fcall-with-blocked-asyncs
 @c snarfed from async.c:319
 @deffn {Scheme Procedure} call-with-blocked-asyncs proc
@@ -265,22 +288,27 @@ output.
 @end deffn
 
 \fdisplay-backtrace
-@c snarfed from backtrace.c:756
-@deffn {Scheme Procedure} display-backtrace stack port [first [depth]]
-@deffnx {C Function} scm_display_backtrace (stack, port, first, depth)
+@c snarfed from backtrace.c:762
+@deffn {Scheme Procedure} display-backtrace stack port [first [depth [highlights]]]
+@deffnx {C Function} scm_display_backtrace_with_highlights (stack, port, first, depth, highlights)
 Display a backtrace to the output port @var{port}. @var{stack}
 is the stack to take the backtrace from, @var{first} specifies
 where in the stack to start and @var{depth} how much frames
 to display. Both @var{first} and @var{depth} can be @code{#f},
 which means that default values will be used.
+When @var{highlights} is given,
+it should be a list and all members of it are highligthed in
+the backtrace.
 @end deffn
 
 \fbacktrace
-@c snarfed from backtrace.c:779
-@deffn {Scheme Procedure} backtrace
-@deffnx {C Function} scm_backtrace ()
+@c snarfed from backtrace.c:798
+@deffn {Scheme Procedure} backtrace [highlights]
+@deffnx {C Function} scm_backtrace_with_highlights (highlights)
 Display a backtrace of the stack saved by the last error
-to the current output port.
+to the current output port.  When @var{highlights} is given,
+it should be a list and all members of it are highligthed in
+the backtrace.
 @end deffn
 
 \fnot
@@ -525,6 +553,13 @@ is implicit).
 Return @code{#t} if @var{obj} is a debug object.
 @end deffn
 
+\fissue-deprecation-warning
+@c snarfed from deprecation.c:99
+@deffn {Scheme Procedure} issue-deprecation-warning . msgs
+@deffnx {C Function} scm_issue_deprecation_warning (msgs)
+Output @var{msgs} to @code{(current-error-port)} when this is the first call to @code{issue-deprecation-warning} with this specific @var{msgs}.  Do nothing otherwise. The argument @var{msgs} should be a list of strings; they are printed in turn, each one followed by a newline.
+@end deffn
+
 \finclude-deprecated-features
 @c snarfed from deprecation.c:144
 @deffn {Scheme Procedure} include-deprecated-features
@@ -532,6 +567,184 @@ Return @code{#t} if @var{obj} is a debug object.
 Return @code{#t} iff deprecated features should be included in public interfaces.
 @end deffn
 
+\fsubstring-move-left!
+@c snarfed from deprecated.c:69
+@deffn {Scheme Procedure} substring-move-left!
+implemented by the C function "scm_substring_move_x"
+@end deffn
+
+\fsubstring-move-right!
+@c snarfed from deprecated.c:71
+@deffn {Scheme Procedure} substring-move-right!
+implemented by the C function "scm_substring_move_x"
+@end deffn
+
+\fc-registered-modules
+@c snarfed from deprecated.c:174
+@deffn {Scheme Procedure} c-registered-modules
+@deffnx {C Function} scm_registered_modules ()
+Return a list of the object code modules that have been imported into
+the current Guile process.  Each element of the list is a pair whose
+car is the name of the module, and whose cdr is the function handle
+for that module's initializer function.  The name is the string that
+has been passed to scm_register_module_xxx.
+@end deffn
+
+\fc-clear-registered-modules
+@c snarfed from deprecated.c:195
+@deffn {Scheme Procedure} c-clear-registered-modules
+@deffnx {C Function} scm_clear_registered_modules ()
+Destroy the list of modules registered with the current Guile process.
+The return value is unspecified.  @strong{Warning:} this function does
+not actually unlink or deallocate these modules, but only destroys the
+records of which modules have been loaded.  It should therefore be used
+only by module bookkeeping operations.
+@end deffn
+
+\fclose-all-ports-except
+@c snarfed from deprecated.c:338
+@deffn {Scheme Procedure} close-all-ports-except . ports
+@deffnx {C Function} scm_close_all_ports_except (ports)
+[DEPRECATED] Close all open file ports used by the interpreter
+except for those supplied as arguments.  This procedure
+was intended to be used before an exec call to close file descriptors
+which are not needed in the new process.  However it has the
+undesirable side effect of flushing buffers, so it's deprecated.
+Use port-for-each instead.
+@end deffn
+
+\fvariable-set-name-hint!
+@c snarfed from deprecated.c:355
+@deffn {Scheme Procedure} variable-set-name-hint! var hint
+@deffnx {C Function} scm_variable_set_name_hint (var, hint)
+Do not use this function.
+@end deffn
+
+\fbuiltin-variable
+@c snarfed from deprecated.c:368
+@deffn {Scheme Procedure} builtin-variable name
+@deffnx {C Function} scm_builtin_variable (name)
+Do not use this function.
+@end deffn
+
+\fsloppy-memq
+@c snarfed from deprecated.c:442
+@deffn {Scheme Procedure} sloppy-memq x lst
+@deffnx {C Function} scm_sloppy_memq (x, lst)
+This procedure behaves like @code{memq}, but does no type or error checking.
+Its use is recommended only in writing Guile internals,
+not for high-level Scheme programs.
+@end deffn
+
+\fsloppy-memv
+@c snarfed from deprecated.c:462
+@deffn {Scheme Procedure} sloppy-memv x lst
+@deffnx {C Function} scm_sloppy_memv (x, lst)
+This procedure behaves like @code{memv}, but does no type or error checking.
+Its use is recommended only in writing Guile internals,
+not for high-level Scheme programs.
+@end deffn
+
+\fsloppy-member
+@c snarfed from deprecated.c:482
+@deffn {Scheme Procedure} sloppy-member x lst
+@deffnx {C Function} scm_sloppy_member (x, lst)
+This procedure behaves like @code{member}, but does no type or error checking.
+Its use is recommended only in writing Guile internals,
+not for high-level Scheme programs.
+@end deffn
+
+\fread-and-eval!
+@c snarfed from deprecated.c:504
+@deffn {Scheme Procedure} read-and-eval! [port]
+@deffnx {C Function} scm_read_and_eval_x (port)
+Read a form from @var{port} (standard input by default), and evaluate it
+(memoizing it in the process) in the top-level environment.  If no data
+is left to be read from @var{port}, an @code{end-of-file} error is
+signalled.
+@end deffn
+
+\fstring->obarray-symbol
+@c snarfed from deprecated.c:794
+@deffn {Scheme Procedure} string->obarray-symbol o s [softp]
+@deffnx {C Function} scm_string_to_obarray_symbol (o, s, softp)
+Intern a new symbol in @var{obarray}, a symbol table, with name
+@var{string}.
+
+If @var{obarray} is @code{#f}, use the default system symbol table.  If
+@var{obarray} is @code{#t}, the symbol should not be interned in any
+symbol table; merely return the pair (@var{symbol}
+. @var{#<undefined>}).
+
+The @var{soft?} argument determines whether new symbol table entries
+should be created when the specified symbol is not already present in
+@var{obarray}.  If @var{soft?} is specified and is a true value, then
+new entries should not be added for symbols not already present in the
+table; instead, simply return @code{#f}.
+@end deffn
+
+\fintern-symbol
+@c snarfed from deprecated.c:832
+@deffn {Scheme Procedure} intern-symbol o s
+@deffnx {C Function} scm_intern_symbol (o, s)
+Add a new symbol to @var{obarray} with name @var{string}, bound to an
+unspecified initial value.  The symbol table is not modified if a symbol
+with this name is already present.
+@end deffn
+
+\funintern-symbol
+@c snarfed from deprecated.c:874
+@deffn {Scheme Procedure} unintern-symbol o s
+@deffnx {C Function} scm_unintern_symbol (o, s)
+Remove the symbol with name @var{string} from @var{obarray}.  This
+function returns @code{#t} if the symbol was present and @code{#f}
+otherwise.
+@end deffn
+
+\fsymbol-binding
+@c snarfed from deprecated.c:919
+@deffn {Scheme Procedure} symbol-binding o s
+@deffnx {C Function} scm_symbol_binding (o, s)
+Look up in @var{obarray} the symbol whose name is @var{string}, and
+return the value to which it is bound.  If @var{obarray} is @code{#f},
+use the global symbol table.  If @var{string} is not interned in
+@var{obarray}, an error is signalled.
+@end deffn
+
+\fsymbol-bound?
+@c snarfed from deprecated.c:972
+@deffn {Scheme Procedure} symbol-bound? o s
+@deffnx {C Function} scm_symbol_bound_p (o, s)
+Return @code{#t} if @var{obarray} contains a symbol with name
+@var{string} bound to a defined value.  This differs from
+@var{symbol-interned?} in that the mere mention of a symbol
+usually causes it to be interned; @code{symbol-bound?}
+determines whether a symbol has been given any meaningful
+value.
+@end deffn
+
+\fsymbol-set!
+@c snarfed from deprecated.c:999
+@deffn {Scheme Procedure} symbol-set! o s v
+@deffnx {C Function} scm_symbol_set_x (o, s, v)
+Find the symbol in @var{obarray} whose name is @var{string}, and rebind
+it to @var{value}.  An error is signalled if @var{string} is not present
+in @var{obarray}.
+@end deffn
+
+\fgentemp
+@c snarfed from deprecated.c:1032
+@deffn {Scheme Procedure} gentemp [prefix [obarray]]
+@deffnx {C Function} scm_gentemp (prefix, obarray)
+Create a new symbol with a name unique in an obarray.
+The name is constructed from an optional string @var{prefix}
+and a counter value.  The default prefix is @code{t}.  The
+@var{obarray} is specified as a second optional argument.
+Default is the system obarray where all normal symbols are
+interned.  The counter is increased by 1 at each
+call.  There is no provision for resetting the counter.
+@end deffn
+
 \fdynamic-link
 @c snarfed from dynl.c:149
 @deffn {Scheme Procedure} dynamic-link filename
@@ -1085,7 +1298,7 @@ terminate if its arguments are circular data structures.
 @end deffn
 
 \fscm-error
-@c snarfed from error.c:81
+@c snarfed from error.c:83
 @deffn {Scheme Procedure} scm-error key subr message args data
 @deffnx {C Function} scm_error_scm (key, subr, message, args, data)
 Raise an error with key @var{key}.  @var{subr} can be a string
@@ -1099,12 +1312,14 @@ Guile) formats using @code{display} and @code{~S} (was
 @code{#f} depending on @var{key}: if @var{key} is
 @code{system-error} then it should be a list containing the
 Unix @code{errno} value; If @var{key} is @code{signal} then it
-should be a list containing the Unix signal number; otherwise
+should be a list containing the Unix signal number; If
+@var{key} is @code{out-of-range} or @code{wrong-type-arg},
+it is a list containing the bad value; otherwise
 it will usually be @code{#f}.
 @end deffn
 
 \fstrerror
-@c snarfed from error.c:128
+@c snarfed from error.c:130
 @deffn {Scheme Procedure} strerror err
 @deffnx {C Function} scm_strerror (err)
 Return the Unix error message corresponding to @var{err}, which
@@ -1112,7 +1327,7 @@ must be an integer value.
 @end deffn
 
 \fapply:nconc2last
-@c snarfed from eval.c:4700
+@c snarfed from eval.c:4690
 @deffn {Scheme Procedure} apply:nconc2last lst
 @deffnx {C Function} scm_nconc2last (lst)
 Given a list (@var{arg1} @dots{} @var{args}), this function
@@ -1125,7 +1340,7 @@ destroys its argument, so use with care.
 @end deffn
 
 \fforce
-@c snarfed from eval.c:5628
+@c snarfed from eval.c:5600
 @deffn {Scheme Procedure} force promise
 @deffnx {C Function} scm_force (promise)
 If the promise @var{x} has not been computed yet, compute and
@@ -1134,7 +1349,7 @@ value.
 @end deffn
 
 \fpromise?
-@c snarfed from eval.c:5651
+@c snarfed from eval.c:5623
 @deffn {Scheme Procedure} promise? obj
 @deffnx {C Function} scm_promise_p (obj)
 Return true if @var{obj} is a promise, i.e. a delayed computation
@@ -1142,7 +1357,7 @@ Return true if @var{obj} is a promise, i.e. a delayed computation
 @end deffn
 
 \fcons-source
-@c snarfed from eval.c:5663
+@c snarfed from eval.c:5635
 @deffn {Scheme Procedure} cons-source xorig x y
 @deffnx {C Function} scm_cons_source (xorig, x, y)
 Create and return a new pair whose car and cdr are @var{x} and @var{y}.
@@ -1151,7 +1366,7 @@ with the new pair.
 @end deffn
 
 \fcopy-tree
-@c snarfed from eval.c:5820
+@c snarfed from eval.c:5792
 @deffn {Scheme Procedure} copy-tree obj
 @deffnx {C Function} scm_copy_tree (obj)
 Recursively copy the data tree that is bound to @var{obj}, and return a
@@ -1162,7 +1377,7 @@ any other object.
 @end deffn
 
 \fprimitive-eval
-@c snarfed from eval.c:5906
+@c snarfed from eval.c:5878
 @deffn {Scheme Procedure} primitive-eval exp
 @deffnx {C Function} scm_primitive_eval (exp)
 Evaluate @var{exp} in the top-level environment specified by
@@ -1170,7 +1385,7 @@ the current module.
 @end deffn
 
 \feval
-@c snarfed from eval.c:5975
+@c snarfed from eval.c:5947
 @deffn {Scheme Procedure} eval exp module
 @deffnx {C Function} scm_eval (exp, module)
 Evaluate @var{exp}, a list representing a Scheme expression,
@@ -2252,6 +2467,41 @@ last.  The return value of this procedure is not specified.
 Convert the procedure list of @var{hook} to a list.
 @end deffn
 
+\fgettext
+@c snarfed from i18n.c:90
+@deffn {Scheme Procedure} gettext msgid [domain [category]]
+@deffnx {C Function} scm_gettext (msgid, domain, category)
+Return the translation of @var{msgid} in the message domain @var{domain}. @var{domain} is optional and defaults to the domain set through (textdomain).  @var{category} is optional and defaults to LC_MESSAGES.
+@end deffn
+
+\fngettext
+@c snarfed from i18n.c:146
+@deffn {Scheme Procedure} ngettext msgid msgid_plural n [domain [category]]
+@deffnx {C Function} scm_ngettext (msgid, msgid_plural, n, domain, category)
+Return the translation of @var{msgid}/@var{msgid_plural} in the message domain @var{domain}, with the plural form being chosen appropriately for the number @var{n}.  @var{domain} is optional and defaults to the domain set through (textdomain). @var{category} is optional and defaults to LC_MESSAGES.
+@end deffn
+
+\ftextdomain
+@c snarfed from i18n.c:209
+@deffn {Scheme Procedure} textdomain [domainname]
+@deffnx {C Function} scm_textdomain (domainname)
+If optional parameter @var{domainname} is supplied, set the textdomain.  Return the textdomain.
+@end deffn
+
+\fbindtextdomain
+@c snarfed from i18n.c:241
+@deffn {Scheme Procedure} bindtextdomain domainname [directory]
+@deffnx {C Function} scm_bindtextdomain (domainname, directory)
+If optional parameter @var{directory} is supplied, set message catalogs to directory @var{directory}.  Return the directory bound to @var{domainname}.
+@end deffn
+
+\fbind-textdomain-codeset
+@c snarfed from i18n.c:280
+@deffn {Scheme Procedure} bind-textdomain-codeset domainname [encoding]
+@deffnx {C Function} scm_bind_textdomain_codeset (domainname, encoding)
+If optional parameter @var{encoding} is supplied, set encoding for message catalogs of @var{domainname}.  Return the encoding of @var{domainname}.
+@end deffn
+
 \fftell
 @c snarfed from ioext.c:54
 @deffn {Scheme Procedure} ftell fd_port
@@ -2791,6 +3041,24 @@ result of applying @var{code} to the expression and the
 environment.
 @end deffn
 
+\fprocedure->macro
+@c snarfed from macros.c:146
+@deffn {Scheme Procedure} procedure->macro code
+@deffnx {C Function} scm_makmacro (code)
+Return a @dfn{macro} which, when a symbol defined to this value
+appears as the first symbol in an expression, evaluates the
+result of applying @var{code} to the expression and the
+environment.  For example:
+
+@lisp
+(define trace
+  (procedure->macro
+   (lambda (x env) `(set! ,(cadr x) (tracef ,(cadr x) ',(cadr x))))))
+
+(trace @i{foo}) @equiv{} (set! @i{foo} (tracef @i{foo} '@i{foo})).
+@end lisp
+@end deffn
+
 \fmacro?
 @c snarfed from macros.c:165
 @deffn {Scheme Procedure} macro? obj
@@ -2886,7 +3154,7 @@ Return the obarray that is used for all new bindings before the module system is
 @end deffn
 
 \fexact?
-@c snarfed from numbers.c:461
+@c snarfed from numbers.c:460
 @deffn {Scheme Procedure} exact? x
 @deffnx {C Function} scm_exact_p (x)
 Return @code{#t} if @var{x} is an exact number, @code{#f}
@@ -2894,7 +3162,7 @@ otherwise.
 @end deffn
 
 \fodd?
-@c snarfed from numbers.c:480
+@c snarfed from numbers.c:479
 @deffn {Scheme Procedure} odd? n
 @deffnx {C Function} scm_odd_p (n)
 Return @code{#t} if @var{n} is an odd number, @code{#f}
@@ -2902,7 +3170,7 @@ otherwise.
 @end deffn
 
 \feven?
-@c snarfed from numbers.c:515
+@c snarfed from numbers.c:514
 @deffn {Scheme Procedure} even? n
 @deffnx {C Function} scm_even_p (n)
 Return @code{#t} if @var{n} is an even number, @code{#f}
@@ -2910,7 +3178,7 @@ otherwise.
 @end deffn
 
 \finf?
-@c snarfed from numbers.c:549
+@c snarfed from numbers.c:548
 @deffn {Scheme Procedure} inf? x
 @deffnx {C Function} scm_inf_p (x)
 Return @code{#t} if @var{x} is either @samp{+inf.0}
@@ -2918,7 +3186,7 @@ or @samp{-inf.0}, @code{#f} otherwise.
 @end deffn
 
 \fnan?
-@c snarfed from numbers.c:565
+@c snarfed from numbers.c:564
 @deffn {Scheme Procedure} nan? n
 @deffnx {C Function} scm_nan_p (n)
 Return @code{#t} if @var{n} is a NaN, @code{#f}
@@ -2926,28 +3194,28 @@ otherwise.
 @end deffn
 
 \finf
-@c snarfed from numbers.c:635
+@c snarfed from numbers.c:634
 @deffn {Scheme Procedure} inf
 @deffnx {C Function} scm_inf ()
 Return Inf.
 @end deffn
 
 \fnan
-@c snarfed from numbers.c:650
+@c snarfed from numbers.c:649
 @deffn {Scheme Procedure} nan
 @deffnx {C Function} scm_nan ()
 Return NaN.
 @end deffn
 
 \fabs
-@c snarfed from numbers.c:666
+@c snarfed from numbers.c:665
 @deffn {Scheme Procedure} abs x
 @deffnx {C Function} scm_abs (x)
 Return the absolute value of @var{x}.
 @end deffn
 
 \flogand
-@c snarfed from numbers.c:1201
+@c snarfed from numbers.c:1200
 @deffn {Scheme Procedure} logand n1 n2
 Return the bitwise AND of the integer arguments.
 
@@ -2959,7 +3227,7 @@ Return the bitwise AND of the integer arguments.
 @end deffn
 
 \flogior
-@c snarfed from numbers.c:1277
+@c snarfed from numbers.c:1276
 @deffn {Scheme Procedure} logior n1 n2
 Return the bitwise OR of the integer arguments.
 
@@ -2971,7 +3239,7 @@ Return the bitwise OR of the integer arguments.
 @end deffn
 
 \flogxor
-@c snarfed from numbers.c:1353
+@c snarfed from numbers.c:1352
 @deffn {Scheme Procedure} logxor n1 n2
 Return the bitwise XOR of the integer arguments.  A bit is
 set in the result if it is set in an odd number of arguments.
@@ -2984,7 +3252,7 @@ set in the result if it is set in an odd number of arguments.
 @end deffn
 
 \flogtest
-@c snarfed from numbers.c:1424
+@c snarfed from numbers.c:1423
 @deffn {Scheme Procedure} logtest j k
 @deffnx {C Function} scm_logtest (j, k)
 @lisp
@@ -2996,7 +3264,7 @@ set in the result if it is set in an odd number of arguments.
 @end deffn
 
 \flogbit?
-@c snarfed from numbers.c:1495
+@c snarfed from numbers.c:1494
 @deffn {Scheme Procedure} logbit? index j
 @deffnx {C Function} scm_logbit_p (index, j)
 @lisp
@@ -3011,7 +3279,7 @@ set in the result if it is set in an odd number of arguments.
 @end deffn
 
 \flognot
-@c snarfed from numbers.c:1529
+@c snarfed from numbers.c:1528
 @deffn {Scheme Procedure} lognot n
 @deffnx {C Function} scm_lognot (n)
 Return the integer which is the ones-complement of the integer
@@ -3026,7 +3294,7 @@ argument.
 @end deffn
 
 \fmodulo-expt
-@c snarfed from numbers.c:1574
+@c snarfed from numbers.c:1573
 @deffn {Scheme Procedure} modulo-expt n k m
 @deffnx {C Function} scm_modulo_expt (n, k, m)
 Return @var{n} raised to the integer exponent
@@ -3039,10 +3307,10 @@ Return @var{n} raised to the integer exponent
 @end deffn
 
 \finteger-expt
-@c snarfed from numbers.c:1679
+@c snarfed from numbers.c:1678
 @deffn {Scheme Procedure} integer-expt n k
 @deffnx {C Function} scm_integer_expt (n, k)
-Return @var{n} raised to the non-negative integer exponent
+Return @var{n} raised to the exact integer exponent
 @var{k}.
 
 @lisp
@@ -3054,7 +3322,7 @@ Return @var{n} raised to the non-negative integer exponent
 @end deffn
 
 \fash
-@c snarfed from numbers.c:1785
+@c snarfed from numbers.c:1768
 @deffn {Scheme Procedure} ash n cnt
 @deffnx {C Function} scm_ash (n, cnt)
 Return @var{n} shifted left by @var{cnt} bits, or shifted right
@@ -3079,7 +3347,7 @@ shift dropping bits.
 @end deffn
 
 \fbit-extract
-@c snarfed from numbers.c:1825
+@c snarfed from numbers.c:1808
 @deffn {Scheme Procedure} bit-extract n start end
 @deffnx {C Function} scm_bit_extract (n, start, end)
 Return the integer composed of the @var{start} (inclusive)
@@ -3095,7 +3363,7 @@ through @var{end} (exclusive) bits of @var{n}.  The
 @end deffn
 
 \flogcount
-@c snarfed from numbers.c:1904
+@c snarfed from numbers.c:1887
 @deffn {Scheme Procedure} logcount n
 @deffnx {C Function} scm_logcount (n)
 Return the number of bits in integer @var{n}.  If integer is
@@ -3114,7 +3382,7 @@ representation are counted.  If 0, 0 is returned.
 @end deffn
 
 \finteger-length
-@c snarfed from numbers.c:1952
+@c snarfed from numbers.c:1935
 @deffn {Scheme Procedure} integer-length n
 @deffnx {C Function} scm_integer_length (n)
 Return the number of bits necessary to represent @var{n}.
@@ -3130,7 +3398,7 @@ Return the number of bits necessary to represent @var{n}.
 @end deffn
 
 \fnumber->string
-@c snarfed from numbers.c:2275
+@c snarfed from numbers.c:2258
 @deffn {Scheme Procedure} number->string n [radix]
 @deffnx {C Function} scm_number_to_string (n, radix)
 Return a string holding the external representation of the
@@ -3139,7 +3407,7 @@ inexact, a radix of 10 will be used.
 @end deffn
 
 \fstring->number
-@c snarfed from numbers.c:2958
+@c snarfed from numbers.c:2941
 @deffn {Scheme Procedure} string->number string [radix]
 @deffnx {C Function} scm_string_to_number (string, radix)
 Return a number of the maximally precise representation
@@ -3153,7 +3421,7 @@ syntactically valid notation for a number, then
 @end deffn
 
 \fnumber?
-@c snarfed from numbers.c:3021
+@c snarfed from numbers.c:3004
 @deffn {Scheme Procedure} number? x
 @deffnx {C Function} scm_number_p (x)
 Return @code{#t} if @var{x} is a number, @code{#f}
@@ -3161,7 +3429,7 @@ otherwise.
 @end deffn
 
 \fcomplex?
-@c snarfed from numbers.c:3034
+@c snarfed from numbers.c:3017
 @deffn {Scheme Procedure} complex? x
 @deffnx {C Function} scm_complex_p (x)
 Return @code{#t} if @var{x} is a complex number, @code{#f}
@@ -3172,7 +3440,7 @@ rational or integer number.
 @end deffn
 
 \freal?
-@c snarfed from numbers.c:3047
+@c snarfed from numbers.c:3030
 @deffn {Scheme Procedure} real? x
 @deffnx {C Function} scm_real_p (x)
 Return @code{#t} if @var{x} is a real number, @code{#f}
@@ -3182,7 +3450,7 @@ fulfilled if @var{x} is an integer number.
 @end deffn
 
 \frational?
-@c snarfed from numbers.c:3060
+@c snarfed from numbers.c:3043
 @deffn {Scheme Procedure} rational? x
 @deffnx {C Function} scm_rational_p (x)
 Return @code{#t} if @var{x} is a rational number, @code{#f}
@@ -3192,7 +3460,7 @@ fulfilled if @var{x} is an integer number.
 @end deffn
 
 \finteger?
-@c snarfed from numbers.c:3083
+@c snarfed from numbers.c:3066
 @deffn {Scheme Procedure} integer? x
 @deffnx {C Function} scm_integer_p (x)
 Return @code{#t} if @var{x} is an integer number, @code{#f}
@@ -3200,7 +3468,7 @@ else.
 @end deffn
 
 \finexact?
-@c snarfed from numbers.c:3108
+@c snarfed from numbers.c:3092
 @deffn {Scheme Procedure} inexact? x
 @deffnx {C Function} scm_inexact_p (x)
 Return @code{#t} if @var{x} is an inexact number, @code{#f}
@@ -3208,35 +3476,35 @@ else.
 @end deffn
 
 \ftruncate
-@c snarfed from numbers.c:4955
+@c snarfed from numbers.c:4939
 @deffn {Scheme Procedure} truncate x
 @deffnx {C Function} scm_truncate_number (x)
 Round the number @var{x} towards zero.
 @end deffn
 
 \fround
-@c snarfed from numbers.c:4971
+@c snarfed from numbers.c:4955
 @deffn {Scheme Procedure} round x
 @deffnx {C Function} scm_round_number (x)
 Round the number @var{x} towards the nearest integer. When it is exactly halfway between two integers, round towards the even one.
 @end deffn
 
 \ffloor
-@c snarfed from numbers.c:4997
+@c snarfed from numbers.c:4981
 @deffn {Scheme Procedure} floor x
 @deffnx {C Function} scm_floor (x)
 Round the number @var{x} towards minus infinity.
 @end deffn
 
 \fceiling
-@c snarfed from numbers.c:5028
+@c snarfed from numbers.c:5012
 @deffn {Scheme Procedure} ceiling x
 @deffnx {C Function} scm_ceiling (x)
 Round the number @var{x} towards infinity.
 @end deffn
 
 \f$expt
-@c snarfed from numbers.c:5137
+@c snarfed from numbers.c:5121
 @deffn {Scheme Procedure} $expt x y
 @deffnx {C Function} scm_sys_expt (x, y)
 Return @var{x} raised to the power of @var{y}. This
@@ -3244,7 +3512,7 @@ procedure does not accept complex arguments.
 @end deffn
 
 \f$atan2
-@c snarfed from numbers.c:5153
+@c snarfed from numbers.c:5137
 @deffn {Scheme Procedure} $atan2 x y
 @deffnx {C Function} scm_sys_atan2 (x, y)
 Return the arc tangent of the two arguments @var{x} and
@@ -3255,7 +3523,7 @@ procedure does not accept complex arguments.
 @end deffn
 
 \fmake-rectangular
-@c snarfed from numbers.c:5181
+@c snarfed from numbers.c:5165
 @deffn {Scheme Procedure} make-rectangular real imaginary
 @deffnx {C Function} scm_make_rectangular (real, imaginary)
 Return a complex number constructed of the given @var{real} and
@@ -3263,21 +3531,21 @@ Return a complex number constructed of the given @var{real} and
 @end deffn
 
 \fmake-polar
-@c snarfed from numbers.c:5205
+@c snarfed from numbers.c:5189
 @deffn {Scheme Procedure} make-polar x y
 @deffnx {C Function} scm_make_polar (x, y)
 Return the complex number @var{x} * e^(i * @var{y}).
 @end deffn
 
 \finexact->exact
-@c snarfed from numbers.c:5408
+@c snarfed from numbers.c:5392
 @deffn {Scheme Procedure} inexact->exact z
 @deffnx {C Function} scm_inexact_to_exact (z)
 Return an exact number that is numerically closest to @var{z}.
 @end deffn
 
 \frationalize
-@c snarfed from numbers.c:5445
+@c snarfed from numbers.c:5429
 @deffn {Scheme Procedure} rationalize x err
 @deffnx {C Function} scm_rationalize (x, err)
 Return an exact number that is within @var{err} of @var{x}.
@@ -3382,7 +3650,7 @@ Return @code{#t} if @var{x} is a pair; otherwise return
 @end deffn
 
 \fset-car!
-@c snarfed from pairs.c:85
+@c snarfed from pairs.c:120
 @deffn {Scheme Procedure} set-car! pair value
 @deffnx {C Function} scm_set_car_x (pair, value)
 Stores @var{value} in the car field of @var{pair}.  The value returned
@@ -3390,7 +3658,7 @@ by @code{set-car!} is unspecified.
 @end deffn
 
 \fset-cdr!
-@c snarfed from pairs.c:98
+@c snarfed from pairs.c:133
 @deffn {Scheme Procedure} set-cdr! pair value
 @deffnx {C Function} scm_set_cdr_x (pair, value)
 Stores @var{value} in the cdr field of @var{pair}.  The value returned
@@ -3644,7 +3912,7 @@ characters are available, the end-of-file object is returned.
 @end deffn
 
 \fpeek-char
-@c snarfed from ports.c:1281
+@c snarfed from ports.c:1297
 @deffn {Scheme Procedure} peek-char [port]
 @deffnx {C Function} scm_peek_char (port)
 Return the next character available from @var{port},
@@ -3664,7 +3932,7 @@ to @code{read-char} would have hung.
 @end deffn
 
 \funread-char
-@c snarfed from ports.c:1304
+@c snarfed from ports.c:1320
 @deffn {Scheme Procedure} unread-char cobj [port]
 @deffnx {C Function} scm_unread_char (cobj, port)
 Place @var{char} in @var{port} so that it will be read by the
@@ -3674,7 +3942,7 @@ not supplied, the current input port is used.
 @end deffn
 
 \funread-string
-@c snarfed from ports.c:1327
+@c snarfed from ports.c:1343
 @deffn {Scheme Procedure} unread-string str port
 @deffnx {C Function} scm_unread_string (str, port)
 Place the string @var{str} in @var{port} so that its characters will be
@@ -3684,7 +3952,7 @@ unread characters will be read again in last-in first-out order.  If
 @end deffn
 
 \fseek
-@c snarfed from ports.c:1366
+@c snarfed from ports.c:1382
 @deffn {Scheme Procedure} seek fd_port offset whence
 @deffnx {C Function} scm_seek (fd_port, offset, whence)
 Sets the current position of @var{fd/port} to the integer
@@ -3713,7 +3981,7 @@ that the current position of a port can be obtained using:
 @end deffn
 
 \ftruncate-file
-@c snarfed from ports.c:1424
+@c snarfed from ports.c:1440
 @deffn {Scheme Procedure} truncate-file object [length]
 @deffnx {C Function} scm_truncate_file (object, length)
 Truncates the object referred to by @var{object} to at most
@@ -3725,7 +3993,7 @@ position.  The return value is unspecified.
 @end deffn
 
 \fport-line
-@c snarfed from ports.c:1484
+@c snarfed from ports.c:1500
 @deffn {Scheme Procedure} port-line port
 @deffnx {C Function} scm_port_line (port)
 Return the current line number for @var{port}.
@@ -3737,7 +4005,7 @@ non-programmers.
 @end deffn
 
 \fset-port-line!
-@c snarfed from ports.c:1496
+@c snarfed from ports.c:1512
 @deffn {Scheme Procedure} set-port-line! port line
 @deffnx {C Function} scm_set_port_line_x (port, line)
 Set the current line number for @var{port} to @var{line}.  The
@@ -3745,7 +4013,7 @@ first line of a file is 0.
 @end deffn
 
 \fport-column
-@c snarfed from ports.c:1515
+@c snarfed from ports.c:1531
 @deffn {Scheme Procedure} port-column port
 @deffnx {C Function} scm_port_column (port)
 Return the current column number of @var{port}.
@@ -3759,7 +4027,7 @@ what non-programmers will find most natural.)
 @end deffn
 
 \fset-port-column!
-@c snarfed from ports.c:1527
+@c snarfed from ports.c:1543
 @deffn {Scheme Procedure} set-port-column! port column
 @deffnx {C Function} scm_set_port_column_x (port, column)
 Set the current column of @var{port}.  Before reading the first
@@ -3767,7 +4035,7 @@ character on a line the column should be 0.
 @end deffn
 
 \fport-filename
-@c snarfed from ports.c:1541
+@c snarfed from ports.c:1557
 @deffn {Scheme Procedure} port-filename port
 @deffnx {C Function} scm_port_filename (port)
 Return the filename associated with @var{port}.  This function returns
@@ -3776,7 +4044,7 @@ when called on the current input, output and error ports respectively.
 @end deffn
 
 \fset-port-filename!
-@c snarfed from ports.c:1555
+@c snarfed from ports.c:1571
 @deffn {Scheme Procedure} set-port-filename! port filename
 @deffnx {C Function} scm_set_port_filename_x (port, filename)
 Change the filename associated with @var{port}, using the current input
@@ -3786,7 +4054,7 @@ source of data, but only the value that is returned by
 @end deffn
 
 \f%make-void-port
-@c snarfed from ports.c:1649
+@c snarfed from ports.c:1665
 @deffn {Scheme Procedure} %make-void-port mode
 @deffnx {C Function} scm_sys_make_void_port (mode)
 Create and return a new void port.  A void port acts like
@@ -3806,7 +4074,7 @@ and @code{print-options}.
 @end deffn
 
 \fsimple-format
-@c snarfed from print.c:914
+@c snarfed from print.c:932
 @deffn {Scheme Procedure} simple-format destination message . args
 @deffnx {C Function} scm_simple_format (destination, message, args)
 Write @var{message} to @var{destination}, defaulting to
@@ -3823,7 +4091,7 @@ containing the formatted text. Does not add a trailing newline.
 @end deffn
 
 \fnewline
-@c snarfed from print.c:1004
+@c snarfed from print.c:1022
 @deffn {Scheme Procedure} newline [port]
 @deffnx {C Function} scm_newline (port)
 Send a newline to @var{port}.
@@ -3831,14 +4099,14 @@ If @var{port} is omitted, send to the current output port.
 @end deffn
 
 \fwrite-char
-@c snarfed from print.c:1019
+@c snarfed from print.c:1037
 @deffn {Scheme Procedure} write-char chr [port]
 @deffnx {C Function} scm_write_char (chr, port)
 Send character @var{chr} to @var{port}.
 @end deffn
 
 \fport-with-print-state
-@c snarfed from print.c:1073
+@c snarfed from print.c:1091
 @deffn {Scheme Procedure} port-with-print-state port [pstate]
 @deffnx {C Function} scm_port_with_print_state (port, pstate)
 Create a new port which behaves like @var{port}, but with an
@@ -3848,7 +4116,7 @@ a print state, the old print state is reused.
 @end deffn
 
 \fget-print-state
-@c snarfed from print.c:1086
+@c snarfed from print.c:1104
 @deffn {Scheme Procedure} get-print-state port
 @deffnx {C Function} scm_get_print_state (port)
 Return the print state of the port @var{port}. If @var{port}
@@ -4134,7 +4402,7 @@ Any whitespace before the next token is discarded.
 @end deffn
 
 \fread-hash-extend
-@c snarfed from read.c:866
+@c snarfed from read.c:868
 @deffn {Scheme Procedure} read-hash-extend chr proc
 @deffnx {C Function} scm_read_hash_extend (chr, proc)
 Install the procedure @var{proc} for reading expressions
@@ -4762,7 +5030,7 @@ Return @code{#t} if @var{frame} is an overflow frame.
 @end deffn
 
 \fget-internal-real-time
-@c snarfed from stime.c:117
+@c snarfed from stime.c:132
 @deffn {Scheme Procedure} get-internal-real-time
 @deffnx {C Function} scm_get_internal_real_time ()
 Return the number of time units since the interpreter was
@@ -4770,7 +5038,7 @@ started.
 @end deffn
 
 \ftimes
-@c snarfed from stime.c:164
+@c snarfed from stime.c:179
 @deffn {Scheme Procedure} times
 @deffnx {C Function} scm_times ()
 Return an object with information about real and processor
@@ -4797,7 +5065,7 @@ terminated child processes.
 @end deffn
 
 \fget-internal-run-time
-@c snarfed from stime.c:196
+@c snarfed from stime.c:211
 @deffn {Scheme Procedure} get-internal-run-time
 @deffnx {C Function} scm_get_internal_run_time ()
 Return the number of time units of processor time used by the
@@ -4806,7 +5074,7 @@ included but subprocesses are not.
 @end deffn
 
 \fcurrent-time
-@c snarfed from stime.c:213
+@c snarfed from stime.c:228
 @deffn {Scheme Procedure} current-time
 @deffnx {C Function} scm_current_time ()
 Return the number of seconds since 1970-01-01 00:00:00 UTC,
@@ -4814,7 +5082,7 @@ excluding leap seconds.
 @end deffn
 
 \fgettimeofday
-@c snarfed from stime.c:231
+@c snarfed from stime.c:247
 @deffn {Scheme Procedure} gettimeofday
 @deffnx {C Function} scm_gettimeofday ()
 Return a pair containing the number of seconds and microseconds
@@ -4824,7 +5092,7 @@ operating system.
 @end deffn
 
 \flocaltime
-@c snarfed from stime.c:335
+@c snarfed from stime.c:363
 @deffn {Scheme Procedure} localtime time [zone]
 @deffnx {C Function} scm_localtime (time, zone)
 Return an object representing the broken down components of
@@ -4835,7 +5103,7 @@ optionally specified by @var{zone} (a string), otherwise the
 @end deffn
 
 \fgmtime
-@c snarfed from stime.c:420
+@c snarfed from stime.c:448
 @deffn {Scheme Procedure} gmtime time
 @deffnx {C Function} scm_gmtime (time)
 Return an object representing the broken down components of
@@ -4844,7 +5112,7 @@ Return an object representing the broken down components of
 @end deffn
 
 \fmktime
-@c snarfed from stime.c:498
+@c snarfed from stime.c:526
 @deffn {Scheme Procedure} mktime sbd_time [zone]
 @deffnx {C Function} scm_mktime (sbd_time, zone)
 @var{bd-time} is an object representing broken down time and @code{zone}
@@ -4858,7 +5126,7 @@ as @var{bd-time} but with normalized values.
 @end deffn
 
 \ftzset
-@c snarfed from stime.c:581
+@c snarfed from stime.c:611
 @deffn {Scheme Procedure} tzset
 @deffnx {C Function} scm_tzset ()
 Initialize the timezone from the TZ environment variable
@@ -4868,7 +5136,7 @@ timezone.
 @end deffn
 
 \fstrftime
-@c snarfed from stime.c:598
+@c snarfed from stime.c:628
 @deffn {Scheme Procedure} strftime format stime
 @deffnx {C Function} scm_strftime (format, stime)
 Formats a time specification @var{time} using @var{template}.  @var{time}
@@ -4881,7 +5149,7 @@ is the formatted string.
 @end deffn
 
 \fstrptime
-@c snarfed from stime.c:696
+@c snarfed from stime.c:726
 @deffn {Scheme Procedure} strptime format string
 @deffnx {C Function} scm_strptime (format, string)
 Performs the reverse action to @code{strftime}, parsing
@@ -4897,20 +5165,20 @@ which were used for the conversion.
 @end deffn
 
 \fstring?
-@c snarfed from strings.c:494
+@c snarfed from strings.c:526
 @deffn {Scheme Procedure} string? obj
 @deffnx {C Function} scm_string_p (obj)
 Return @code{#t} if @var{obj} is a string, else @code{#f}.
 @end deffn
 
 \flist->string
-@c snarfed from strings.c:502
+@c snarfed from strings.c:534
 @deffn {Scheme Procedure} list->string
 implemented by the C function "scm_string"
 @end deffn
 
 \fstring
-@c snarfed from strings.c:508
+@c snarfed from strings.c:540
 @deffn {Scheme Procedure} string . chrs
 @deffnx {Scheme Procedure} list->string chrs
 @deffnx {C Function} scm_string (chrs)
@@ -4919,7 +5187,7 @@ Return a newly allocated string composed of the arguments,
 @end deffn
 
 \fmake-string
-@c snarfed from strings.c:546
+@c snarfed from strings.c:578
 @deffn {Scheme Procedure} make-string k [chr]
 @deffnx {C Function} scm_make_string (k, chr)
 Return a newly allocated string of
@@ -4929,14 +5197,14 @@ of the @var{string} are unspecified.
 @end deffn
 
 \fstring-length
-@c snarfed from strings.c:572
+@c snarfed from strings.c:604
 @deffn {Scheme Procedure} string-length string
 @deffnx {C Function} scm_string_length (string)
 Return the number of characters in @var{string}.
 @end deffn
 
 \fstring-ref
-@c snarfed from strings.c:591
+@c snarfed from strings.c:623
 @deffn {Scheme Procedure} string-ref str k
 @deffnx {C Function} scm_string_ref (str, k)
 Return character @var{k} of @var{str} using zero-origin
@@ -4944,7 +5212,7 @@ indexing. @var{k} must be a valid index of @var{str}.
 @end deffn
 
 \fstring-set!
-@c snarfed from strings.c:614
+@c snarfed from strings.c:646
 @deffn {Scheme Procedure} string-set! str k chr
 @deffnx {C Function} scm_string_set_x (str, k, chr)
 Store @var{chr} in element @var{k} of @var{str} and return
@@ -4953,7 +5221,7 @@ an unspecified value. @var{k} must be a valid index of
 @end deffn
 
 \fsubstring
-@c snarfed from strings.c:650
+@c snarfed from strings.c:682
 @deffn {Scheme Procedure} substring str start [end]
 @deffnx {C Function} scm_substring (str, start, end)
 Return a newly allocated string formed from the characters
@@ -4965,8 +5233,24 @@ exact integers satisfying:
 0 <= @var{start} <= @var{end} <= (string-length @var{str}).
 @end deffn
 
+\fsubstring/read-only
+@c snarfed from strings.c:708
+@deffn {Scheme Procedure} substring/read-only str start [end]
+@deffnx {C Function} scm_substring_read_only (str, start, end)
+Return a newly allocated string formed from the characters
+of @var{str} beginning with index @var{start} (inclusive) and
+ending with index @var{end} (exclusive).
+@var{str} must be a string, @var{start} and @var{end} must be
+exact integers satisfying:
+
+0 <= @var{start} <= @var{end} <= (string-length @var{str}).
+
+The returned string is read-only.
+
+@end deffn
+
 \fsubstring/copy
-@c snarfed from strings.c:673
+@c snarfed from strings.c:731
 @deffn {Scheme Procedure} substring/copy str start [end]
 @deffnx {C Function} scm_substring_copy (str, start, end)
 Return a newly allocated string formed from the characters
@@ -4979,7 +5263,7 @@ exact integers satisfying:
 @end deffn
 
 \fsubstring/shared
-@c snarfed from strings.c:697
+@c snarfed from strings.c:755
 @deffn {Scheme Procedure} substring/shared str start [end]
 @deffnx {C Function} scm_substring_shared (str, start, end)
 Return string that indirectly refers to the characters
@@ -4992,7 +5276,7 @@ exact integers satisfying:
 @end deffn
 
 \fstring-append
-@c snarfed from strings.c:716
+@c snarfed from strings.c:774
 @deffn {Scheme Procedure} string-append . args
 @deffnx {C Function} scm_string_append (args)
 Return a newly allocated string whose characters form the
@@ -5000,7 +5284,7 @@ concatenation of the given strings, @var{args}.
 @end deffn
 
 \fstring-null?
-@c snarfed from srfi-13.c:71
+@c snarfed from srfi-13.c:62
 @deffn {Scheme Procedure} string-null? str
 @deffnx {C Function} scm_string_null_p (str)
 Return @code{#t} if @var{str}'s length is zero, and
@@ -5013,7 +5297,7 @@ y                    @result{} "foo"
 @end deffn
 
 \fstring-any
-@c snarfed from srfi-13.c:91
+@c snarfed from srfi-13.c:90
 @deffn {Scheme Procedure} string-any char_pred s [start [end]]
 @deffnx {C Function} scm_string_any (char_pred, s, start, end)
 Check if the predicate @var{pred} is true for any character in
@@ -5030,7 +5314,7 @@ case.
 @end deffn
 
 \fstring-every
-@c snarfed from srfi-13.c:150
+@c snarfed from srfi-13.c:153
 @deffn {Scheme Procedure} string-every char_pred s [start [end]]
 @deffnx {C Function} scm_string_every (char_pred, s, start, end)
 Check if the predicate @var{pred} is true for every character
@@ -5051,7 +5335,7 @@ case.
 @end deffn
 
 \fstring-tabulate
-@c snarfed from srfi-13.c:202
+@c snarfed from srfi-13.c:209
 @deffn {Scheme Procedure} string-tabulate proc len
 @deffnx {C Function} scm_string_tabulate (proc, len)
 @var{proc} is an integer->char procedure.  Construct a string
@@ -5061,14 +5345,14 @@ produce the corresponding string element.  The order in which
 @end deffn
 
 \fstring->list
-@c snarfed from srfi-13.c:234
+@c snarfed from srfi-13.c:241
 @deffn {Scheme Procedure} string->list str [start [end]]
 @deffnx {C Function} scm_substring_to_list (str, start, end)
 Convert the string @var{str} into a list of characters.
 @end deffn
 
 \freverse-list->string
-@c snarfed from srfi-13.c:271
+@c snarfed from srfi-13.c:280
 @deffn {Scheme Procedure} reverse-list->string chrs
 @deffnx {C Function} scm_reverse_list_to_string (chrs)
 An efficient implementation of @code{(compose string->list
@@ -5080,7 +5364,7 @@ reverse)}:
 @end deffn
 
 \fstring-join
-@c snarfed from srfi-13.c:324
+@c snarfed from srfi-13.c:347
 @deffn {Scheme Procedure} string-join ls [delimiter [grammar]]
 @deffnx {C Function} scm_string_join (ls, delimiter, grammar)
 Append the string in the string list @var{ls}, using the string
@@ -5104,7 +5388,7 @@ Insert the separator before each list element.
 @end deffn
 
 \fstring-copy
-@c snarfed from srfi-13.c:480
+@c snarfed from srfi-13.c:481
 @deffn {Scheme Procedure} string-copy str [start [end]]
 @deffnx {C Function} scm_srfi13_substring_copy (str, start, end)
 Return a freshly allocated copy of the string @var{str}.  If
@@ -5113,7 +5397,7 @@ given, @var{start} and @var{end} delimit the portion of
 @end deffn
 
 \fstring-copy!
-@c snarfed from srfi-13.c:507
+@c snarfed from srfi-13.c:508
 @deffn {Scheme Procedure} string-copy! target tstart s [start [end]]
 @deffnx {C Function} scm_string_copy_x (target, tstart, s, start, end)
 Copy the sequence of characters from index range [@var{start},
@@ -5126,7 +5410,7 @@ string.
 @end deffn
 
 \fsubstring-move!
-@c snarfed from srfi-13.c:536
+@c snarfed from srfi-13.c:538
 @deffn {Scheme Procedure} substring-move! str1 start1 end1 str2 start2
 @deffnx {C Function} scm_substring_move_x (str1, start1, end1, str2, start2)
 Copy the substring of @var{str1} bounded by @var{start1} and @var{end1}
@@ -5135,35 +5419,35 @@ into @var{str2} beginning at position @var{start2}.
 @end deffn
 
 \fstring-take
-@c snarfed from srfi-13.c:545
+@c snarfed from srfi-13.c:547
 @deffn {Scheme Procedure} string-take s n
 @deffnx {C Function} scm_string_take (s, n)
 Return the @var{n} first characters of @var{s}.
 @end deffn
 
 \fstring-drop
-@c snarfed from srfi-13.c:555
+@c snarfed from srfi-13.c:557
 @deffn {Scheme Procedure} string-drop s n
 @deffnx {C Function} scm_string_drop (s, n)
 Return all but the first @var{n} characters of @var{s}.
 @end deffn
 
 \fstring-take-right
-@c snarfed from srfi-13.c:565
+@c snarfed from srfi-13.c:567
 @deffn {Scheme Procedure} string-take-right s n
 @deffnx {C Function} scm_string_take_right (s, n)
 Return the @var{n} last characters of @var{s}.
 @end deffn
 
 \fstring-drop-right
-@c snarfed from srfi-13.c:577
+@c snarfed from srfi-13.c:579
 @deffn {Scheme Procedure} string-drop-right s n
 @deffnx {C Function} scm_string_drop_right (s, n)
 Return all but the last @var{n} characters of @var{s}.
 @end deffn
 
 \fstring-pad
-@c snarfed from srfi-13.c:592
+@c snarfed from srfi-13.c:594
 @deffn {Scheme Procedure} string-pad s len [chr [start [end]]]
 @deffnx {C Function} scm_string_pad (s, len, chr, start, end)
 Take that characters from @var{start} to @var{end} from the
@@ -5173,7 +5457,7 @@ string is longer than @var{len}, it is truncated on the right.
 @end deffn
 
 \fstring-pad-right
-@c snarfed from srfi-13.c:632
+@c snarfed from srfi-13.c:634
 @deffn {Scheme Procedure} string-pad-right s len [chr [start [end]]]
 @deffnx {C Function} scm_string_pad_right (s, len, chr, start, end)
 Take that characters from @var{start} to @var{end} from the
@@ -5183,7 +5467,7 @@ string is longer than @var{len}, it is truncated on the left.
 @end deffn
 
 \fstring-trim
-@c snarfed from srfi-13.c:686
+@c snarfed from srfi-13.c:687
 @deffn {Scheme Procedure} string-trim s [char_pred [start [end]]]
 @deffnx {C Function} scm_string_trim (s, char_pred, start, end)
 Trim @var{s} by skipping over all characters on the left
@@ -5207,7 +5491,7 @@ trimmed.
 @end deffn
 
 \fstring-trim-right
-@c snarfed from srfi-13.c:762
+@c snarfed from srfi-13.c:763
 @deffn {Scheme Procedure} string-trim-right s [char_pred [start [end]]]
 @deffnx {C Function} scm_string_trim_right (s, char_pred, start, end)
 Trim @var{s} by skipping over all characters on the rightt
@@ -5232,7 +5516,7 @@ trimmed.
 @end deffn
 
 \fstring-trim-both
-@c snarfed from srfi-13.c:838
+@c snarfed from srfi-13.c:839
 @deffn {Scheme Procedure} string-trim-both s [char_pred [start [end]]]
 @deffnx {C Function} scm_string_trim_both (s, char_pred, start, end)
 Trim @var{s} by skipping over all characters on both sides of
@@ -5257,7 +5541,7 @@ trimmed.
 @end deffn
 
 \fstring-fill!
-@c snarfed from srfi-13.c:925
+@c snarfed from srfi-13.c:926
 @deffn {Scheme Procedure} string-fill! str chr [start [end]]
 @deffnx {C Function} scm_substring_fill_x (str, chr, start, end)
 Stores @var{chr} in every element of the given @var{str} and
@@ -5265,7 +5549,7 @@ returns an unspecified value.
 @end deffn
 
 \fstring-compare
-@c snarfed from srfi-13.c:975
+@c snarfed from srfi-13.c:978
 @deffn {Scheme Procedure} string-compare s1 s2 proc_lt proc_eq proc_gt [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_compare (s1, s2, proc_lt, proc_eq, proc_gt, start1, end1, start2, end2)
 Apply @var{proc_lt}, @var{proc_eq}, @var{proc_gt} to the
@@ -5277,7 +5561,7 @@ largest index @var{i} such that for every 0 <= @var{j} <
 @end deffn
 
 \fstring-compare-ci
-@c snarfed from srfi-13.c:1018
+@c snarfed from srfi-13.c:1032
 @deffn {Scheme Procedure} string-compare-ci s1 s2 proc_lt proc_eq proc_gt [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_compare_ci (s1, s2, proc_lt, proc_eq, proc_gt, start1, end1, start2, end2)
 Apply @var{proc_lt}, @var{proc_eq}, @var{proc_gt} to the
@@ -5290,7 +5574,7 @@ character comparison is done case-insensitively.
 @end deffn
 
 \fstring=
-@c snarfed from srfi-13.c:1056
+@c snarfed from srfi-13.c:1083
 @deffn {Scheme Procedure} string= s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_eq (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} and @var{s2} are not equal, a true
@@ -5298,7 +5582,7 @@ value otherwise.
 @end deffn
 
 \fstring<>
-@c snarfed from srfi-13.c:1095
+@c snarfed from srfi-13.c:1122
 @deffn {Scheme Procedure} string<> s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_neq (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} and @var{s2} are equal, a true
@@ -5306,7 +5590,7 @@ value otherwise.
 @end deffn
 
 \fstring<
-@c snarfed from srfi-13.c:1138
+@c snarfed from srfi-13.c:1165
 @deffn {Scheme Procedure} string< s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_lt (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} is greater or equal to @var{s2}, a
@@ -5314,7 +5598,7 @@ true value otherwise.
 @end deffn
 
 \fstring>
-@c snarfed from srfi-13.c:1181
+@c snarfed from srfi-13.c:1208
 @deffn {Scheme Procedure} string> s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_gt (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} is less or equal to @var{s2}, a
@@ -5322,7 +5606,7 @@ true value otherwise.
 @end deffn
 
 \fstring<=
-@c snarfed from srfi-13.c:1224
+@c snarfed from srfi-13.c:1251
 @deffn {Scheme Procedure} string<= s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_le (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} is greater to @var{s2}, a true
@@ -5330,7 +5614,7 @@ value otherwise.
 @end deffn
 
 \fstring>=
-@c snarfed from srfi-13.c:1267
+@c snarfed from srfi-13.c:1294
 @deffn {Scheme Procedure} string>= s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_ge (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} is less to @var{s2}, a true value
@@ -5338,7 +5622,7 @@ otherwise.
 @end deffn
 
 \fstring-ci=
-@c snarfed from srfi-13.c:1311
+@c snarfed from srfi-13.c:1338
 @deffn {Scheme Procedure} string-ci= s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_ci_eq (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} and @var{s2} are not equal, a true
@@ -5347,7 +5631,7 @@ case-insensitively.
 @end deffn
 
 \fstring-ci<>
-@c snarfed from srfi-13.c:1355
+@c snarfed from srfi-13.c:1382
 @deffn {Scheme Procedure} string-ci<> s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_ci_neq (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} and @var{s2} are equal, a true
@@ -5356,7 +5640,7 @@ case-insensitively.
 @end deffn
 
 \fstring-ci<
-@c snarfed from srfi-13.c:1399
+@c snarfed from srfi-13.c:1426
 @deffn {Scheme Procedure} string-ci< s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_ci_lt (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} is greater or equal to @var{s2}, a
@@ -5365,7 +5649,7 @@ case-insensitively.
 @end deffn
 
 \fstring-ci>
-@c snarfed from srfi-13.c:1443
+@c snarfed from srfi-13.c:1470
 @deffn {Scheme Procedure} string-ci> s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_ci_gt (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} is less or equal to @var{s2}, a
@@ -5374,7 +5658,7 @@ case-insensitively.
 @end deffn
 
 \fstring-ci<=
-@c snarfed from srfi-13.c:1487
+@c snarfed from srfi-13.c:1514
 @deffn {Scheme Procedure} string-ci<= s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_ci_le (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} is greater to @var{s2}, a true
@@ -5383,7 +5667,7 @@ case-insensitively.
 @end deffn
 
 \fstring-ci>=
-@c snarfed from srfi-13.c:1531
+@c snarfed from srfi-13.c:1558
 @deffn {Scheme Procedure} string-ci>= s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_ci_ge (s1, s2, start1, end1, start2, end2)
 Return @code{#f} if @var{s1} is less to @var{s2}, a true value
@@ -5392,21 +5676,21 @@ case-insensitively.
 @end deffn
 
 \fstring-hash
-@c snarfed from srfi-13.c:1576
+@c snarfed from srfi-13.c:1603
 @deffn {Scheme Procedure} string-hash s [bound [start [end]]]
 @deffnx {C Function} scm_substring_hash (s, bound, start, end)
 Compute a hash value for @var{S}.  the optional argument @var{bound} is a non-negative exact integer specifying the range of the hash function. A positive value restricts the return value to the range [0,bound).
 @end deffn
 
 \fstring-hash-ci
-@c snarfed from srfi-13.c:1593
+@c snarfed from srfi-13.c:1620
 @deffn {Scheme Procedure} string-hash-ci s [bound [start [end]]]
 @deffnx {C Function} scm_substring_hash_ci (s, bound, start, end)
 Compute a hash value for @var{S}.  the optional argument @var{bound} is a non-negative exact integer specifying the range of the hash function. A positive value restricts the return value to the range [0,bound).
 @end deffn
 
 \fstring-prefix-length
-@c snarfed from srfi-13.c:1605
+@c snarfed from srfi-13.c:1632
 @deffn {Scheme Procedure} string-prefix-length s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_prefix_length (s1, s2, start1, end1, start2, end2)
 Return the length of the longest common prefix of the two
@@ -5414,7 +5698,7 @@ strings.
 @end deffn
 
 \fstring-prefix-length-ci
-@c snarfed from srfi-13.c:1634
+@c snarfed from srfi-13.c:1664
 @deffn {Scheme Procedure} string-prefix-length-ci s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_prefix_length_ci (s1, s2, start1, end1, start2, end2)
 Return the length of the longest common prefix of the two
@@ -5422,7 +5706,7 @@ strings, ignoring character case.
 @end deffn
 
 \fstring-suffix-length
-@c snarfed from srfi-13.c:1663
+@c snarfed from srfi-13.c:1696
 @deffn {Scheme Procedure} string-suffix-length s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_suffix_length (s1, s2, start1, end1, start2, end2)
 Return the length of the longest common suffix of the two
@@ -5430,7 +5714,7 @@ strings.
 @end deffn
 
 \fstring-suffix-length-ci
-@c snarfed from srfi-13.c:1692
+@c snarfed from srfi-13.c:1728
 @deffn {Scheme Procedure} string-suffix-length-ci s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_suffix_length_ci (s1, s2, start1, end1, start2, end2)
 Return the length of the longest common suffix of the two
@@ -5438,35 +5722,35 @@ strings, ignoring character case.
 @end deffn
 
 \fstring-prefix?
-@c snarfed from srfi-13.c:1720
+@c snarfed from srfi-13.c:1759
 @deffn {Scheme Procedure} string-prefix? s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_prefix_p (s1, s2, start1, end1, start2, end2)
 Is @var{s1} a prefix of @var{s2}?
 @end deffn
 
 \fstring-prefix-ci?
-@c snarfed from srfi-13.c:1749
+@c snarfed from srfi-13.c:1791
 @deffn {Scheme Procedure} string-prefix-ci? s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_prefix_ci_p (s1, s2, start1, end1, start2, end2)
 Is @var{s1} a prefix of @var{s2}, ignoring character case?
 @end deffn
 
 \fstring-suffix?
-@c snarfed from srfi-13.c:1778
+@c snarfed from srfi-13.c:1823
 @deffn {Scheme Procedure} string-suffix? s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_suffix_p (s1, s2, start1, end1, start2, end2)
 Is @var{s1} a suffix of @var{s2}?
 @end deffn
 
 \fstring-suffix-ci?
-@c snarfed from srfi-13.c:1807
+@c snarfed from srfi-13.c:1855
 @deffn {Scheme Procedure} string-suffix-ci? s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_suffix_ci_p (s1, s2, start1, end1, start2, end2)
 Is @var{s1} a suffix of @var{s2}, ignoring character case?
 @end deffn
 
 \fstring-index
-@c snarfed from srfi-13.c:1848
+@c snarfed from srfi-13.c:1899
 @deffn {Scheme Procedure} string-index s char_pred [start [end]]
 @deffnx {C Function} scm_string_index (s, char_pred, start, end)
 Search through the string @var{s} from left to right, returning
@@ -5485,7 +5769,7 @@ is in the set @var{char_pred}, if it is a character set.
 @end deffn
 
 \fstring-index-right
-@c snarfed from srfi-13.c:1907
+@c snarfed from srfi-13.c:1964
 @deffn {Scheme Procedure} string-index-right s char_pred [start [end]]
 @deffnx {C Function} scm_string_index_right (s, char_pred, start, end)
 Search through the string @var{s} from right to left, returning
@@ -5504,7 +5788,7 @@ is in the set if @var{char_pred} is a character set.
 @end deffn
 
 \fstring-rindex
-@c snarfed from srfi-13.c:1966
+@c snarfed from srfi-13.c:2029
 @deffn {Scheme Procedure} string-rindex s char_pred [start [end]]
 @deffnx {C Function} scm_string_rindex (s, char_pred, start, end)
 Search through the string @var{s} from right to left, returning
@@ -5523,7 +5807,7 @@ is in the set if @var{char_pred} is a character set.
 @end deffn
 
 \fstring-skip
-@c snarfed from srfi-13.c:1986
+@c snarfed from srfi-13.c:2051
 @deffn {Scheme Procedure} string-skip s char_pred [start [end]]
 @deffnx {C Function} scm_string_skip (s, char_pred, start, end)
 Search through the string @var{s} from left to right, returning
@@ -5543,7 +5827,7 @@ is not in the set if @var{char_pred} is a character set.
 @end deffn
 
 \fstring-skip-right
-@c snarfed from srfi-13.c:2047
+@c snarfed from srfi-13.c:2118
 @deffn {Scheme Procedure} string-skip-right s char_pred [start [end]]
 @deffnx {C Function} scm_string_skip_right (s, char_pred, start, end)
 Search through the string @var{s} from right to left, returning
@@ -5563,7 +5847,7 @@ is not in the set if @var{char_pred} is a character set.
 @end deffn
 
 \fstring-count
-@c snarfed from srfi-13.c:2107
+@c snarfed from srfi-13.c:2185
 @deffn {Scheme Procedure} string-count s char_pred [start [end]]
 @deffnx {C Function} scm_string_count (s, char_pred, start, end)
 Return the count of the number of characters in the string
@@ -5582,7 +5866,7 @@ is in the set @var{char_pred}, if it is a character set.
 @end deffn
 
 \fstring-contains
-@c snarfed from srfi-13.c:2162
+@c snarfed from srfi-13.c:2242
 @deffn {Scheme Procedure} string-contains s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_contains (s1, s2, start1, end1, start2, end2)
 Does string @var{s1} contain string @var{s2}?  Return the index
@@ -5592,7 +5876,7 @@ indicated substrings.
 @end deffn
 
 \fstring-contains-ci
-@c snarfed from srfi-13.c:2203
+@c snarfed from srfi-13.c:2289
 @deffn {Scheme Procedure} string-contains-ci s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_contains_ci (s1, s2, start1, end1, start2, end2)
 Does string @var{s1} contain string @var{s2}?  Return the index
@@ -5603,7 +5887,7 @@ case-insensitively.
 @end deffn
 
 \fstring-upcase!
-@c snarfed from srfi-13.c:2261
+@c snarfed from srfi-13.c:2354
 @deffn {Scheme Procedure} string-upcase! str [start [end]]
 @deffnx {C Function} scm_substring_upcase_x (str, start, end)
 Destructively upcase every character in @code{str}.
 @end deffn
 
 \fstring-upcase
-@c snarfed from srfi-13.c:2282
+@c snarfed from srfi-13.c:2375
 @deffn {Scheme Procedure} string-upcase str [start [end]]
 @deffnx {C Function} scm_substring_upcase (str, start, end)
 Upcase every character in @code{str}.
 @end deffn
 
 \fstring-downcase!
-@c snarfed from srfi-13.c:2328
+@c snarfed from srfi-13.c:2422
 @deffn {Scheme Procedure} string-downcase! str [start [end]]
 @deffnx {C Function} scm_substring_downcase_x (str, start, end)
 Destructively downcase every character in @var{str}.
 @end deffn
 
 \fstring-downcase
-@c snarfed from srfi-13.c:2349
+@c snarfed from srfi-13.c:2443
 @deffn {Scheme Procedure} string-downcase str [start [end]]
 @deffnx {C Function} scm_substring_downcase (str, start, end)
 Downcase every character in @var{str}.
 @end deffn
 
 \fstring-titlecase!
-@c snarfed from srfi-13.c:2404
+@c snarfed from srfi-13.c:2499
 @deffn {Scheme Procedure} string-titlecase! str [start [end]]
 @deffnx {C Function} scm_string_titlecase_x (str, start, end)
 Destructively titlecase every first character in a word in
@@ -5655,14 +5939,14 @@ Destructively titlecase every first character in a word in
 @end deffn
 
 \fstring-titlecase
-@c snarfed from srfi-13.c:2420
+@c snarfed from srfi-13.c:2515
 @deffn {Scheme Procedure} string-titlecase str [start [end]]
 @deffnx {C Function} scm_string_titlecase (str, start, end)
 Titlecase every first character in a word in @var{str}.
 @end deffn
 
 \fstring-capitalize!
-@c snarfed from srfi-13.c:2445
+@c snarfed from srfi-13.c:2537
 @deffn {Scheme Procedure} string-capitalize! str
 @deffnx {C Function} scm_string_capitalize_x (str)
 Upcase the first character of every word in @var{str}
@@ -5676,7 +5960,7 @@ y                      @result{} "Hello World"
 @end deffn
 
 \fstring-capitalize
-@c snarfed from srfi-13.c:2457
+@c snarfed from srfi-13.c:2549
 @deffn {Scheme Procedure} string-capitalize str
 @deffnx {C Function} scm_string_capitalize (str)
 Return a freshly allocated string with the characters in
@@ -5685,7 +5969,7 @@ capitalized.
 @end deffn
 
 \fstring-reverse
-@c snarfed from srfi-13.c:2488
+@c snarfed from srfi-13.c:2583
 @deffn {Scheme Procedure} string-reverse str [start [end]]
 @deffnx {C Function} scm_string_reverse (str, start, end)
 Reverse the string @var{str}.  The optional arguments
@@ -5694,7 +5978,7 @@ operate on.
 @end deffn
 
 \fstring-reverse!
-@c snarfed from srfi-13.c:2512
+@c snarfed from srfi-13.c:2608
 @deffn {Scheme Procedure} string-reverse! str [start [end]]
 @deffnx {C Function} scm_string_reverse_x (str, start, end)
 Reverse the string @var{str} in-place.  The optional arguments
@@ -5703,7 +5987,7 @@ operate on.  The return value is unspecified.
 @end deffn
 
 \fstring-append/shared
-@c snarfed from srfi-13.c:2535
+@c snarfed from srfi-13.c:2630
 @deffn {Scheme Procedure} string-append/shared . ls
 @deffnx {C Function} scm_string_append_shared (ls)
 Like @code{string-append}, but the result may share memory
@@ -5711,7 +5995,7 @@ with the argument strings.
 @end deffn
 
 \fstring-concatenate
-@c snarfed from srfi-13.c:2556
+@c snarfed from srfi-13.c:2651
 @deffn {Scheme Procedure} string-concatenate ls
 @deffnx {C Function} scm_string_concatenate (ls)
 Append the elements of @var{ls} (which must be strings)
@@ -5720,7 +6004,7 @@ allocated string.
 @end deffn
 
 \fstring-concatenate-reverse
-@c snarfed from srfi-13.c:2578
+@c snarfed from srfi-13.c:2673
 @deffn {Scheme Procedure} string-concatenate-reverse ls [final_string [end]]
 @deffnx {C Function} scm_string_concatenate_reverse (ls, final_string, end)
 Without optional arguments, this procedure is equivalent to
@@ -5739,7 +6023,7 @@ Guaranteed to return a freshly allocated string.
 @end deffn
 
 \fstring-concatenate/shared
-@c snarfed from srfi-13.c:2647
+@c snarfed from srfi-13.c:2690
 @deffn {Scheme Procedure} string-concatenate/shared ls
 @deffnx {C Function} scm_string_concatenate_shared (ls)
 Like @code{string-concatenate}, but the result may share memory
@@ -5747,7 +6031,7 @@ with the strings in the list @var{ls}.
 @end deffn
 
 \fstring-concatenate-reverse/shared
-@c snarfed from srfi-13.c:2658
+@c snarfed from srfi-13.c:2701
 @deffn {Scheme Procedure} string-concatenate-reverse/shared ls [final_string [end]]
 @deffnx {C Function} scm_string_concatenate_reverse_shared (ls, final_string, end)
 Like @code{string-concatenate-reverse}, but the result may
@@ -5755,7 +6039,7 @@ share memory with the the strings in the @var{ls} arguments.
 @end deffn
 
 \fstring-map
-@c snarfed from srfi-13.c:2671
+@c snarfed from srfi-13.c:2714
 @deffn {Scheme Procedure} string-map proc s [start [end]]
 @deffnx {C Function} scm_string_map (proc, s, start, end)
 @var{proc} is a char->char procedure, it is mapped over
@@ -5764,7 +6048,7 @@ string elements is not specified.
 @end deffn
 
 \fstring-map!
-@c snarfed from srfi-13.c:2704
+@c snarfed from srfi-13.c:2744
 @deffn {Scheme Procedure} string-map! proc s [start [end]]
 @deffnx {C Function} scm_string_map_x (proc, s, start, end)
 @var{proc} is a char->char procedure, it is mapped over
@@ -5774,7 +6058,7 @@ modified in-place, the return value is not specified.
 @end deffn
 
 \fstring-fold
-@c snarfed from srfi-13.c:2731
+@c snarfed from srfi-13.c:2771
 @deffn {Scheme Procedure} string-fold kons knil s [start [end]]
 @deffnx {C Function} scm_string_fold (kons, knil, s, start, end)
 Fold @var{kons} over the characters of @var{s}, with @var{knil}
@@ -5784,7 +6068,7 @@ result of @var{kons}' application.
 @end deffn
 
 \fstring-fold-right
-@c snarfed from srfi-13.c:2760
+@c snarfed from srfi-13.c:2802
 @deffn {Scheme Procedure} string-fold-right kons knil s [start [end]]
 @deffnx {C Function} scm_string_fold_right (kons, knil, s, start, end)
 Fold @var{kons} over the characters of @var{s}, with @var{knil}
@@ -5794,7 +6078,7 @@ result of @var{kons}' application.
 @end deffn
 
 \fstring-unfold
-@c snarfed from srfi-13.c:2803
+@c snarfed from srfi-13.c:2847
 @deffn {Scheme Procedure} string-unfold p f g seed [base [make_final]]
 @deffnx {C Function} scm_string_unfold (p, f, g, seed, base, make_final)
 @itemize @bullet
@@ -5818,7 +6102,7 @@ It defaults to @code{(lambda (x) )}.
 @end deffn
 
 \fstring-unfold-right
-@c snarfed from srfi-13.c:2866
+@c snarfed from srfi-13.c:2910
 @deffn {Scheme Procedure} string-unfold-right p f g seed [base [make_final]]
 @deffnx {C Function} scm_string_unfold_right (p, f, g, seed, base, make_final)
 @itemize @bullet
@@ -5842,7 +6126,7 @@ It defaults to @code{(lambda (x) )}.
 @end deffn
 
 \fstring-for-each
-@c snarfed from srfi-13.c:2913
+@c snarfed from srfi-13.c:2957
 @deffn {Scheme Procedure} string-for-each proc s [start [end]]
 @deffnx {C Function} scm_string_for_each (proc, s, start, end)
 @var{proc} is mapped over @var{s} in left-to-right order.  The
@@ -5850,7 +6134,7 @@ return value is not specified.
 @end deffn
 
 \fstring-for-each-index
-@c snarfed from srfi-13.c:2937
+@c snarfed from srfi-13.c:2983
 @deffn {Scheme Procedure} string-for-each-index proc s [start [end]]
 @deffnx {C Function} scm_string_for_each_index (proc, s, start, end)
 @var{proc} is mapped over @var{s} in left-to-right order.  The
@@ -5858,7 +6142,7 @@ return value is not specified.
 @end deffn
 
 \fxsubstring
-@c snarfed from srfi-13.c:2967
+@c snarfed from srfi-13.c:3015
 @deffn {Scheme Procedure} xsubstring s from [to [start [end]]]
 @deffnx {C Function} scm_xsubstring (s, from, to, start, end)
 This is the @emph{extended substring} procedure that implements
@@ -5874,7 +6158,7 @@ defaults to @var{from} + (@var{end} - @var{start}).
 @end deffn
 
 \fstring-xcopy!
-@c snarfed from srfi-13.c:3010
+@c snarfed from srfi-13.c:3062
 @deffn {Scheme Procedure} string-xcopy! target tstart s sfrom [sto [start [end]]]
 @deffnx {C Function} scm_string_xcopy_x (target, tstart, s, sfrom, sto, start, end)
 Exactly the same as @code{xsubstring}, but the extracted text
@@ -5885,7 +6169,7 @@ cannot copy a string on top of itself.
 @end deffn
 
 \fstring-replace
-@c snarfed from srfi-13.c:3058
+@c snarfed from srfi-13.c:3112
 @deffn {Scheme Procedure} string-replace s1 s2 [start1 [end1 [start2 [end2]]]]
 @deffnx {C Function} scm_string_replace (s1, s2, start1, end1, start2, end2)
 Return the string @var{s1}, but with the characters
@@ -5894,7 +6178,7 @@ Return the string @var{s1}, but with the characters
 @end deffn
 
 \fstring-tokenize
-@c snarfed from srfi-13.c:3093
+@c snarfed from srfi-13.c:3149
 @deffn {Scheme Procedure} string-tokenize s [token_set [start [end]]]
 @deffnx {C Function} scm_string_tokenize (s, token_set, start, end)
 Split the string @var{s} into a list of substrings, where each
@@ -5907,7 +6191,7 @@ of @var{s}.
 @end deffn
 
 \fstring-split
-@c snarfed from srfi-13.c:3157
+@c snarfed from srfi-13.c:3215
 @deffn {Scheme Procedure} string-split str chr
 @deffnx {C Function} scm_string_split (str, chr)
 Split the string @var{str} into the a list of the substrings delimited
@@ -5931,7 +6215,7 @@ result list.
 @end deffn
 
 \fstring-filter
-@c snarfed from srfi-13.c:3195
+@c snarfed from srfi-13.c:3253
 @deffn {Scheme Procedure} string-filter s char_pred [start [end]]
 @deffnx {C Function} scm_string_filter (s, char_pred, start, end)
 Filter the string @var{s}, retaining only those characters that
@@ -5942,7 +6226,7 @@ character set, it is tested for membership.
 @end deffn
 
 \fstring-delete
-@c snarfed from srfi-13.c:3265
+@c snarfed from srfi-13.c:3325
 @deffn {Scheme Procedure} string-delete s char_pred [start [end]]
 @deffnx {C Function} scm_string_delete (s, char_pred, start, end)
 Filter the string @var{s}, retaining only those characters that
@@ -6688,7 +6972,7 @@ Set the name of the vtable @var{vtable} to @var{name}.
 @end deffn
 
 \fsymbol?
-@c snarfed from symbols.c:158
+@c snarfed from symbols.c:156
 @deffn {Scheme Procedure} symbol? obj
 @deffnx {C Function} scm_symbol_p (obj)
 Return @code{#t} if @var{obj} is a symbol, otherwise return
@@ -6696,7 +6980,7 @@ Return @code{#t} if @var{obj} is a symbol, otherwise return
 @end deffn
 
 \fsymbol-interned?
-@c snarfed from symbols.c:168
+@c snarfed from symbols.c:166
 @deffn {Scheme Procedure} symbol-interned? symbol
 @deffnx {C Function} scm_symbol_interned_p (symbol)
 Return @code{#t} if @var{symbol} is interned, otherwise return
@@ -6704,14 +6988,14 @@ Return @code{#t} if @var{symbol} is interned, otherwise return
 @end deffn
 
 \fmake-symbol
-@c snarfed from symbols.c:180
+@c snarfed from symbols.c:178
 @deffn {Scheme Procedure} make-symbol name
 @deffnx {C Function} scm_make_symbol (name)
 Return a new uninterned symbol with the name @var{name}.  The returned symbol is guaranteed to be unique and future calls to @code{string->symbol} will not return it.
 @end deffn
 
 \fsymbol->string
-@c snarfed from symbols.c:212
+@c snarfed from symbols.c:210
 @deffn {Scheme Procedure} symbol->string s
 @deffnx {C Function} scm_symbol_to_string (s)
 Return the name of @var{symbol} as a string.  If the symbol was
@@ -6740,7 +7024,7 @@ standard case is lower case:
 @end deffn
 
 \fstring->symbol
-@c snarfed from symbols.c:242
+@c snarfed from symbols.c:240
 @deffn {Scheme Procedure} string->symbol string
 @deffnx {C Function} scm_string_to_symbol (string)
 Return the symbol whose name is @var{string}. This procedure
@@ -6766,7 +7050,7 @@ standard case is lower case:
 @end deffn
 
 \fstring-ci->symbol
-@c snarfed from symbols.c:254
+@c snarfed from symbols.c:252
 @deffn {Scheme Procedure} string-ci->symbol str
 @deffnx {C Function} scm_string_ci_to_symbol (str)
 Return the symbol whose name is @var{str}.  @var{str} is
@@ -6775,7 +7059,7 @@ is currently reading symbols case-insensitively.
 @end deffn
 
 \fgensym
-@c snarfed from symbols.c:271
+@c snarfed from symbols.c:269
 @deffn {Scheme Procedure} gensym [prefix]
 @deffnx {C Function} scm_gensym (prefix)
 Create a new symbol with a name constructed from a prefix and
@@ -6786,35 +7070,35 @@ resetting the counter.
 @end deffn
 
 \fsymbol-hash
-@c snarfed from symbols.c:297
+@c snarfed from symbols.c:295
 @deffn {Scheme Procedure} symbol-hash symbol
 @deffnx {C Function} scm_symbol_hash (symbol)
 Return a hash value for @var{symbol}.
 @end deffn
 
 \fsymbol-fref
-@c snarfed from symbols.c:307
+@c snarfed from symbols.c:305
 @deffn {Scheme Procedure} symbol-fref s
 @deffnx {C Function} scm_symbol_fref (s)
 Return the contents of @var{symbol}'s @dfn{function slot}.
 @end deffn
 
 \fsymbol-pref
-@c snarfed from symbols.c:318
+@c snarfed from symbols.c:316
 @deffn {Scheme Procedure} symbol-pref s
 @deffnx {C Function} scm_symbol_pref (s)
 Return the @dfn{property list} currently associated with @var{symbol}.
 @end deffn
 
 \fsymbol-fset!
-@c snarfed from symbols.c:329
+@c snarfed from symbols.c:327
 @deffn {Scheme Procedure} symbol-fset! s val
 @deffnx {C Function} scm_symbol_fset_x (s, val)
 Change the binding of @var{symbol}'s function slot.
 @end deffn
 
 \fsymbol-pset!
-@c snarfed from symbols.c:341
+@c snarfed from symbols.c:339
 @deffn {Scheme Procedure} symbol-pset! s val
 @deffnx {C Function} scm_symbol_pset_x (s, val)
 Change the binding of @var{symbol}'s property slot.
@@ -6912,21 +7196,21 @@ Wake up all threads that are waiting for @var{cv}.
 @end deffn
 
 \fcurrent-thread
-@c snarfed from threads.c:1103
+@c snarfed from threads.c:1105
 @deffn {Scheme Procedure} current-thread
 @deffnx {C Function} scm_current_thread ()
 Return the thread that called this function.
 @end deffn
 
 \fall-threads
-@c snarfed from threads.c:1112
+@c snarfed from threads.c:1114
 @deffn {Scheme Procedure} all-threads
 @deffnx {C Function} scm_all_threads ()
 Return a list of all threads.
 @end deffn
 
 \fthread-exited?
-@c snarfed from threads.c:1127
+@c snarfed from threads.c:1129
 @deffn {Scheme Procedure} thread-exited? thread
 @deffnx {C Function} scm_thread_exited_p (thread)
 Return @code{#t} iff @var{thread} has exited.
@@ -6934,7 +7218,7 @@ Return @code{#t} iff @var{thread} has exited.
 @end deffn
 
 \fcatch
-@c snarfed from throw.c:500
+@c snarfed from throw.c:510
 @deffn {Scheme Procedure} catch key thunk handler
 @deffnx {C Function} scm_catch (key, thunk, handler)
 Invoke @var{thunk} in the dynamic context of @var{handler} for
@@ -6958,7 +7242,7 @@ match this call to @code{catch}.
 @end deffn
 
 \flazy-catch
-@c snarfed from throw.c:528
+@c snarfed from throw.c:538
 @deffn {Scheme Procedure} lazy-catch key thunk handler
 @deffnx {C Function} scm_lazy_catch (key, thunk, handler)
 This behaves exactly like @code{catch}, except that it does
@@ -6968,7 +7252,7 @@ it must throw to another catch, or otherwise exit non-locally.
 @end deffn
 
 \fthrow
-@c snarfed from throw.c:561
+@c snarfed from throw.c:571
 @deffn {Scheme Procedure} throw key . args
 @deffnx {C Function} scm_throw (key, args)
 Invoke the catch form matching @var{key}, passing @var{args} to the
@@ -7838,7 +8122,7 @@ as @var{array}, if used as the @var{prototype} for
 @end deffn
 
 \fchown
-@c snarfed from filesys.c:220
+@c snarfed from filesys.c:224
 @deffn {Scheme Procedure} chown object owner group
 @deffnx {C Function} scm_chown (object, owner, group)
 Change the ownership and group of the file referred to by @var{object} to
@@ -7856,7 +8140,7 @@ as @code{-1}, then that ID is not changed.
 @end deffn
 
 \fchmod
-@c snarfed from filesys.c:258
+@c snarfed from filesys.c:262
 @deffn {Scheme Procedure} chmod object mode
 @deffnx {C Function} scm_chmod (object, mode)
 Changes the permissions of the file referred to by @var{obj}.
@@ -7869,7 +8153,7 @@ The return value is unspecified.
 @end deffn
 
 \fumask
-@c snarfed from filesys.c:290
+@c snarfed from filesys.c:294
 @deffn {Scheme Procedure} umask [mode]
 @deffnx {C Function} scm_umask (mode)
 If @var{mode} is omitted, returns a decimal number representing the current
@@ -7880,7 +8164,7 @@ E.g., @code{(umask #o022)} sets the mask to octal 22, decimal 18.
 @end deffn
 
 \fopen-fdes
-@c snarfed from filesys.c:312
+@c snarfed from filesys.c:316
 @deffn {Scheme Procedure} open-fdes path flags [mode]
 @deffnx {C Function} scm_open_fdes (path, flags, mode)
 Similar to @code{open} but return a file descriptor instead of
@@ -7888,7 +8172,7 @@ a port.
 @end deffn
 
 \fopen
-@c snarfed from filesys.c:353
+@c snarfed from filesys.c:357
 @deffn {Scheme Procedure} open path flags [mode]
 @deffnx {C Function} scm_open (path, flags, mode)
 Open the file named by @var{path} for reading and/or writing.
@@ -7921,7 +8205,7 @@ for additional flags.
 @end deffn
 
 \fclose
-@c snarfed from filesys.c:391
+@c snarfed from filesys.c:395
 @deffn {Scheme Procedure} close fd_or_port
 @deffnx {C Function} scm_close (fd_or_port)
 Similar to close-port (@pxref{Closing, close-port}),
@@ -7932,7 +8216,7 @@ their revealed counts set to zero.
 @end deffn
 
 \fclose-fdes
-@c snarfed from filesys.c:418
+@c snarfed from filesys.c:422
 @deffn {Scheme Procedure} close-fdes fd
 @deffnx {C Function} scm_close_fdes (fd)
 A simple wrapper for the @code{close} system call.
@@ -7943,7 +8227,7 @@ The return value is unspecified.
 @end deffn
 
 \fstat
-@c snarfed from filesys.c:620
+@c snarfed from filesys.c:624
 @deffn {Scheme Procedure} stat object
 @deffnx {C Function} scm_stat (object)
 Return an object containing various information about the file
@@ -8005,7 +8289,7 @@ An integer representing the access permission bits.
 @end deffn
 
 \flink
-@c snarfed from filesys.c:682
+@c snarfed from filesys.c:686
 @deffn {Scheme Procedure} link oldpath newpath
 @deffnx {C Function} scm_link (oldpath, newpath)
 Creates a new name @var{newpath} in the file system for the
@@ -8015,7 +8299,7 @@ system.
 @end deffn
 
 \frename-file
-@c snarfed from filesys.c:720
+@c snarfed from filesys.c:724
 @deffn {Scheme Procedure} rename-file oldname newname
 @deffnx {C Function} scm_rename (oldname, newname)
 Renames the file specified by @var{oldname} to @var{newname}.
@@ -8023,14 +8307,14 @@ The return value is unspecified.
 @end deffn
 
 \fdelete-file
-@c snarfed from filesys.c:737
+@c snarfed from filesys.c:741
 @deffn {Scheme Procedure} delete-file str
 @deffnx {C Function} scm_delete_file (str)
 Deletes (or "unlinks") the file specified by @var{path}.
 @end deffn
 
 \fmkdir
-@c snarfed from filesys.c:754
+@c snarfed from filesys.c:758
 @deffn {Scheme Procedure} mkdir path [mode]
 @deffnx {C Function} scm_mkdir (path, mode)
 Create a new directory named by @var{path}.  If @var{mode} is omitted
@@ -8040,7 +8324,7 @@ umask.  Otherwise they are set to the decimal value specified with
 @end deffn
 
 \frmdir
-@c snarfed from filesys.c:781
+@c snarfed from filesys.c:785
 @deffn {Scheme Procedure} rmdir path
 @deffnx {C Function} scm_rmdir (path)
 Remove the existing directory named by @var{path}.  The directory must
@@ -8048,7 +8332,7 @@ be empty for this to succeed.  The return value is unspecified.
 @end deffn
 
 \fdirectory-stream?
-@c snarfed from filesys.c:805
+@c snarfed from filesys.c:809
 @deffn {Scheme Procedure} directory-stream? obj
 @deffnx {C Function} scm_directory_stream_p (obj)
 Return a boolean indicating whether @var{object} is a directory
@@ -8056,7 +8340,7 @@ stream as returned by @code{opendir}.
 @end deffn
 
 \fopendir
-@c snarfed from filesys.c:816
+@c snarfed from filesys.c:820
 @deffn {Scheme Procedure} opendir dirname
 @deffnx {C Function} scm_opendir (dirname)
 Open the directory specified by @var{path} and return a directory
@@ -8064,7 +8348,7 @@ stream.
 @end deffn
 
 \freaddir
-@c snarfed from filesys.c:837
+@c snarfed from filesys.c:841
 @deffn {Scheme Procedure} readdir port
 @deffnx {C Function} scm_readdir (port)
 Return (as a string) the next directory entry from the directory stream
@@ -8073,7 +8357,7 @@ end of file object is returned.
 @end deffn
 
 \frewinddir
-@c snarfed from filesys.c:876
+@c snarfed from filesys.c:880
 @deffn {Scheme Procedure} rewinddir port
 @deffnx {C Function} scm_rewinddir (port)
 Reset the directory port @var{stream} so that the next call to
@@ -8081,7 +8365,7 @@ Reset the directory port @var{stream} so that the next call to
 @end deffn
 
 \fclosedir
-@c snarfed from filesys.c:893
+@c snarfed from filesys.c:897
 @deffn {Scheme Procedure} closedir port
 @deffnx {C Function} scm_closedir (port)
 Close the directory stream @var{stream}.
@@ -8089,7 +8373,7 @@ The return value is unspecified.
 @end deffn
 
 \fchdir
-@c snarfed from filesys.c:943
+@c snarfed from filesys.c:947
 @deffn {Scheme Procedure} chdir str
 @deffnx {C Function} scm_chdir (str)
 Change the current working directory to @var{path}.
@@ -8097,14 +8381,14 @@ The return value is unspecified.
 @end deffn
 
 \fgetcwd
-@c snarfed from filesys.c:958
+@c snarfed from filesys.c:962
 @deffn {Scheme Procedure} getcwd
 @deffnx {C Function} scm_getcwd ()
 Return the name of the current working directory.
 @end deffn
 
 \fselect
-@c snarfed from filesys.c:1159
+@c snarfed from filesys.c:1163
 @deffn {Scheme Procedure} select reads writes excepts [secs [usecs]]
 @deffnx {C Function} scm_select (reads, writes, excepts, secs, usecs)
 This procedure has a variety of uses: waiting for the ability
@@ -8139,7 +8423,7 @@ An additional @code{select!} interface is provided.
 @end deffn
 
 \ffcntl
-@c snarfed from filesys.c:1297
+@c snarfed from filesys.c:1301
 @deffn {Scheme Procedure} fcntl object cmd [value]
 @deffnx {C Function} scm_fcntl (object, cmd, value)
 Apply @var{command} to the specified file descriptor or the underlying
@@ -8170,7 +8454,7 @@ The value used to indicate the "close on exec" flag with @code{F_GETFL} or
 @end deffn
 
 \ffsync
-@c snarfed from filesys.c:1329
+@c snarfed from filesys.c:1333
 @deffn {Scheme Procedure} fsync object
 @deffnx {C Function} scm_fsync (object)
 Copies any unwritten data for the specified output file descriptor to disk.
@@ -8180,7 +8464,7 @@ The return value is unspecified.
 @end deffn
 
 \fsymlink
-@c snarfed from filesys.c:1354
+@c snarfed from filesys.c:1358
 @deffn {Scheme Procedure} symlink oldpath newpath
 @deffnx {C Function} scm_symlink (oldpath, newpath)
 Create a symbolic link named @var{path-to} with the value (i.e., pointing to)
@@ -8188,7 +8472,7 @@ Create a symbolic link named @var{path-to} with the value (i.e., pointing to)
 @end deffn
 
 \freadlink
-@c snarfed from filesys.c:1373
+@c snarfed from filesys.c:1377
 @deffn {Scheme Procedure} readlink path
 @deffnx {C Function} scm_readlink (path)
 Return the value of the symbolic link named by @var{path} (a
@@ -8196,7 +8480,7 @@ string), i.e., the file that the link points to.
 @end deffn
 
 \flstat
-@c snarfed from filesys.c:1415
+@c snarfed from filesys.c:1419
 @deffn {Scheme Procedure} lstat str
 @deffnx {C Function} scm_lstat (str)
 Similar to @code{stat}, but does not follow symbolic links, i.e.,
@@ -8205,7 +8489,7 @@ file it points to.  @var{path} must be a string.
 @end deffn
 
 \fcopy-file
-@c snarfed from filesys.c:1438
+@c snarfed from filesys.c:1442
 @deffn {Scheme Procedure} copy-file oldfile newfile
 @deffnx {C Function} scm_copy_file (oldfile, newfile)
 Copy the file specified by @var{path-from} to @var{path-to}.
@@ -8213,7 +8497,7 @@ The return value is unspecified.
 @end deffn
 
 \fdirname
-@c snarfed from filesys.c:1501
+@c snarfed from filesys.c:1505
 @deffn {Scheme Procedure} dirname filename
 @deffnx {C Function} scm_dirname (filename)
 Return the directory name component of the file name
@@ -8222,7 +8506,7 @@ component, @code{.} is returned.
 @end deffn
 
 \fbasename
-@c snarfed from filesys.c:1544
+@c snarfed from filesys.c:1548
 @deffn {Scheme Procedure} basename filename [suffix]
 @deffnx {C Function} scm_basename (filename, suffix)
 Return the base name of the file name @var{filename}. The
@@ -8232,7 +8516,7 @@ If @var{suffix} is provided, and is equal to the end of
 @end deffn
 
 \fpipe
-@c snarfed from posix.c:231
+@c snarfed from posix.c:232
 @deffn {Scheme Procedure} pipe
 @deffnx {C Function} scm_pipe ()
 Return a newly created pipe: a pair of ports which are linked
@@ -8251,7 +8535,7 @@ from the input port.
 @end deffn
 
 \fgetgroups
-@c snarfed from posix.c:252
+@c snarfed from posix.c:253
 @deffn {Scheme Procedure} getgroups
 @deffnx {C Function} scm_getgroups ()
 Return a vector of integers representing the current
@@ -8259,7 +8543,7 @@ supplementary group IDs.
 @end deffn
 
 \fsetgroups
-@c snarfed from posix.c:285
+@c snarfed from posix.c:286
 @deffn {Scheme Procedure} setgroups group_vec
 @deffnx {C Function} scm_setgroups (group_vec)
 Set the current set of supplementary group IDs to the integers
@@ -8270,7 +8554,7 @@ Generally only the superuser can set the process group IDs.
 @end deffn
 
 \fgetpw
-@c snarfed from posix.c:333
+@c snarfed from posix.c:334
 @deffn {Scheme Procedure} getpw [user]
 @deffnx {C Function} scm_getpwuid (user)
 Look up an entry in the user database.  @var{obj} can be an integer,
@@ -8279,7 +8563,7 @@ or getpwent respectively.
 @end deffn
 
 \fsetpw
-@c snarfed from posix.c:383
+@c snarfed from posix.c:384
 @deffn {Scheme Procedure} setpw [arg]
 @deffnx {C Function} scm_setpwent (arg)
 If called with a true argument, initialize or reset the password data
@@ -8288,7 +8572,7 @@ stream.  Otherwise, close the stream.  The @code{setpwent} and
 @end deffn
 
 \fgetgr
-@c snarfed from posix.c:402
+@c snarfed from posix.c:403
 @deffn {Scheme Procedure} getgr [name]
 @deffnx {C Function} scm_getgrgid (name)
 Look up an entry in the group database.  @var{obj} can be an integer,
@@ -8297,7 +8581,7 @@ or getgrent respectively.
 @end deffn
 
 \fsetgr
-@c snarfed from posix.c:438
+@c snarfed from posix.c:439
 @deffn {Scheme Procedure} setgr [arg]
 @deffnx {C Function} scm_setgrent (arg)
 If called with a true argument, initialize or reset the group data
@@ -8306,7 +8590,7 @@ stream.  Otherwise, close the stream.  The @code{setgrent} and
 @end deffn
 
 \fkill
-@c snarfed from posix.c:474
+@c snarfed from posix.c:475
 @deffn {Scheme Procedure} kill pid sig
 @deffnx {C Function} scm_kill (pid, sig)
 Sends a signal to the specified process or group of processes.
@@ -8339,7 +8623,7 @@ Interrupt signal.
 @end deffn
 
 \fwaitpid
-@c snarfed from posix.c:525
+@c snarfed from posix.c:526
 @deffn {Scheme Procedure} waitpid pid [options]
 @deffnx {C Function} scm_waitpid (pid, options)
 This procedure collects status information from a child process which
@@ -8386,7 +8670,7 @@ The integer status value.
 @end deffn
 
 \fstatus:exit-val
-@c snarfed from posix.c:551
+@c snarfed from posix.c:552
 @deffn {Scheme Procedure} status:exit-val status
 @deffnx {C Function} scm_status_exit_val (status)
 Return the exit status value, as would be set if a process
@@ -8395,7 +8679,7 @@ if any, otherwise @code{#f}.
 @end deffn
 
 \fstatus:term-sig
-@c snarfed from posix.c:569
+@c snarfed from posix.c:570
 @deffn {Scheme Procedure} status:term-sig status
 @deffnx {C Function} scm_status_term_sig (status)
 Return the signal number which terminated the process, if any,
@@ -8403,7 +8687,7 @@ otherwise @code{#f}.
 @end deffn
 
 \fstatus:stop-sig
-@c snarfed from posix.c:585
+@c snarfed from posix.c:586
 @deffn {Scheme Procedure} status:stop-sig status
 @deffnx {C Function} scm_status_stop_sig (status)
 Return the signal number which stopped the process, if any,
@@ -8411,7 +8695,7 @@ otherwise @code{#f}.
 @end deffn
 
 \fgetppid
-@c snarfed from posix.c:603
+@c snarfed from posix.c:604
 @deffn {Scheme Procedure} getppid
 @deffnx {C Function} scm_getppid ()
 Return an integer representing the process ID of the parent
@@ -8419,21 +8703,21 @@ process.
 @end deffn
 
 \fgetuid
-@c snarfed from posix.c:615
+@c snarfed from posix.c:616
 @deffn {Scheme Procedure} getuid
 @deffnx {C Function} scm_getuid ()
 Return an integer representing the current real user ID.
 @end deffn
 
 \fgetgid
-@c snarfed from posix.c:626
+@c snarfed from posix.c:627
 @deffn {Scheme Procedure} getgid
 @deffnx {C Function} scm_getgid ()
 Return an integer representing the current real group ID.
 @end deffn
 
 \fgeteuid
-@c snarfed from posix.c:640
+@c snarfed from posix.c:641
 @deffn {Scheme Procedure} geteuid
 @deffnx {C Function} scm_geteuid ()
 Return an integer representing the current effective user ID.
@@ -8443,7 +8727,7 @@ system supports effective IDs.
 @end deffn
 
 \fgetegid
-@c snarfed from posix.c:657
+@c snarfed from posix.c:658
 @deffn {Scheme Procedure} getegid
 @deffnx {C Function} scm_getegid ()
 Return an integer representing the current effective group ID.
@@ -8453,7 +8737,7 @@ system supports effective IDs.
 @end deffn
 
 \fsetuid
-@c snarfed from posix.c:673
+@c snarfed from posix.c:674
 @deffn {Scheme Procedure} setuid id
 @deffnx {C Function} scm_setuid (id)
 Sets both the real and effective user IDs to the integer @var{id}, provided
@@ -8462,7 +8746,7 @@ The return value is unspecified.
 @end deffn
 
 \fsetgid
-@c snarfed from posix.c:686
+@c snarfed from posix.c:687
 @deffn {Scheme Procedure} setgid id
 @deffnx {C Function} scm_setgid (id)
 Sets both the real and effective group IDs to the integer @var{id}, provided
@@ -8471,7 +8755,7 @@ The return value is unspecified.
 @end deffn
 
 \fseteuid
-@c snarfed from posix.c:701
+@c snarfed from posix.c:702
 @deffn {Scheme Procedure} seteuid id
 @deffnx {C Function} scm_seteuid (id)
 Sets the effective user ID to the integer @var{id}, provided the process
@@ -8482,7 +8766,7 @@ The return value is unspecified.
 @end deffn
 
 \fsetegid
-@c snarfed from posix.c:726
+@c snarfed from posix.c:727
 @deffn {Scheme Procedure} setegid id
 @deffnx {C Function} scm_setegid (id)
 Sets the effective group ID to the integer @var{id}, provided the process
@@ -8493,7 +8777,7 @@ The return value is unspecified.
 @end deffn
 
 \fgetpgrp
-@c snarfed from posix.c:749
+@c snarfed from posix.c:750
 @deffn {Scheme Procedure} getpgrp
 @deffnx {C Function} scm_getpgrp ()
 Return an integer representing the current process group ID.
@@ -8501,7 +8785,7 @@ This is the POSIX definition, not BSD.
 @end deffn
 
 \fsetpgid
-@c snarfed from posix.c:767
+@c snarfed from posix.c:768
 @deffn {Scheme Procedure} setpgid pid pgid
 @deffnx {C Function} scm_setpgid (pid, pgid)
 Move the process @var{pid} into the process group @var{pgid}.  @var{pid} or
@@ -8512,7 +8796,7 @@ The return value is unspecified.
 @end deffn
 
 \fsetsid
-@c snarfed from posix.c:784
+@c snarfed from posix.c:785
 @deffn {Scheme Procedure} setsid
 @deffnx {C Function} scm_setsid ()
 Creates a new session.  The current process becomes the session leader
@@ -8522,7 +8806,7 @@ The return value is an integer representing the new process group ID.
 @end deffn
 
 \fttyname
-@c snarfed from posix.c:808
+@c snarfed from posix.c:809
 @deffn {Scheme Procedure} ttyname port
 @deffnx {C Function} scm_ttyname (port)
 Return a string with the name of the serial terminal device
@@ -8530,7 +8814,7 @@ underlying @var{port}.
 @end deffn
 
 \fctermid
-@c snarfed from posix.c:847
+@c snarfed from posix.c:848
 @deffn {Scheme Procedure} ctermid
 @deffnx {C Function} scm_ctermid ()
 Return a string containing the file name of the controlling
@@ -8538,7 +8822,7 @@ terminal for the current process.
 @end deffn
 
 \ftcgetpgrp
-@c snarfed from posix.c:871
+@c snarfed from posix.c:872
 @deffn {Scheme Procedure} tcgetpgrp port
 @deffnx {C Function} scm_tcgetpgrp (port)
 Return the process group ID of the foreground process group
@@ -8554,7 +8838,7 @@ foreground.
 @end deffn
 
 \ftcsetpgrp
-@c snarfed from posix.c:895
+@c snarfed from posix.c:896
 @deffn {Scheme Procedure} tcsetpgrp port pgid
 @deffnx {C Function} scm_tcsetpgrp (port, pgid)
 Set the foreground process group ID for the terminal used by the file
@@ -8565,7 +8849,7 @@ controlling terminal.  The return value is unspecified.
 @end deffn
 
 \fexecl
-@c snarfed from posix.c:927
+@c snarfed from posix.c:928
 @deffn {Scheme Procedure} execl filename . args
 @deffnx {C Function} scm_execl (filename, args)
 Executes the file named by @var{path} as a new process image.
@@ -8582,7 +8866,7 @@ call, but we call it @code{execl} because of its Scheme calling interface.
 @end deffn
 
 \fexeclp
-@c snarfed from posix.c:958
+@c snarfed from posix.c:959
 @deffn {Scheme Procedure} execlp filename . args
 @deffnx {C Function} scm_execlp (filename, args)
 Similar to @code{execl}, however if
@@ -8595,7 +8879,7 @@ call, but we call it @code{execlp} because of its Scheme calling interface.
 @end deffn
 
 \fexecle
-@c snarfed from posix.c:992
+@c snarfed from posix.c:993
 @deffn {Scheme Procedure} execle filename env . args
 @deffnx {C Function} scm_execle (filename, env, args)
 Similar to @code{execl}, but the environment of the new process is
@@ -8607,7 +8891,7 @@ call, but we call it @code{execle} because of its Scheme calling interface.
 @end deffn
 
 \fprimitive-fork
-@c snarfed from posix.c:1028
+@c snarfed from posix.c:1029
 @deffn {Scheme Procedure} primitive-fork
 @deffnx {C Function} scm_fork ()
 Creates a new "child" process by duplicating the current "parent" process.
@@ -8619,7 +8903,7 @@ with the scsh fork.
 @end deffn
 
 \funame
-@c snarfed from posix.c:1048
+@c snarfed from posix.c:1049
 @deffn {Scheme Procedure} uname
 @deffnx {C Function} scm_uname ()
 Return an object with some information about the computer
@@ -8627,7 +8911,7 @@ system the program is running on.
 @end deffn
 
 \fenviron
-@c snarfed from posix.c:1077
+@c snarfed from posix.c:1078
 @deffn {Scheme Procedure} environ [env]
 @deffnx {C Function} scm_environ (env)
 If @var{env} is omitted, return the current environment (in the
@@ -8640,7 +8924,7 @@ then the return value is unspecified.
 @end deffn
 
 \ftmpnam
-@c snarfed from posix.c:1110
+@c snarfed from posix.c:1111
 @deffn {Scheme Procedure} tmpnam
 @deffnx {C Function} scm_tmpnam ()
 Return a name in the file system that does not match any
@@ -8651,7 +8935,7 @@ Care should be taken if opening the file, e.g., use the
 @end deffn
 
 \fmkstemp!
-@c snarfed from posix.c:1136
+@c snarfed from posix.c:1137
 @deffn {Scheme Procedure} mkstemp! tmpl
 @deffnx {C Function} scm_mkstemp (tmpl)
 Create a new unique file in the file system and returns a new
@@ -8662,7 +8946,7 @@ place to return the name of the temporary file.
 @end deffn
 
 \futime
-@c snarfed from posix.c:1171
+@c snarfed from posix.c:1172
 @deffn {Scheme Procedure} utime pathname [actime [modtime]]
 @deffnx {C Function} scm_utime (pathname, actime, modtime)
 @code{utime} sets the access and modification times for the
@@ -8678,43 +8962,60 @@ modification time to the current time.
 @end deffn
 
 \faccess?
-@c snarfed from posix.c:1219
+@c snarfed from posix.c:1237
 @deffn {Scheme Procedure} access? path how
 @deffnx {C Function} scm_access (path, how)
-Return @code{#t} if @var{path} corresponds to an existing file
-and the current process has the type of access specified by
-@var{how}, otherwise @code{#f}.  @var{how} should be specified
-using the values of the variables listed below.  Multiple
-values can be combined using a bitwise or, in which case
-@code{#t} will only be returned if all accesses are granted.
+Test accessibility of a file under the real UID and GID of the
+calling process.  The return is @code{#t} if @var{path} exists
+and the permissions requested by @var{how} are all allowed, or
+@code{#f} if not.
 
-Permissions are checked using the real id of the current
-process, not the effective id, although it's the effective id
-which determines whether the access would actually be granted.
+@var{how} is an integer which is one of the following values,
+or a bitwise-OR (@code{logior}) of multiple values.
 
 @defvar R_OK
-test for read permission.
+Test for read permission.
 @end defvar
 @defvar W_OK
-test for write permission.
+Test for write permission.
 @end defvar
 @defvar X_OK
-test for execute permission.
+Test for execute permission.
 @end defvar
 @defvar F_OK
-test for existence of the file.
+Test for existence of the file.  This is implied by each of the
+other tests, so there's no need to combine it with them.
 @end defvar
+
+It's important to note that @code{access?} does not simply
+indicate what will happen on attempting to read or write a
+file.  In normal circumstances it does, but in a set-UID or
+set-GID program it doesn't because @code{access?} tests the
+real ID, whereas an open or execute attempt uses the effective
+ID.
+
+A program which will never run set-UID/GID can ignore the
+difference between real and effective IDs, but for maximum
+generality, especially in library functions, it's best not to
+use @code{access?} to predict the result of an open or execute,
+instead simply attempt that and catch any exception.
+
+The main use for @code{access?} is to let a set-UID/GID program
+determine what the invoking user would have been allowed to do,
+without the greater (or perhaps lesser) privileges afforded by
+the effective ID.  For more on this, see ``Testing File
+Access'' in The GNU C Library Reference Manual.
 @end deffn
 
 \fgetpid
-@c snarfed from posix.c:1232
+@c snarfed from posix.c:1250
 @deffn {Scheme Procedure} getpid
 @deffnx {C Function} scm_getpid ()
 Return an integer representing the current process ID.
 @end deffn
 
 \fputenv
-@c snarfed from posix.c:1249
+@c snarfed from posix.c:1267
 @deffn {Scheme Procedure} putenv str
 @deffnx {C Function} scm_putenv (str)
 Modifies the environment of the current process, which is
@@ -8731,7 +9032,7 @@ The return value is unspecified.
 @end deffn
 
 \fsetlocale
-@c snarfed from posix.c:1333
+@c snarfed from posix.c:1351
 @deffn {Scheme Procedure} setlocale category [locale]
 @deffnx {C Function} scm_setlocale (category, locale)
 If @var{locale} is omitted, return the current value of the
@@ -8746,7 +9047,7 @@ the locale will be set using environment variables.
 @end deffn
 
 \fmknod
-@c snarfed from posix.c:1376
+@c snarfed from posix.c:1394
 @deffn {Scheme Procedure} mknod path type perms dev
 @deffnx {C Function} scm_mknod (path, type, perms, dev)
 Creates a new special file, such as a file corresponding to a device.
@@ -8767,7 +9068,7 @@ The return value is unspecified.
 @end deffn
 
 \fnice
-@c snarfed from posix.c:1422
+@c snarfed from posix.c:1440
 @deffn {Scheme Procedure} nice incr
 @deffnx {C Function} scm_nice (incr)
 Increment the priority of the current process by @var{incr}.  A higher
@@ -8776,7 +9077,7 @@ The return value is unspecified.
 @end deffn
 
 \fsync
-@c snarfed from posix.c:1436
+@c snarfed from posix.c:1458
 @deffn {Scheme Procedure} sync
 @deffnx {C Function} scm_sync ()
 Flush the operating system disk buffers.
@@ -8784,7 +9085,7 @@ The return value is unspecified.
 @end deffn
 
 \fcrypt
-@c snarfed from posix.c:1467
+@c snarfed from posix.c:1489
 @deffn {Scheme Procedure} crypt key salt
 @deffnx {C Function} scm_crypt (key, salt)
 Encrypt @var{key} using @var{salt} as the salt value to the
@@ -8792,7 +9093,7 @@ crypt(3) library call.
 @end deffn
 
 \fchroot
-@c snarfed from posix.c:1499
+@c snarfed from posix.c:1521
 @deffn {Scheme Procedure} chroot path
 @deffnx {C Function} scm_chroot (path)
 Change the root directory to that specified in @var{path}.
@@ -8803,7 +9104,7 @@ root directory.
 @end deffn
 
 \fgetlogin
-@c snarfed from posix.c:1533
+@c snarfed from posix.c:1555
 @deffn {Scheme Procedure} getlogin
 @deffnx {C Function} scm_getlogin ()
 Return a string containing the name of the user logged in on
@@ -8812,7 +9113,7 @@ information cannot be obtained.
 @end deffn
 
 \fcuserid
-@c snarfed from posix.c:1551
+@c snarfed from posix.c:1573
 @deffn {Scheme Procedure} cuserid
 @deffnx {C Function} scm_cuserid ()
 Return a string containing a user name associated with the
@@ -8821,7 +9122,7 @@ information cannot be obtained.
 @end deffn
 
 \fgetpriority
-@c snarfed from posix.c:1577
+@c snarfed from posix.c:1599
 @deffn {Scheme Procedure} getpriority which who
 @deffnx {C Function} scm_getpriority (which, who)
 Return the scheduling priority of the process, process group
@@ -8837,7 +9138,7 @@ specified processes.
 @end deffn
 
 \fsetpriority
-@c snarfed from posix.c:1611
+@c snarfed from posix.c:1633
 @deffn {Scheme Procedure} setpriority which who prio
 @deffnx {C Function} scm_setpriority (which, who, prio)
 Set the scheduling priority of the process, process group
@@ -8856,7 +9157,7 @@ The return value is not specified.
 @end deffn
 
 \fgetpass
-@c snarfed from posix.c:1636
+@c snarfed from posix.c:1658
 @deffn {Scheme Procedure} getpass prompt
 @deffnx {C Function} scm_getpass (prompt)
 Display @var{prompt} to the standard error output and read
@@ -8869,7 +9170,7 @@ characters is disabled.
 @end deffn
 
 \fflock
-@c snarfed from posix.c:1741
+@c snarfed from posix.c:1763
 @deffn {Scheme Procedure} flock file operation
 @deffnx {C Function} scm_flock (file, operation)
 Apply or remove an advisory lock on an open file.
@@ -8892,7 +9193,7 @@ file descriptor or an open file descriptor port.
 @end deffn
 
 \fsethostname
-@c snarfed from posix.c:1766
+@c snarfed from posix.c:1788
 @deffn {Scheme Procedure} sethostname name
 @deffnx {C Function} scm_sethostname (name)
 Set the host name of the current processor to @var{name}. May
@@ -8901,7 +9202,7 @@ specified.
 @end deffn
 
 \fgethostname
-@c snarfed from posix.c:1784
+@c snarfed from posix.c:1806
 @deffn {Scheme Procedure} gethostname
 @deffnx {C Function} scm_gethostname ()
 Return the host name of the current processor.
@@ -9213,7 +9514,7 @@ The return value is unspecified.
 @end deffn
 
 \fconnect
-@c snarfed from socket.c:842
+@c snarfed from socket.c:840
 @deffn {Scheme Procedure} connect sock fam address . args
 @deffnx {C Function} scm_connect (sock, fam, address, args)
 Initiate a connection from a socket using a specified address
@@ -9240,7 +9541,7 @@ The return value is unspecified.
 @end deffn
 
 \fbind
-@c snarfed from socket.c:901
+@c snarfed from socket.c:899
 @deffn {Scheme Procedure} bind sock fam address . args
 @deffnx {C Function} scm_bind (sock, fam, address, args)
 Assign an address to the socket port @var{sock}.
@@ -9289,7 +9590,7 @@ The return value is unspecified.
 @end deffn
 
 \flisten
-@c snarfed from socket.c:934
+@c snarfed from socket.c:932
 @deffn {Scheme Procedure} listen sock backlog
 @deffnx {C Function} scm_listen (sock, backlog)
 Enable @var{sock} to accept connection
@@ -9303,7 +9604,7 @@ The return value is unspecified.
 @end deffn
 
 \faccept
-@c snarfed from socket.c:1046
+@c snarfed from socket.c:1044
 @deffn {Scheme Procedure} accept sock
 @deffnx {C Function} scm_accept (sock)
 Accept a connection on a bound, listening socket.
@@ -9323,7 +9624,7 @@ connection and will continue to accept new requests.
 @end deffn
 
 \fgetsockname
-@c snarfed from socket.c:1073
+@c snarfed from socket.c:1071
 @deffn {Scheme Procedure} getsockname sock
 @deffnx {C Function} scm_getsockname (sock)
 Return the address of @var{sock}, in the same form as the
@@ -9332,7 +9633,7 @@ of a socket in the @code{AF_FILE} namespace cannot be read.
 @end deffn
 
 \fgetpeername
-@c snarfed from socket.c:1095
+@c snarfed from socket.c:1093
 @deffn {Scheme Procedure} getpeername sock
 @deffnx {C Function} scm_getpeername (sock)
 Return the address that @var{sock}
@@ -9342,7 +9643,7 @@ is connected to, in the same form as the object returned by
 @end deffn
 
 \frecv!
-@c snarfed from socket.c:1130
+@c snarfed from socket.c:1128
 @deffn {Scheme Procedure} recv! sock buf [flags]
 @deffnx {C Function} scm_recv (sock, buf, flags)
 Receive data from a socket port.
@@ -9368,7 +9669,7 @@ any unread buffered port data is ignored.
 @end deffn
 
 \fsend
-@c snarfed from socket.c:1173
+@c snarfed from socket.c:1171
 @deffn {Scheme Procedure} send sock message [flags]
 @deffnx {C Function} scm_send (sock, message, flags)
 Transmit the string @var{message} on a socket port @var{sock}.
@@ -9387,7 +9688,7 @@ any unflushed buffered port data is ignored.
 @end deffn
 
 \frecvfrom!
-@c snarfed from socket.c:1224
+@c snarfed from socket.c:1222
 @deffn {Scheme Procedure} recvfrom! sock str [flags [start [end]]]
 @deffnx {C Function} scm_recvfrom (sock, str, flags, start, end)
 Return data from the socket port @var{sock} and also
@@ -9416,7 +9717,7 @@ descriptor: any unread buffered port data is ignored.
 @end deffn
 
 \fsendto
-@c snarfed from socket.c:1289
+@c snarfed from socket.c:1287
 @deffn {Scheme Procedure} sendto sock message fam address . args_and_flags
 @deffnx {C Function} scm_sendto (sock, message, fam, address, args_and_flags)
 Transmit the string @var{message} on the socket port