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