* list.c: Put some variable initialization code at the point of
declaration; Added a comment for list*; Formatting changes.
* load.c: use SCM_NNULLP to make sure the end of a list is not
reached yet.
SCM_VALIDATE_LONG_COPY
* numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
couple of formal arguments (and fix their uses) to make arguments
match the documentation.
guile-func-name-check, and put "$fullfilename" and "$filename" in
quotes at uses to make sure re-splitting on whitespace does not
occur (so filenames w/ embedded whitespace would work okay, though
I sure hope we never have to deal with that! :-) ). Thanks to
Mikael for pointing out the source_dir != build_dir was broken.
SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
variants.
* ports.c (scm_port_closed_p): Validate that the arg is a PORT,
then return whether it's an open port (was validating that it was
an open port -- this was a bug I introduced back in December, but
my careful reading of diffs caught it).
* numbers.c: Recombine the two conditional-compilation paths for
all the log* primitives -- they were split based on #ifndef
scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
some bugs and inconsistencies in the two sets of implementations.
(scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
* ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
SCM_VALIDATE_INUM_COPY once where it should've been used.
* fluids.c (scm_internal_with_fluids): Use
SCM_VALIDATE_LIST_COPYLEN.
* filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
this is questionable as it relaxes type safety, but other changes
were useful and all SCM_NUM2LONG's should probably be
revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
* evalext.c: line-break change on 1 line.
* eval.c (nconc2last): Takes a non-empty list as its first
argument, not just a list.
* dynl.c: Use new SCM_COERCE_ROSTRING macro.
net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
where possible.
* symbols.c (scm_sysintern0): Fixed the function name in a
scm_misc_error invocation.
* print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
use scm_return_first to ward off latent GC bug that Mikael caught.
* async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
used before but should've been.
#define FUNC_NAME, #undef FUNC_NAME in the source.
* sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
redundant comment, semicolon; caught by new guile-func-name-check
script.
* debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
Caught by new guile-func-name-check-script.
* Makefile.am: Added guile-func-name-check to bin_SCRIPTS
* ramap.c: Fix #if 0'd out code to be syntactically acceptable to
guile-func-name-check.
* guile-doc-snarf.in: Run guile-func-name-check on the file before
doing the snarf.
strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
consistency with the other macros dealing with immediate
characters. (Similar to INT -> INUM change a week or so ago).
net_db.c, read.c, socket.c: Update error messages to use ~A for
%s, ~S for %S to work with new `simple-format' format and be
standardized better.
* print.h, print.c (scm_simple_format): Added `simple-format'
primitive. It's the old scm_display_error, with ARGS now a rest
parameter, and the destination first instead of last (and a couple
new capabilities inspired by `format' -- #t as destination means
current-output-port, #f means return the formatted text as a
string.
* gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
* backtrace.c (scm_display_error_message): Rewrote to use
scm_simple_format() procedure.
* __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
(obsolete)
* Makefile.am: likewise, add INCLTDL (libltdl headers) to
INCLUDES, set dlpreopened files in LDFLAGS, link libguile
against libltdl
* DYNAMIC-LINKING: Removed because it is obsolete.
Emacs 20.5.
* acconfig.h: add LOCALTIME_CACHE.
* These changes should make it unnecessary to call tzset from
Scheme after modifying the TZ environment variable, even if the
system date facilities cache the value.
* stime.c (setzone, scm_localtime): added comments.
(tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
(setzone): don't call tzset.
(restorezone): call tzset only if HAVE_TZSET is defined.
(scm_tzset): don't define if HAVE_TZSET not defined. Change the
doc string to indicate that this procedure isn't likely to do
anything useful.
(scm_localtime, scm_strftime, scm_mktime): call tzset if
LOCALTIME_CACHE is defined.