Mercurial > emacs
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)) |