]> code.delx.au - gnu-emacs/blobdiff - src/ChangeLog
EMACS_TIME simplification (Bug#11875).
[gnu-emacs] / src / ChangeLog
index 84703fcdc2f193c15c72a66678cdc37e295634e8..de56d4160a7ad45bf553b716958cdf52ab721147 100644 (file)
@@ -1,3 +1,66 @@
+2012-07-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       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.
+       * 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.
+       * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
+       * fileio.c (Fcopy_file):
+       * xterm.c (XTflash): Get the current time closer to when it's used.
+       * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
+
+       * bytecode.c (targets): Suppress -Woverride-init warnings.
+
+       Simplify by avoiding confusing use of strncpy etc.
+       * doc.c (Fsnarf_documentation):
+       * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
+       * frame.c (Fmake_terminal_frame):
+       * gtkutil.c (get_utf8_string):
+       * lread.c (openp):
+       * nsmenu.m (ns_update_menubar):
+       * regex.c (regerror):
+       Prefer memcpy to strncpy and strncat when either will do.
+       * fileio.c (Fsubstitute_in_file_name):
+       * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
+       (menu_separator_name_p):
+       * nsmenu.m (ns_update_menubar):
+       Prefer memcmp to strncmp when either will do.
+       * nsterm.m: Include <ftoastr.h>.
+       (ns_get_color):
+       * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
+       Prefer snprintf to strncpy.
+       * nsterm.m (ns_term_init):
+       * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
+       * nsterm.m (ns_term_init):
+       Avoid the need for strncpy, by using build_string or
+       make_unibyte_string directly.  Use dtoastr, not snprintf.
+       * process.c (Fmake_network_process): Diagnose service names that
+       are too long, rather than silently truncating them or creating
+       non-null-terminated names.
+       (Fnetwork_interface_info): Likewise, for interface names.
+       * sysdep.c (system_process_attributes) [GNU_LINUX]:
+       Prefer sprintf to strncat.
+       * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
+       Prefer vsnprintf to vsprintf + strncpy.
+
 2012-07-10  Glenn Morris  <rgm@gnu.org>
 
        * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]: