Files
emacs/src
Paul Eggert 207ee94b1d Fix rounding error in ‘ceiling’ etc.
Without this fix, (ceiling most-negative-fixnum -1.0) returns
most-negative-fixnum instead of correctly signaling range-error,
and similarly for floor, round, and truncate.
* configure.ac (trunc): Add a check, since Gnulib’s doc says
‘trunc’ is missing from MSVC 9.  The Gnulib doc says ‘trunc’ is
also missing from some other older operating systems like Solaris
9 which I know we don’t care about any more, so MSVC is the only
reason to worry about ‘trunc’ here.
* src/editfns.c (styled_format): Formatting a float with %c is now an
error.  The old code did not work in general, because FIXNUM_OVERFLOW_P
had rounding errors.  Besides, the "if (FLOATP (...))" was in there
only as a result of my misunderstanding old code that I introduced
2011.  Although %d etc. is sometimes used on floats that represent
huge UIDs or PIDs etc. that do not fit in fixnums, this cannot
happen with characters.
* src/floatfns.c (rounding_driver): Rework to do the right thing
when the intermediate result equals 2.305843009213694e+18, i.e.,
is exactly 1 greater than MOST_POSITIVE_FIXNUM on a 64-bit host.
Simplify so that only one section of code checks for overflow,
rather than two.
(double_identity): Remove.  All uses changed to ...
(emacs_trunc): ... this new function.  Add replacement for
platforms that lack ‘trunc’.
* src/lisp.h (FIXNUM_OVERFLOW_P, make_fixnum_or_float):
Make it clear that the arg cannot be floating point.
* test/src/editfns-tests.el (format-c-float): New test.
* test/src/floatfns-tests.el: New file, to test for this bug.
2017-03-01 12:47:28 -08:00
..
2017-01-01 01:10:47 -08:00
2017-01-25 21:25:37 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-25 21:25:37 -08:00
2017-02-16 07:55:41 -08:00
2017-01-25 21:25:37 -08:00
2016-12-31 19:42:26 -08:00
2016-03-10 07:59:19 -08:00
2017-01-25 21:25:37 -08:00
2016-03-10 07:59:19 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-08 10:07:00 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-02-18 18:17:03 -08:00
2017-01-25 21:25:37 -08:00
2016-12-31 19:42:26 -08:00
2017-02-01 15:23:19 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-02-01 15:23:19 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-02-23 09:15:06 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-02-26 09:58:25 -08:00
2017-02-01 15:23:19 -08:00
2017-02-01 15:23:19 -08:00
2017-01-01 01:10:47 -08:00
2017-03-01 16:15:21 +08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-22 00:25:35 -08:00
2016-12-31 19:42:26 -08:00
2017-02-23 21:17:04 -05:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-03-10 07:59:19 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-22 00:25:35 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-25 21:25:37 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-25 21:25:37 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-02-18 18:17:03 -08:00
2016-12-31 19:42:26 -08:00
2017-01-25 21:25:37 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-02-18 18:17:03 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-02-26 09:58:25 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-02-18 18:17:03 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-02-26 09:58:25 -08:00
2017-02-26 09:58:25 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-02-18 18:17:03 -08:00
2016-12-31 19:42:26 -08:00
2017-02-18 12:56:12 +02:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-25 21:25:37 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-03 17:46:40 +02:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-25 21:25:37 -08:00
2017-01-25 21:25:37 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-02-02 21:21:18 -05:00
2017-02-10 15:33:05 -05:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2016-12-31 19:42:26 -08:00
2017-01-25 21:25:37 -08:00
2016-12-31 19:42:26 -08:00
2016-12-31 19:42:26 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00
2017-01-01 01:10:47 -08:00

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Copyright (C) 2001-2017 Free Software Foundation, Inc.
See the end of the file for license conditions.


This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs is copied elsewhere.

See the files ../README and then ../INSTALL for installation instructions.

The file 'Makefile.in' is used as a template by the script
'../configure' to produce 'Makefile'.  This is the file which actually
controls the compilation of Emacs C source files.  All of this should
work transparently; you should only need to change to the parent
directory, run './configure', and then run 'make'.

This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.