(scm_parse_path): Use scm_string_split to do the work.
(scm_init_load_path): Use scm_parse_path instead of
scm_internal_parse_path.
(scm_search_path): Rewritten string handling part of the code in
terms of scm_to_locale_stringbuf and so that it is thread safe.
Moved from string.h to deprecated.h.
* deprecated.c, deprecated.h (SCM_CHARS, SCM_LENGTH): Removed.
* strings.h, strings.c (SCM_MAKE_STRING_TAG): Rename dto
SCM_I_MAKE_STRING_TAG, changed all uses.
(SCM_STRING_CHARS, SCM_STRING_UCHARS, SCM_STRING_LENGTH): Renamed
to SCM_I_STRING_CHARS, SCM_I_STRING_UCHARS, and SCM_I_LENGTH
respectively. For a short time, the old names are still there as
aliases. Not all uses have been changed yet, but the ones in
strings.c have.
(SCM_STRING_MAX_LEN): Do not hardcode to 24 bits, compute from
SCM_T_BITS_MAX.
(scm_is_string, scm_from_locale_string, scm_from_locale_stringn,
scm_take_locale_string, scm_take_locale_stringn,
scm_to_locale_string, scm_to_locale_stringn,
scm_to_locale_stringbuf): New.
(scm_c_string2str, scm_c_substring2str): Deprecated by moving to
deprecated.[hc]. Implemented in terms of the new functions above.
(scm_take_str, scm_take0str, scm_mem2string, scm_str2string,
scm_makfrom0str): Reimplemented in terms of the new functions from
above. They will be discouraged shortly.
(scm_substring): Do not use scm_mem2string.
(scm_i_allocate_string_pointers, scm_i_free_string_pointers): New,
to replace similar code from posix.c, simpos.c, and dynl.c.
(scm_string_append): Use memcpy instead of explicit loop. Do not
use register keyword. Use plain 'char' instead of 'unsigned
char'.
print all data (except for the reader macros), rather than
implementing an own printer. The user-visible difference is that
procedures and control characters like #\tab are now printed in the
same way as by `write'.
definitions are insufficient for latest slib.
(t, nil): New constants slib says are supposed to exist.
(call-with-open-ports, browse-url): New functions for latest slib.
Implementations taken from Template.scm (public domain).
(open-file): Extend core definition to accept symbols for the mode,
required by latest slib.
(delete-file): Replace core definition with version returning #t/#f as
per slib spec.
(system): Mark as #:replace to suppress override warning, use new
style "(@ (guile) system)" to call core function.
trying to throw an exception -- call scm_misc_error with correct
arguments. The previous arguments needed a format escape that
wasn't in any of the format strings.
stat on the filename, to be certain a file rename can't mean we get
info on one filesystem object but open another. This fstat usage is
similar to Emacs copy-file.
For string-every, note return is #t when no characters. For
string-any and string-every, note last pred call is not currently a
tail call, contrary to SRFI-13 spec.