* guile-readline/ice-9/readline.scm (make-readline-port): Preserve
newlines. This preserves the semantics of history entries that
contain until-end-of-line comments using `;'.
* libguile/list.c (scm_reverse_x): Do not validate first argument to
reverse! in advance. Instead undo reversal in error case.
Signed-off-by: David Kastrup <dak@gnu.org>
Signed-off-by: Mark H Weaver <mhw@netris.org>
This is a follow-up to e26ab06.
* libguile/print.c (scm_simple_format): Pass 1 to
SCM_VALIDATE_OPORT_VALUE, for 'destination'.
* test-suite/tests/format.test ("simple-format"): Add test.
Fixes <http://bugs.gnu.org/17044>.
Reported and diagnosed by Xin Wang <dram.wang@gmail.com>.
* module/rnrs/io/simple.scm (open-input-file, open-output-file): Pass
missing buffer-mode argument to open-file-{input,output}-port.
Previously, (native-transcoder) was incorrectly passed as the
buffer-mode argument, so no transcoder was provided, thus creating a
binary port.
* libguile/srfi-4.c (DEFINE_SRFI_4_C_FUNCS): Fix bad assumption that
width was a byte width. Thanks very much to Barry Fishman for the
report, and to Daniel Llorens for tracking it down.
* test-suite/standalone/Makefile.am (test_srfi_4_CFLAGS):
* test-suite/standalone/test-srfi-4.c: Add test.
* module/texinfo.scm (read-char-data): Preserve newlines in @example and
similar environments in the case when the next line starts with an @.
* test-suite/tests/texinfo.test ("test-texinfo->stexinfo"): Add a test.
* doc/ref/api-data.texi (Symbol Read Syntax): Mention the 'r7rs-symbols'
print option, and provide example code to enable both the read and
print options. Add 'r7rs-symbols' to the concept index.
* libguile/Makefile.am (install-data-local): Rename to...
(install-data-hook): ... this. This guarantees that the rule runs
after libguile-2.0.so has been installed.
* libguile/Makefile.am (gen-scmconfig.$(OBJEXT)): When cross-compiling,
pass -DCROSS_COMPILING=1.
(c-tokenize.$(OBJEXT)): Likewise.
* libguile/c-tokenize.lex (%top): Include <config.h> only when
CROSS_COMPILING is undefined.
* libguile/gen-scmconfig.c: Likewise.
* libguile/numbers.h (SCM_SRS): Rewrite preprocessor test to avoid
left-shifting negative integers, and to test more comprehensively for
the behavior we need. Rewrite fallback implementation to avoid
unspecified behavior.
* libguile/srfi-60.c (scm_srfi60_rotate_bit_field): Avoid division by
zero in the (start == end) case. Rewrite inum case to work with
unsigned integers in two's complement format.
* test-suite/tests/srfi-60.test ("rotate-bit-field"): Add more tests.
* libguile/numbers.c (scm_logbit_p): If the requested bit is the sign
bit (or above), check the sign portably. Otherwise, ensure that we're
testing the bit in a two's complement representation.
(left_shift_exact_integer): Avoid left-shifting negative integers.
* libguile/vm-i-scheme.c (ash): Avoid left-shifting negative integers.
* configure.ac: Add -fwrapv when using GCC (or compatible), if
supported.
* libguile/numbers.h (SCM_I_MAKINUM): Cast to scm_t_bits (unsigned)
before shifting, to avoid undefined behavior.
* libguile/guile-snarf.in (modern_snarf): Rewrite sed script to cope
with newlines in the snarfed code segments, or multiple code segments
on the same line.
* module/scripts/snarf-check-and-output-texi.scm (process-stream):
Strip all 'hash' tokens from the stream.
(do-command): Remove special cases that handled 'hash' tokens
in a few places.
* libguile/c-tokenize.lex: Add %top directive to include <config.h>
first. This fixes builds on systems that use Gnulib's <stdio.h> and
similar replacements. See <http://hydra.nixos.org/build/9259627> for
an example.