comparison src/systime.h @ 27149:a3d16b780bb3

(EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give macros statement form.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 04 Jan 2000 17:13:58 +0000
parents 14334ad07b74
children e7dca295c541
comparison
equal deleted inserted replaced
27148:929f111a6823 27149:a3d16b780bb3
93 #define EMACS_SET_SECS(time, seconds) ((time).tv_sec = (seconds)) 93 #define EMACS_SET_SECS(time, seconds) ((time).tv_sec = (seconds))
94 #define EMACS_SET_USECS(time, microseconds) ((time).tv_usec = (microseconds)) 94 #define EMACS_SET_USECS(time, microseconds) ((time).tv_usec = (microseconds))
95 95
96 /* On SVR4, the compiler may complain if given this extra BSD arg. */ 96 /* On SVR4, the compiler may complain if given this extra BSD arg. */
97 #ifdef GETTIMEOFDAY_ONE_ARGUMENT 97 #ifdef GETTIMEOFDAY_ONE_ARGUMENT
98 #define EMACS_GET_TIME(time) \ 98 #define EMACS_GET_TIME(time) gettimeofday (&(time))
99 { \
100 gettimeofday (&(time)); \
101 }
102 #else /* not GETTIMEOFDAY_ONE_ARGUMENT */ 99 #else /* not GETTIMEOFDAY_ONE_ARGUMENT */
103 #define EMACS_GET_TIME(time) \ 100 #define EMACS_GET_TIME(time) \
104 { \ 101 do { \
105 struct timezone dummy; \ 102 struct timezone dummy; \
106 gettimeofday (&(time), &dummy); \ 103 gettimeofday (&(time), &dummy); \
107 } 104 } while (0)
108 #endif /* not GETTIMEOFDAY_ONE_ARGUMENT */ 105 #endif /* not GETTIMEOFDAY_ONE_ARGUMENT */
109 106
110 #define EMACS_ADD_TIME(dest, src1, src2) \ 107 #define EMACS_ADD_TIME(dest, src1, src2) \
111 { \ 108 do { \
112 (dest).tv_sec = (src1).tv_sec + (src2).tv_sec; \ 109 (dest).tv_sec = (src1).tv_sec + (src2).tv_sec; \
113 (dest).tv_usec = (src1).tv_usec + (src2).tv_usec; \ 110 (dest).tv_usec = (src1).tv_usec + (src2).tv_usec; \
114 if ((dest).tv_usec > 1000000) \ 111 if ((dest).tv_usec > 1000000) \
115 (dest).tv_usec -= 1000000, (dest).tv_sec++; \ 112 (dest).tv_usec -= 1000000, (dest).tv_sec++; \
116 } 113 } while (0)
117 114
118 #define EMACS_SUB_TIME(dest, src1, src2) \ 115 #define EMACS_SUB_TIME(dest, src1, src2) \
119 { \ 116 do { \
120 (dest).tv_sec = (src1).tv_sec - (src2).tv_sec; \ 117 (dest).tv_sec = (src1).tv_sec - (src2).tv_sec; \
121 (dest).tv_usec = (src1).tv_usec - (src2).tv_usec; \ 118 (dest).tv_usec = (src1).tv_usec - (src2).tv_usec; \
122 if ((dest).tv_usec < 0) \ 119 if ((dest).tv_usec < 0) \
123 (dest).tv_usec += 1000000, (dest).tv_sec--; \ 120 (dest).tv_usec += 1000000, (dest).tv_sec--; \
124 } 121 } while (0)
125 122
126 #define EMACS_TIME_NEG_P(time) \ 123 #define EMACS_TIME_NEG_P(time) \
127 ((long)(time).tv_sec < 0 \ 124 ((long)(time).tv_sec < 0 \
128 || ((time).tv_sec == 0 \ 125 || ((time).tv_sec == 0 \
129 && (long)(time).tv_usec < 0)) 126 && (long)(time).tv_usec < 0))