]> git.eshelyaron.com Git - emacs.git/commit
Refactor timefns more functionally
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 6 Jul 2024 19:52:08 +0000 (21:52 +0200)
committerEshel Yaron <me@eshelyaron.com>
Thu, 11 Jul 2024 14:39:40 +0000 (16:39 +0200)
commit0570a4318e927021249b493c2df6558f0cae8694
treed5333226f0b3dbc90267343e4ff90822439e0717
parent637d3cb0cd20133e5ac4224995e3733eb67cd481
Refactor timefns more functionally

Use a more-functional style in timefns.c, rather than passing
pointers to objects that are filled in.  Although this does not
change behavior, it should help future improvements to the code.
* src/keyboard.c (decode_timer): Return a possibly-invalid struct
timespec instead of storing a timespec into a location specified
by an arg, and returning bool.  All callers changed.
* src/systime.h (struct lisp_time): Move from here to src/timefns.c,
since the type is private to timefns.c.
* src/timefns.c (decode_float_time, decode_ticks_hz):
Return timestamp instead of storing it into a location specified
by an arg.  All callers changed.
(enum cform, union c_time, struct err_time, struct form_time):
New types, to aid functional style.
(decode_time_components): Return struct err_time
instead of returning err and storing timestamp into a location
specified by an arg.  New arg cform.  All callers changed.
(decode_lisp_time): Return struct form_time instead of returning
form and storing timestamp into a location specified by an arg.
New arg cform, replacing decode_secs_only.  All callers changed.
(list4_to_timespec): Return possibly-invalid timestamp instead
of returning a bool and storing timestamp into a location specified
by an arg.  All callers changed.
(lisp_time_struct): Omit no-longer-needed arg PFORM.
All callers changed.

(cherry picked from commit 35365620e4c4c2560e13eba1f03332970129d7f8)
src/keyboard.c
src/systime.h
src/timefns.c