comparison src/strftime.c @ 17965:2ef01cc793bf

automatically generated from GPLed version
author Paul Eggert <eggert@twinsun.com>
date Tue, 27 May 1997 03:15:29 +0000
parents 8f3dcea869f5
children 47be751da08b
comparison
equal deleted inserted replaced
17964:160c3be66a71 17965:2ef01cc793bf
175 175
176 #if !defined (memset) && !defined (HAVE_MEMSET) && !defined (_LIBC) 176 #if !defined (memset) && !defined (HAVE_MEMSET) && !defined (_LIBC)
177 /* Some systems lack the `memset' function and we don't want to 177 /* Some systems lack the `memset' function and we don't want to
178 introduce additional dependencies. */ 178 introduce additional dependencies. */
179 static const char spaces[16] = " "; 179 static const char spaces[16] = " ";
180 static const char zeroes[16] = "0000000000000000";
180 181
181 # define memset_space(P, Len) \ 182 # define memset_space(P, Len) \
182 do { \ 183 do { \
183 int _len = (Len); \ 184 int _len = (Len); \
184 \ 185 \
189 (P) += _this; \ 190 (P) += _this; \
190 _len -= _this; \ 191 _len -= _this; \
191 } \ 192 } \
192 while (_len > 0); \ 193 while (_len > 0); \
193 } while (0) 194 } while (0)
195
196 # define memset_zero(P, Len) \
197 do { \
198 int _len = (Len); \
199 \
200 do \
201 { \
202 int _this = _len > 16 ? 16 : _len; \
203 memcpy ((P), zeroes, _this); \
204 (P) += _this; \
205 _len -= _this; \
206 } \
207 while (_len > 0); \
208 } while (0)
194 #else 209 #else
195 # define memset_space(P, Len) (memset ((P), ' ', (Len)), (P) += (Len)) 210 # define memset_space(P, Len) (memset ((P), ' ', (Len)), (P) += (Len))
196 #endif 211 # define memset_zero(P, Len) (memset ((P), '0', (Len)), (P) += (Len))
197 212 #endif
198 #define add(n, f) \ 213
214 #define add(n, f) \
199 do \ 215 do \
200 { \ 216 { \
201 int _n = (n); \ 217 int _n = (n); \
202 int _delta = width - _n; \ 218 int _delta = width - _n; \
203 int _incr = _n + (_delta > 0 ? _delta : 0); \ 219 int _incr = _n + (_delta > 0 ? _delta : 0); \
204 if (i + _incr >= maxsize) \ 220 if (i + _incr >= maxsize) \
205 return 0; \ 221 return 0; \
206 if (p) \ 222 if (p) \
207 { \ 223 { \
208 if (_delta > 0) \ 224 if (_delta > 0) \
209 memset_space (p, _delta); \ 225 { \
226 if (pad == '0') \
227 memset_zero (p, _delta); \
228 else \
229 memset_space (p, _delta); \
230 } \
210 f; \ 231 f; \
211 p += _n; \ 232 p += _n; \
212 } \ 233 } \
213 i += _incr; \ 234 i += _incr; \
214 } while (0) 235 } while (0)