EMACS_TIME simplification (Bug#11875).
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 10 Jul 2012 23:24:36 +0000 (16:24 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 10 Jul 2012 23:24:36 +0000 (16:24 -0700)
commite9a9ae0350689d352c2bdfa3af0eb722f587b966
tree10ed0298079b06838a525f0a4df780d7600e13fe
parentffacb12679a1e001981c2e0f690b327eda652d04
EMACS_TIME simplification (Bug#11875).

This replaces macros (which typically do not work in GDB)
with functions, typedefs and enums, making the code easier to debug.
The functional style also makes code easier to read and maintain.
* lib-src/profile.c (TV2): Remove no-longer-needed static var.
* src/systime.h: Include <sys/time.h> on all hosts, not just if
WINDOWSNT, since 'struct timeval' is needed in general.
(EMACS_TIME): Now a typedef, not a macro.
(EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
not macros.
(EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
(EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
(EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
(EMACS_TIME_LE): Now functions, not macros.
(EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
(EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
which are not functions.  All uses rewritten to use:
(make_emacs_time): New function.
(EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
(EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
not functions.  All uses rewritten to use the following, respectively:
(emacs_secs_addr, invalid_emacs_time, get_emacs_time)
(add_emacs_time, sub_emacs_time): New functions.
* src/atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
* src/fileio.c (Fcopy_file):
* src/xterm.c (XTflash): Get the current time closer to when it's used.
* src/makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
24 files changed:
lib-src/ChangeLog
lib-src/profile.c
src/ChangeLog
src/alloc.c
src/atimer.c
src/buffer.c
src/dispnew.c
src/editfns.c
src/fileio.c
src/fns.c
src/image.c
src/keyboard.c
src/lread.c
src/makefile.w32-in
src/msdos.c
src/nsterm.m
src/process.c
src/sysdep.c
src/systime.h
src/undo.c
src/w32.c
src/xdisp.c
src/xgselect.c
src/xterm.c