Improve quality of tests for time stamp overflow.
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 13 Mar 2011 06:43:00 +0000 (22:43 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 13 Mar 2011 06:43:00 +0000 (22:43 -0800)
1  2 
src/ChangeLog
src/deps.mk

diff --cc src/ChangeLog
@@@ -1,24 -1,37 +1,56 @@@
 -      * editfns.c (lisp_time_argument): Check for time stamp overflow.
 -
 -2011-03-12  Paul Eggert  <eggert@cs.ucla.edu>
 -
 -      Improve quality of tests for time stamp overflow.  For example,
 -      without this patch (encode-time 0 0 0 1 1 1152921504606846976)
 -      returns the obviously-bogus value (-948597 62170) on my RHEL 5.5
 -      x86-64 host.  With it, it reports time overflow.
+ 2011-03-13  Paul Eggert  <eggert@cs.ucla.edu>
 -
 -2011-03-11  Paul Eggert  <eggert@cs.ucla.edu>
++      Improve quality of tests for time stamp overflow.
++      For example, without this patch (encode-time 0 0 0 1 1
++      1152921504606846976) returns the obviously-bogus value (-948597
++      62170) on my RHEL 5.5 x86-64 host.  With the patch, it correctly
++      reports time overflow.  See
++      <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
+       * deps.mk (editfns.o): Depend on ../lib/intprops.h.
+       * editfns.c: Include limits.h and intprops.h.
+       (TIME_T_MIN, TIME_T_MAX): New macros.
+       (time_overflow): Move earlier, to before first use.
+       (hi_time, lo_time): New functions, for an accurate test for
+       out-of-range times.
+       (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
+       (Fget_internal_run_time): Don't assume time_t fits in int.
+       (make_time): Use list2 instead of Fcons twice.
+       (Fdecode_time): More accurate test for out-of-range times.
+       (check_tm_member): New function.
+       (Fencode_time): Use it, to test for out-of-range times.
++      (lisp_time_argument): Don't rely on undefined left-shift and
++      right-shift behavior when checking for time stamp overflow.
+       * editfns.c (time_overflow): New function, refactoring common code.
+       (Fformat_time_string, Fdecode_time, Fencode_time):
+       (Fcurrent_time_string): Use it.
+       Move 'make_time' to be next to its inverse 'lisp_time_argument'.
+       * dired.c (make_time): Move to ...
+       * editfns.c (make_time): ... here.
+       * systime.h: Note the move.
 +2011-03-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * fringe.c (update_window_fringes): Remove unused variables.
 +
 +      * unexmacosx.c (copy_data_segment): Also copy __got section.
 +      (Bug#8223)
 +
 +2011-03-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * termcap.c [MSDOS]: Include "msdos.h.
 +      (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
 +      Constify `char *' arguments and their references according to
 +      prototypes in tparam.h.
 +
 +      * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
 +
 +      * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
 +      Adapt all references accordingly.
 +
 +      * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
 +
  2011-03-11  Tom Tromey  <tromey@redhat.com>
  
        * buffer.c (syms_of_buffer): Remove obsolete comment.
diff --cc src/deps.mk
Simple merge