ObjFW  History of src/OFDate.m of 1ec122d57cd9ab6b

History of the file that is called src/OFDate.m at check-in 1ec122d57cd9ab6b

2024-05-01
15:20
[ddae0ab707] part of check-in [5164cbc576] Document a lot of undocumented functions & macros

Also fixes Doxygen not creating documentation for `static OF_INLINE`
functions. (check-in: [5164cbc576] user: js, branch: 1.1, size: 17931) [annotate] [blame] [check-ins using] [diff]

15:19
[9e5a69c33e] part of check-in [0c3c3b6efa] Document a lot of undocumented functions & macros

Also fixes Doxygen not creating documentation for `static OF_INLINE`
functions. (check-in: [0c3c3b6efa] user: js, branch: trunk, size: 17930) [annotate] [blame] [check-ins using] [diff]

2024-04-29
23:12
[7229a07ea7] part of check-in [efb77e8878] Properly hide private symbols (check-in: [efb77e8878] user: js, branch: 1.1, size: 17924) [annotate] [blame] [check-ins using] [diff]
21:42
[b2a6d429a4] part of check-in [f16bccc7b3] Properly hide private symbols (check-in: [f16bccc7b3] user: js, branch: trunk, size: 17923) [annotate] [blame] [check-ins using] [diff]
2024-04-28
08:36
[2047693bf0] part of check-in [ff3a60cc12] Use @synchronized over OFMutex in a few places

These places are not super performance critical and the code becomes a
lot more readable.

Actually using @synchronized in ObjFW itself is also a good motivation
to optimize it further. (check-in: [ff3a60cc12] user: js, branch: trunk, size: 17918) [annotate] [blame] [check-ins using] [diff]

2024-04-03
02:16
[ae00d275b0] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 17919) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[3692a5861b] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 17711) [annotate] [blame] [check-ins using] [diff]
2023-10-24
21:12
[223f45375e] part of check-in [84caa26d26] Use GetModuleHandle where possible (check-in: [84caa26d26] user: js, branch: trunk, size: 17711) [annotate] [blame] [check-ins using] [diff]
2023-08-25
17:02
[8868a82344] part of check-in [5f897cae6d] Fix build on Windows (check-in: [5f897cae6d] user: js, branch: trunk, size: 17707) [annotate] [blame] [check-ins using] [diff]
2023-08-23
12:44
[d12ca09b85] part of check-in [05d675eb07] Add OFStrFTime() consistent with OFStrPTime() (check-in: [05d675eb07] user: js, branch: trunk, size: 17807) [annotate] [blame] [check-ins using] [diff]
2023-08-09
12:38
[b7faec4dac] part of check-in [1726744573] Move some classes out of OFDate.m (check-in: [1726744573] user: js, branch: trunk, size: 18193) [annotate] [blame] [check-ins using] [diff]
10:09
[468bf23684] part of check-in [281b494de4] More consistency in naming of private classes (check-in: [281b494de4] user: js, branch: trunk, size: 19092) [annotate] [blame] [check-ins using] [diff]
09:08
[e2edddf9dc] part of check-in [36310f6263] Add OF_SINGLETON_METHODS (check-in: [36310f6263] user: js, branch: trunk, size: 19092) [annotate] [blame] [check-ins using] [diff]
2023-08-08
21:06
[93145b86e5] part of check-in [3865cc5695] Make OFDate a proper class cluster (check-in: [3865cc5695] user: js, branch: trunk, size: 19217) [annotate] [blame] [check-ins using] [diff]
15:32
[abe4f98453] part of check-in [a6f520157a] A few minor cleanups (check-in: [a6f520157a] user: js, branch: trunk, size: 18835) [annotate] [blame] [check-ins using] [diff]
2023-04-10
19:22
[8b8a822187] part of check-in [6ce0093f8d] Remove OFSerialization

While the idea sounds nice that the tag name is the class, this means the
serialization includes whether something is mutable or immutable. This means
doing as much as making something immutable changes the serialization, which
can then cause issues after being deserialized. (check-in: [6ce0093f8d] user: js, branch: trunk, size: 18818) [annotate] [blame] [check-ins using] [diff]

2023-01-06
09:04
[46c76c4869] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 20184) [annotate] [blame] [check-ins using] [diff]
2022-10-18
10:10
[692871b1cf] part of check-in [0cad644045] OFDate: Add encoding attribute to serialization (check-in: [0cad644045] user: js, branch: trunk, size: 20184) [annotate] [blame] [check-ins using] [diff]
2022-08-30
00:48
[37c8e440d0] part of check-in [4ad0c363f3] OFObject: Small API change (check-in: [4ad0c363f3] user: js, branch: trunk, size: 19958) [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
[ebc414dd12] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 19954) [annotate] [blame] [check-ins using] [diff]
2022-01-29
19:24
[8cdea4d9a0] part of check-in [8d027eadf3] Make ObjFW compile for MiNT (check-in: [8d027eadf3] user: js, branch: trunk, size: 19954) [annotate] [blame] [check-ins using] [diff]
2021-04-25
11:05
[aee2dab951] part of check-in [27103855c2] A few last renames (check-in: [27103855c2] user: js, branch: new-naming-convention, size: 19913) [annotate] [blame] [check-ins using] [diff]
2021-04-19
21:54
[d16c6de57b] part of check-in [458420998c] Rename a few more constants (check-in: [458420998c] user: js, branch: new-naming-convention, size: 19905) [annotate] [blame] [check-ins using] [diff]
2021-04-18
21:12
[67965e0984] part of check-in [b06b86d6f9] OF_RETAIN_COUNT_MAX -> OFMaxRetainCount (check-in: [b06b86d6f9] user: js, branch: new-naming-convention, size: 19909) [annotate] [blame] [check-ins using] [diff]
20:51
[13a14ec6e2] part of check-in [35de667566] Rename everything in several smaller files (check-in: [35de667566] user: js, branch: new-naming-convention, size: 19912) [annotate] [blame] [check-ins using] [diff]
15:55
[6379ff603a] part of check-in [7392685ffc] Rename all functions in macros.h (check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 19917) [annotate] [blame] [check-ins using] [diff]
2021-04-17
22:45
[fa3e70f333] part of check-in [498074dab9] Rename of_(re)alloc and add OFFreeMemory (check-in: [498074dab9] user: js, branch: new-naming-convention, size: 19928) [annotate] [blame] [check-ins using] [diff]
16:13
[5b15cfdb96] part of check-in [26aa88fc9b] of_once_t -> OFOnceControl (check-in: [26aa88fc9b] user: js, branch: new-naming-convention, size: 19902) [annotate] [blame] [check-ins using] [diff]
00:51
[5b10481bac] part of check-in [8c0d76f782] of_time_interval_t -> OFTimeInterval (check-in: [8c0d76f782] user: js, branch: new-naming-convention, size: 19863) [annotate] [blame] [check-ins using] [diff]
00:14
[40096ae6a3] part of check-in [61fc389aee] of_comparison_result_t -> OFComparisonResult (check-in: [61fc389aee] user: js, branch: new-naming-convention, size: 19971) [annotate] [blame] [check-ins using] [diff]
2021-04-07
22:20
[c1ec0de284] part of check-in [96ee4795ad] Make GCC happy again (check-in: [96ee4795ad] user: js, branch: trunk, size: 19985) [annotate] [blame] [check-ins using] [diff]
2021-03-07
20:25
[a6b8335541] part of check-in [1b82d3bf4f] *.m: Fold methods into one line where it fits (check-in: [1b82d3bf4f] user: js, branch: trunk, size: 20064) [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
[3377ad9619] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 20073) [annotate] [blame] [check-ins using] [diff]
2020-12-21
22:22
[d8bff9d62d] part of check-in [b70dcd58e9] Fix missing static (check-in: [b70dcd58e9] user: js, branch: trunk, size: 20162) [annotate] [blame] [check-ins using] [diff]
21:29
[3c5313a6f3] part of check-in [9cedc18bb3] Don't send messages in destructors

In our tests, we call objc_exit() using atexit(), so the runtime is
already gone by the time any destructors get called. (check-in: [9cedc18bb3] user: js, branch: trunk, size: 20155) [annotate] [blame] [check-ins using] [diff]

00:36
[6b459e66ba] part of check-in [68214158ee] Add destructors for global mutexes (check-in: [68214158ee] user: js, branch: trunk, size: 20124) [annotate] [blame] [check-ins using] [diff]
2020-11-14
12:23
[2f04475c25] part of check-in [627511b032] Rename of_malloc and of_calloc

The new names should be more accurate. (check-in: [627511b032] user: js, branch: trunk, size: 20085) [annotate] [blame] [check-ins using] [diff]

2020-11-04
23:18
[cf1b1da641] part of check-in [3d8286feee] Remove of_free()

While it makes sense to wrap malloc and calloc to replace the error
checking with exceptions, it does not make sense to wrap free. (check-in: [3d8286feee] user: js, branch: trunk, size: 20087) [annotate] [blame] [check-ins using] [diff]

2020-10-25
23:33
[b60c2c0014] part of check-in [d0ae3bfd6c] Add of_{malloc,calloc,realloc,free} (check-in: [d0ae3bfd6c] user: js, branch: trunk, size: 20093) [annotate] [blame] [check-ins using] [diff]
2020-10-10
21:54
[2789a95e81] part of check-in [ac004e624d] More type cleanups (check-in: [ac004e624d] user: js, branch: trunk, size: 20261) [annotate] [blame] [check-ins using] [diff]
14:27
[f5afc23b94] part of check-in [aeb403a1ed] OFObject: Change type of -[hash] to unsigned long

The internal hash is still 32 bit in most places, but this way, it is at
least not baked into the API and ABI and can be upgraded later, should
that ever be necessary. (check-in: [aeb403a1ed] user: js, branch: trunk, size: 20168) [annotate] [blame] [check-ins using] [diff]

2020-09-29
22:28
[996b4908b2] part of check-in [83f4c928a6] OFDate: Use more autorelease pools (check-in: [83f4c928a6] user: js, branch: trunk, size: 20163) [annotate] [blame] [check-ins using] [diff]
21:36
[19fead2d5c] part of check-in [b4039f9a85] Merge support for tagged pointers (check-in: [b4039f9a85] user: js, branch: trunk, size: 20013) [annotate] [blame] [check-ins using] [diff]
2020-09-27
00:57
[34afa10ebd] part of check-in [cbc09c6e26] Work around bugs in Apple GCC 4.2.1 (check-in: [cbc09c6e26] user: js, branch: trunk, size: 16126) [annotate] [blame] [check-ins using] [diff]
2020-08-30
15:40
[4f38b261b8] part of check-in [ff6eb7b6c3] Merge trunk into branch "tagged-pointers" (check-in: [ff6eb7b6c3] user: js, branch: tagged-pointers, size: 20001) [annotate] [blame] [check-ins using] [diff]
2020-08-11
19:45
[c70c88b347] part of check-in [b6ee372b98] OFString: Rework number parsing API

This solves the old signed vs. unsigned problem and allows for more
bases than just 8, 10 and 16, as well as auto-detection of the base (if
base is 0). (check-in: [b6ee372b98] user: js, branch: trunk, size: 16109) [annotate] [blame] [check-ins using] [diff]

2020-07-25
18:32
[8d4b356936] part of check-in [94c7e3e8f3] OFDate: Also ignore -Wunknown-pragmas

This makes old versions of Clang happy which don't know about
-Wobjc-designated-initializers. (check-in: [94c7e3e8f3] user: js, branch: tagged-pointers, size: 19796) [annotate] [blame] [check-ins using] [diff]

17:24
[1dcb1c7fda] part of check-in [096c2662d6] OFDate: Fix missing #ifdef (check-in: [096c2662d6] user: js, branch: tagged-pointers, size: 19742) [annotate] [blame] [check-ins using] [diff]
16:22
[bec84a8a1e] part of check-in [ad37db9133] OFDate: Use tagged pointers (check-in: [ad37db9133] user: js, branch: tagged-pointers, size: 19676) [annotate] [blame] [check-ins using] [diff]
14:17
[7bc28080b9] part of check-in [33a133cda0] OFDate: Add a designated initializer

This means all other initializers use this initializer, which means all
other initializers can be reused for tagged pointers. (check-in: [33a133cda0] user: js, branch: tagged-pointers, size: 18234) [annotate] [blame] [check-ins using] [diff]

09:58
[81bcdf5816] part of check-in [95830bf78b] OFDate: Prepare for tagged pointers

This replaces all ivar accesses with calls to -[timeIntervalSince1970]
(except for initializers and -[timeIntervalSince1970] itself, which is
the only method accessing an ivar and will be overridden for tagged
pointers), returns a placeholder for +[alloc] and makes +[distantFuture]
and +[distantPast] singletons. (check-in: [95830bf78b] user: js, branch: tagged-pointers, size: 18751) [annotate] [blame] [check-ins using] [diff]

2020-05-16
22:00
[1c4647d564] part of check-in [bce1118807] OFDate: Don't declare _mktime64() with WINAPI (check-in: [bce1118807] user: js, branch: trunk, size: 15972) [annotate] [blame] [check-ins using] [diff]
17:55
[249eca1bb1] part of check-in [005a10d3ec] OFDate: Weakly link _mktime64() (check-in: [005a10d3ec] user: js, branch: trunk, size: 15986) [annotate] [blame] [check-ins using] [diff]
2020-04-19
14:52
[b94395832f] part of check-in [e0459c419c] Reduce usage of unions (check-in: [e0459c419c] user: js, branch: trunk, size: 15579) [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
[ab9874f31d] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 15688) [annotate] [blame] [check-ins using] [diff]
2019-03-12
21:47
[c654921311] part of check-in [8aba9d8a33] OFDate: Avoid property access in OF_BSWAP64_IF_LE (check-in: [8aba9d8a33] user: js, branch: trunk, size: 15685) [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
[aa9496cc90] part of check-in [bceb7ed4c9] Use dot syntax (check-in: [bceb7ed4c9] user: js, branch: trunk, size: 15672) [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
[f76ec7bd46] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 15706) [annotate] [blame] [check-ins using] [diff]
2018-05-26
15:22
[c903c73512] part of check-in [15a59cf9d5] Work around amiga-gcc not having trunc() (check-in: [15a59cf9d5] user: js, branch: trunk, size: 15700) [annotate] [blame] [check-ins using] [diff]
14:46
[a3e5369167] part of check-in [3c20dd5f95] Use trunc() instead of floor() in several places

floor() does not have the desired effect here when the number is
negative. (check-in: [3c20dd5f95] user: js, branch: trunk, size: 15598) [annotate] [blame] [check-ins using] [diff]

14:43
[8b281f77b2] part of check-in [3395923962] MessagePack: Add support for the date extension (check-in: [3395923962] user: js, branch: trunk, size: 15598) [annotate] [blame] [check-ins using] [diff]
2018-05-21
16:14
[6f5701bcb5] part of check-in [2829d3ecbd] OFDate: Avoid useless float -> double cast (check-in: [2829d3ecbd] user: js, branch: trunk, size: 14130) [annotate] [blame] [check-ins using] [diff]
2018-04-22
17:48
[dd9564fb7b] part of check-in [0b07c8fcfa] Make ObjFW compile for AmigaOS 3 (check-in: [0b07c8fcfa] user: js, branch: trunk, size: 14129) [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
[47df94d5a9] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 14151) [annotate] [blame] [check-ins using] [diff]
2017-11-19
12:56
[e550224756] part of check-in [615a9f2eba] Fix compilation with GCC (check-in: [615a9f2eba] user: js, branch: trunk, size: 14128) [annotate] [blame] [check-ins using] [diff]
12:05
[da50e80816] part of check-in [11f24addd7] Fix warnings introduced by OFComparing change

Since OFComparing no longer conforms to OFObject, OFObject needed to be
added at a few places. (check-in: [11f24addd7] user: js, branch: trunk, size: 14134) [annotate] [blame] [check-ins using] [diff]

2017-11-11
23:27
[ed9a79856e] part of check-in [526feacebc] Small optimization for -[isEqual:] (check-in: [526feacebc] user: js, branch: trunk, size: 14124) [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
[f5a435fe1e] part of check-in [2f4e0df8be] Do not use implicit method return types

Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does
not apply to implicit return types. This means that after this commit,
all init methods have a nonnull return type, as they should have. (check-in: [2f4e0df8be] user: js, branch: trunk, size: 14087) [annotate] [blame] [check-ins using] [diff]

2017-09-28
23:02
[fde4276673] part of check-in [2de9660312] Enable -Wnullable-to-nonnull-conversion and adjust (check-in: [2de9660312] user: js, branch: trunk, size: 14039) [annotate] [blame] [check-ins using] [diff]
2017-08-05
10:04
[618922b043] part of check-in [da9b9d7e3b] OFDate: Add -[localMinute]

Some time zones have an offset that is not just full hours. (check-in: [da9b9d7e3b] user: js, branch: trunk, size: 13999) [annotate] [blame] [check-ins using] [diff]

2017-05-14
23:31
[388aebd154] part of check-in [3ba1a97679] OFDate: Don't use inf for -[distant{Future,Past}]

This way, they are no longer special cases. (check-in: [3ba1a97679] user: js, branch: trunk, size: 13948) [annotate] [blame] [check-ins using] [diff]

2017-05-13
22:38
[ada236f2a0] part of check-in [504e13cf00] Reduce retain + autorelease (check-in: [504e13cf00] user: js, branch: trunk, size: 14300) [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
[7b7d9e6713] part of check-in [4af49a13c3] Small code style change

Casts are now written like types in variable declarations. (check-in: [4af49a13c3] user: js, branch: trunk, size: 14438) [annotate] [blame] [check-ins using] [diff]

2017-05-06
19:43
[7fa6b61e6d] part of check-in [cca678886f] Clean up a few includes (check-in: [cca678886f] user: js, branch: trunk, size: 14416) [annotate] [blame] [check-ins using] [diff]
2017-01-09
17:36
[adc1a8da59] part of check-in [44f45c2e35] Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. (check-in: [44f45c2e35] user: js, branch: trunk, size: 14435) [annotate] [blame] [check-ins using] [diff]

2016-10-09
01:06
[99b4552175] part of check-in [9c108208ef] Remove inttypes.h include from OFString.h

This fixes including a non-module header in a module. (check-in: [9c108208ef] user: js, branch: trunk, size: 14429) [annotate] [blame] [check-ins using] [diff]

2016-09-11
22:23
[125716a7f2] part of check-in [804f222e18] OFDate: Throw on trailing garbage (check-in: [804f222e18] user: js, branch: trunk, size: 14427) [annotate] [blame] [check-ins using] [diff]
22:03
[6c84c9ff36] part of check-in [e4439b7ef8] OFDate: Add support for parsing time zones

This adds %z for parsing time zones. Additionally, this also adds %a and
%b. (check-in: [e4439b7ef8] user: js, branch: trunk, size: 14281) [annotate] [blame] [check-ins using] [diff]

2016-05-21
22:19
[7b98bd3de0] part of check-in [7d381048fb] OFDate: Use _mktime64() on Windows (check-in: [7d381048fb] user: js, branch: trunk, size: 13811) [annotate] [blame] [check-ins using] [diff]
2016-02-22
15:25
[d7cb394675] part of check-in [f1765412c7] OFDate: Do not use lrint() for microseconds

It's better to make sure we never round up, as it's better to be a
little bit behind in time than ahead.

This has the nice side effect of fixing the test on the 3DS, as lrint()
is behaving differently there. (check-in: [f1765412c7] user: js, branch: trunk, size: 13690) [annotate] [blame] [check-ins using] [diff]

2016-02-21
15:37
[fa697c55af] part of check-in [e0b9167693] Make use of C99-style for loops (check-in: [e0b9167693] user: js, branch: trunk, size: 13694) [annotate] [blame] [check-ins using] [diff]
2016-01-05
22:00
[69ce62e752] part of check-in [d3158d091f] (u)int_fast*_t -> (u)int*_t

(U)INT_FAST*_MAX is broken on Android, which makes (u)int_fast*_t
dangerous to use while it does not provide any real speed benefit. (check-in: [d3158d091f] user: js, branch: trunk, size: 13699) [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
[eaf0800f6c] part of check-in [cec0f072f8] Update copyright

While at it, also update the mail address. (check-in: [cec0f072f8] user: js, branch: 0.8, size: 13688) [annotate] [blame] [check-ins using] [diff]

00:41
[f2fc0e7161] part of check-in [2a27cf3000] Update copyright

While at it, also update the mail address. (check-in: [2a27cf3000] user: js, branch: trunk, size: 13704) [annotate] [blame] [check-ins using] [diff]

2015-11-02
15:10
[a9bad35577] part of check-in [f585645c21] OFDate: Use wcsftime on Windows

strftime creates strings on Windows that are not valid UTF-8. (check-in: [f585645c21] user: js, branch: 0.8, size: 13684) [annotate] [blame] [check-ins using] [diff]

15:07
[edf5bb546e] part of check-in [b8fc41bf18] OFDate: Use wcsftime on Windows

strftime creates strings on Windows that are not valid UTF-8. (check-in: [b8fc41bf18] user: js, branch: trunk, size: 13700) [annotate] [blame] [check-ins using] [diff]

2015-06-14
13:10
[d311cf12a2] part of check-in [168b748eb8] OFDate: Improve handling of distant past / future (check-in: [168b748eb8] user: js, branch: trunk, size: 13156) [annotate] [blame] [check-ins using] [diff]
2015-05-16
12:44
[e749446c20] part of check-in [989363c9fd] configure: Go back to using -std=gnu*

Using -std=c* causes all kinds of problems with different OSes (some
need a _GNU_SOURCE define when using -std=c*, others simply don't
declare some functions at all due to __STRICT_ANSI__ being defined by
-std=c*). (check-in: [989363c9fd] user: js, branch: trunk, size: 12709) [annotate] [blame] [check-ins using] [diff]

2015-01-03
20:57
[f24e945ba2] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 12705) [annotate] [blame] [check-ins using] [diff]
2014-06-21
21:43
[58d1e162c8] part of check-in [13ee56edf3] Move all macros from OFObject.h to macros.h

This means that OFObject.h imports macros.h now, making it unnecessary
to manually import macros.h in almost every file. And while at it, also
import autorelease.h in OFObject.h, so that this doesn't need to be
manually imported in almost every file as well. (check-in: [13ee56edf3] user: js, branch: trunk, size: 12699) [annotate] [blame] [check-ins using] [diff]

2014-05-15
04:06
[6d1066057e] part of check-in [f178d11592] Remove usage of empty initializer extension (check-in: [f178d11592] user: js, branch: trunk, size: 12742) [annotate] [blame] [check-ins using] [diff]
01:50
[99de8e6f4d] part of check-in [17be12b6e5] Don't define _*_SOURCE

Instead, just define _GNU_SOURCE when __GLIBC__ is defined. After all,
that's the only libc that doesn't work properly without any defines. (check-in: [17be12b6e5] user: js, branch: trunk, size: 12736) [annotate] [blame] [check-ins using] [diff]

2014-02-23
18:51
[64b9648b5e] part of check-in [bfc762c6d8] Add missing #define _POSIX_C_SOURCE 199309L

This also removes #include <time.h> from OFHTTPClientTests, as this
would cause <time.h> to be included without _POSIX_C_SOURCE set to
199309L and thus struct timespec would be missing. (check-in: [bfc762c6d8] user: js, branch: trunk, size: 12795) [annotate] [blame] [check-ins using] [diff]

2014-02-20
15:40
[aa33d9d534] part of check-in [e30269f87e] Restore _POSIX_C_SOURCE

OS X needs this. (check-in: [e30269f87e] user: js, branch: trunk, size: 12785) [annotate] [blame] [check-ins using] [diff]

2014-02-19
11:18
[310cfd1dbb] part of check-in [a3a157e52d] Fix compilation on NetBSD (check-in: [a3a157e52d] user: js, branch: trunk, size: 12763) [annotate] [blame] [check-ins using] [diff]
2014-02-13
23:26
[f7a0f4a2c6] part of check-in [2f5af58573] Use -std=c11 instead of -std=gnu11

Not using -std=gnu11 means _GNU_SOURCE does not get defined anymore,
therefore this commit also adds the required feature defines for glibc.

Additionally, this adds of_strdup in macros.h, as strdup is an
extension. (check-in: [2f5af58573] user: js, branch: trunk, size: 12759) [annotate] [blame] [check-ins using] [diff]

2014-01-16
23:09
[8e1ed139e9] part of check-in [dc31ce3d34] Add of_time_interval_t.

This is used instead for time intervals now instead of doubles. (check-in: [dc31ce3d34] user: js, branch: trunk, size: 12756) [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
[f357555e03] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 12624) [annotate] [blame] [check-ins using] [diff]
2013-12-05
17:48
[34887ea375] part of check-in [fa6496efc7] Make coding style consistent.

A file documenting the coding style will be written soon. This will
hopefully prevent conflicts in the future, such as whether static
functions are written in camelCase or_with_underscores, like was the
case here. (check-in: [fa6496efc7] user: js, branch: trunk, size: 12618) [annotate] [blame] [check-ins using] [diff]

2013-06-22
12:12
[d90c31fbc5] part of check-in [3d16a30f41] Rework exceptions.

This mostly removes the argument for the class in which the exception
occurred. As backtraces were recently added for all platforms, the
passed class does not give any extra information on where the exception
occurred anymore.

This also removes a few other arguments which were not too helpful. In
the past, the idea was to pass as many arguments as possible so that it
is easier to find the origin of the exception. However, as backtraces
are a much better way to find the origin, those are not useful anymore
and just make the exception more cumbersome to use. The rule is now to
only pass arguments that might help in recovering from the exception or
provide information that is otherwise not easily accessible. (check-in: [3d16a30f41] user: js, branch: trunk, size: 12626) [annotate] [blame] [check-ins using] [diff]

2013-03-04
17:20
[ce6ad02444] part of check-in [c5ef582958] Replace BOOL with bool.

The only places where BOOL is left are those where they are required by
the ABI. (check-in: [c5ef582958] user: js, branch: trunk, size: 13486) [annotate] [blame] [check-ins using] [diff]

2013-02-12
18:22
[bc182cbf9d] part of check-in [e40729d406] Prefix all ivars with an underscore. (check-in: [e40729d406] user: js, branch: trunk, size: 13479) [annotate] [blame] [check-ins using] [diff]
2013-01-12
20:53
[a29328b01b] part of check-in [b8ce2359f3] Clean up the feature #ifdef mess. (check-in: [b8ce2359f3] user: js, branch: trunk, size: 13461) [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
[eda5b1ce39] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 13421) [annotate] [blame] [check-ins using] [diff]
2012-12-26
14:10
[7d0fdfaed1] part of check-in [4b637f8516] Add OFSystemInfo. (check-in: [4b637f8516] user: js, branch: trunk, size: 13415) [annotate] [blame] [check-ins using] [diff]
2012-12-06
00:14
[2efbaabb9c] part of check-in [ac51f5f0cf] Improve -[hash] of OFNumber and OFObject. (check-in: [ac51f5f0cf] user: js, branch: trunk, size: 13292) [annotate] [blame] [check-ins using] [diff]
2012-11-23
23:57
[6b0927552c] part of check-in [38dda0d1c7] Allow passing nil to -[earlierDate/laterDate:].

If the argument is nil, it will return the receiver. (check-in: [38dda0d1c7] user: js, branch: trunk, size: 13287) [annotate] [blame] [check-ins using] [diff]

2012-10-28
12:37
[da5cc3c73a] part of check-in [d477b270f3] Fix wrong imports. (check-in: [d477b270f3] user: js, branch: trunk, size: 13163) [annotate] [blame] [check-ins using] [diff]
2012-10-13
21:06
[66b4bbf344] part of check-in [1cb8fee5c3] of_bswap* -> OF_BSWAP*.

This makes it clear that multiple evaluation of parameters is possible. (check-in: [1cb8fee5c3] user: js, branch: trunk, size: 13164) [annotate] [blame] [check-ins using] [diff]

2012-10-09
21:57
[b0a8225024] part of check-in [3f29426e99] Remove wrong byte swaps. (check-in: [3f29426e99] user: js, branch: trunk, size: 13164) [annotate] [blame] [check-ins using] [diff]
15:07
[5aa753194e] part of check-in [fb515e8e24] Make use of instancetype. (check-in: [fb515e8e24] user: js, branch: trunk, size: 13210) [annotate] [blame] [check-ins using] [diff]
2012-09-20
00:05
[8b872152c8] part of check-in [6c16e03d93] Fix conflicting types. (check-in: [6c16e03d93] user: js, branch: trunk, size: 13112) [annotate] [blame] [check-ins using] [diff]
2012-08-10
20:08
[91f4360e05] part of check-in [1255f3a11a] Directly use the runtime's autorelease pools.

This greatly improves performance, as it gets rid of the overhead of
OFAutoreleasePool. (check-in: [1255f3a11a] user: js, branch: trunk, size: 13089) [annotate] [blame] [check-ins using] [diff]

2012-07-31
12:05
[1da3535d97] part of check-in [a6ee2b2065] Slightly changed serialization format.

printf's %a was too fragile to serialize floats and doubles, as it was
behaving differently on different OSes and OS versions. Instead, a hex
representation of the float/double in big endian is used now. While this
is less readable, it is guaranteed to be accurate and always the same. (check-in: [a6ee2b2065] user: js, branch: trunk, size: 13112) [annotate] [blame] [check-ins using] [diff]

2012-07-16
23:49
[c0e29e0a91] part of check-in [417b213d41] Add OF_ENSURE.

This is to be used when the condition includes a statement that needs to
be executed, as with assert, this would not be executed anymore when
NDEBUG is defined. (check-in: [417b213d41] user: js, branch: trunk, size: 12926) [annotate] [blame] [check-ins using] [diff]

2012-07-12
01:28
[2b9c35d972] part of check-in [8892ae9fcc] Don't access isa directly. (check-in: [8892ae9fcc] user: js, branch: trunk, size: 12940) [annotate] [blame] [check-ins using] [diff]
2012-03-01
14:52
[eecbbd56be] part of check-in [20fff11144] Remove dead code. (check-in: [20fff11144] user: js, branch: 0.6, size: 12547) [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
[683d9127f2] part of check-in [ce70e17b38] Update copyright. (check-in: [ce70e17b38] user: js, branch: trunk, size: 12680) [annotate] [blame] [check-ins using] [diff]
2011-11-23
00:21
[fb1894f71c] part of check-in [bfdf9135d3] Add an implementation of strptime. (check-in: [bfdf9135d3] user: js, branch: trunk, size: 12674) [annotate] [blame] [check-ins using] [diff]
2011-11-02
11:20
[7dd968f934] part of check-in [5d102d382e] Fix parsing of struct tm.

Only add an extra day for the current year if it is a leap year and it
is at least March. (check-in: [5d102d382e] user: js, branch: trunk, size: 12644) [annotate] [blame] [check-ins using] [diff]

2011-10-28
22:03
[11883eeeee] part of check-in [f5c8495a33] Fix leap year calculation. (check-in: [f5c8495a33] user: js, branch: trunk, size: 12487) [annotate] [blame] [check-ins using] [diff]
21:30
[396325df1e] part of check-in [4fc7884fb1] Parse struct tm ourselves.

This way, we don't need tm_gmtoff, which we would otherwise need to
adjust the value parsed by mktime, and don't need timegm either. (check-in: [4fc7884fb1] user: js, branch: trunk, size: 12356) [annotate] [blame] [check-ins using] [diff]

2011-09-22
23:25
[03b1ee2aba] part of check-in [e1e7ffa903] Exceptions are now autoreleased.

This is safe as an "exception loop" can't happen, since if allocating
an exception fails, it throws an OFAllocFailedException which is
preallocated and can always be thrown.

So, the worst case would be that an autorelease of an exception fails,
triggering an OFOutOfMemoryException for which there is no memory,
resulting in an OFAllocFailedException to be thrown. (check-in: [e1e7ffa903] user: js, branch: trunk, size: 11529) [annotate] [blame] [check-ins using] [diff]

02:20
[a20bfc7333] part of check-in [45b499fb11] Use rint() instead of nearbyint().

nearbyint() is missing on some systems, even though it is part of C99
and POSIX. (check-in: [45b499fb11] user: js, branch: trunk, size: 11444) [annotate] [blame] [check-ins using] [diff]

2011-09-21
20:11
[715fe07d58] part of check-in [49ec1216cd] More precision for microseconds. (check-in: [49ec1216cd] user: js, branch: trunk, size: 11449) [annotate] [blame] [check-ins using] [diff]
2011-09-19
11:39
[127168a624] part of check-in [6ec0a033bd] Fix calculation of microseconds. (check-in: [6ec0a033bd] user: js, branch: trunk, size: 11434) [annotate] [blame] [check-ins using] [diff]
2011-09-17
20:17
[0cf451e330] part of check-in [c19b2b5726] Remove +[OFThread sleepForTimeInterval:microseconds:].

Also fixes the forgotten change to double in +[sleepForTimeInterval:]
and fixes two warnings due to missing casts from double to uint32_t. (check-in: [c19b2b5726] user: js, branch: trunk, size: 11444) [annotate] [blame] [check-ins using] [diff]

15:20
[177828d4d1] part of check-in [4bef853a72] Change OFDate to use and export doubles. (check-in: [4bef853a72] user: js, branch: trunk, size: 11434) [annotate] [blame] [check-ins using] [diff]
2011-09-16
12:46
[a3ac0da3d9] part of check-in [45fee921e2] Work around glibc being crap - again. (check-in: [45fee921e2] user: js, branch: trunk, size: 14303) [annotate] [blame] [check-ins using] [diff]
2011-09-13
19:34
[0ba7e710c0] part of check-in [42cd6eebb4] Add +[dateWith(Local)DateString:format:]. (check-in: [42cd6eebb4] user: js, branch: trunk, size: 14283) [annotate] [blame] [check-ins using] [diff]
2011-09-12
19:57
[0832a97340] part of check-in [e6fd39d11e] Rename -[cString] to -[UTF8String]. (check-in: [e6fd39d11e] user: js, branch: trunk, size: 12903) [annotate] [blame] [check-ins using] [diff]
2011-09-09
13:35
[5432dcad54] part of check-in [798d9e6320] [pool release] can never throw by convention now. (check-in: [798d9e6320] user: js, branch: trunk, size: 12891) [annotate] [blame] [check-ins using] [diff]
2011-07-09
22:03
[6ee6276845] part of check-in [75dde25734] OFDate: Fix wrong format specifier for microseconds. (check-in: [75dde25734] user: js, branch: trunk, size: 12918) [annotate] [blame] [check-ins using] [diff]
2011-07-06
22:55
[eec5fc6376] part of check-in [7558e235fe] Only allow an OFConstantString as format. (check-in: [7558e235fe] user: js, branch: trunk, size: 12918) [annotate] [blame] [check-ins using] [diff]
2011-06-28
01:51
[884edb1d64] part of check-in [756bb26c98] Change serialization format to be way more readable and shorter. (check-in: [756bb26c98] user: js, branch: trunk, size: 12902) [annotate] [blame] [check-ins using] [diff]
2011-06-26
23:54
[914a225e3e] part of check-in [0952a96827] Add -[{decimal,hexadecimal,float,double}Value] to OFXMLAttribute. (check-in: [0952a96827] user: js, branch: trunk, size: 13077) [annotate] [blame] [check-ins using] [diff]
2011-06-16
01:05
[88ef3a2c1c] part of check-in [6c20d8bff4] of_asprintf: Work around Win32 breaking C99 standard length modifiers. (check-in: [6c20d8bff4] user: js, branch: trunk, size: 13111) [annotate] [blame] [check-ins using] [diff]
2011-06-05
19:27
[4de08470c1] part of check-in [183825f113] Add OFNull class. (check-in: [183825f113] user: js, branch: trunk, size: 13109) [annotate] [blame] [check-ins using] [diff]
2011-06-04
16:02
[9790497193] part of check-in [871fcf6e0b] Add OF_HASH_ADD_INT{16,32,64}. (check-in: [871fcf6e0b] user: js, branch: trunk, size: 13108) [annotate] [blame] [check-ins using] [diff]
15:41
[00ea6c929d] part of check-in [04d0e47000] Add -[hash] to OFDate, as it is required if there's -[isEqual:]. (check-in: [04d0e47000] user: js, branch: 0.5, size: 10839) [annotate] [blame] [check-ins using] [diff]
15:40
[23de019f51] part of check-in [eee0aa1848] Add -[hash] to OFDate, as it is required if there's -[isEqual:]. (check-in: [eee0aa1848] user: js, branch: trunk, size: 13564) [annotate] [blame] [check-ins using] [diff]
13:34
[dd1167284f] part of check-in [675eda4ad3] Remove useless casts. (check-in: [675eda4ad3] user: js, branch: trunk, size: 12911) [annotate] [blame] [check-ins using] [diff]
2011-06-03
15:14
[31c04ee022] part of check-in [dca3061dfc] Add deserialization. (check-in: [dca3061dfc] user: js, branch: trunk, size: 12929) [annotate] [blame] [check-ins using] [diff]
2011-05-29
21:46
[e2944cd61c] part of check-in [4090b00720] Fix 3 typos introduced by style changes. (check-in: [4090b00720] user: js, branch: trunk, size: 11850) [annotate] [blame] [check-ins using] [diff]
2011-05-14
12:26
[1c6620e225] part of check-in [494dca4ae4] Use XML for serialization.

This way, we don't need a new parser and don't use a new format. (check-in: [494dca4ae4] user: js, branch: trunk, size: 11847) [annotate] [blame] [check-ins using] [diff]

2011-05-12
19:58
[879a67dcaa] part of check-in [85ffbaabbb] Style improvements. (check-in: [85ffbaabbb] user: js, branch: trunk, size: 11611) [annotate] [blame] [check-ins using] [diff]
18:45
[7f8c2a4437] part of check-in [0a61ada030] Add -[localYear] to OFDate. (check-in: [0a61ada030] user: js, branch: trunk, size: 11560) [annotate] [blame] [check-ins using] [diff]
18:27
[fed9345cd2] part of check-in [ace6f683f7] Add version to serialization and add serialization to more classes. (check-in: [ace6f683f7] user: js, branch: trunk, size: 11502) [annotate] [blame] [check-ins using] [diff]
2011-04-22
15:48
[97a4e4b983] part of check-in [8c349fdf52] Style improvements in OFDate. (check-in: [8c349fdf52] user: js, branch: trunk, size: 10941) [annotate] [blame] [check-ins using] [diff]
2011-03-24
19:42
[d33bbd220e] part of check-in [cda44767f4] Get rid of OFExceptions.h. (check-in: [cda44767f4] user: js, branch: trunk, size: 10250) [annotate] [blame] [check-ins using] [diff]
2011-03-22
01:03
[ede0d16dc4] part of check-in [b2c9efebcf] Clang is a bit more pedantic with -Wshorten-64-to-32. (check-in: [b2c9efebcf] user: js, branch: trunk, size: 10133) [annotate] [blame] [check-ins using] [diff]
2011-02-02
17:38
[08b8759c25] part of check-in [1dcfbcb479] Work around some annoying compiler bugs. (check-in: [1dcfbcb479] user: js, branch: trunk, size: 10065) [annotate] [blame] [check-ins using] [diff]
2011-01-11
21:56
[d1491b40fa] part of check-in [77e8aff469] Fix a very stupid typo in -[OFDate timeIntervalSinceDate:]. (check-in: [77e8aff469] user: js, branch: trunk, size: 10007) [annotate] [blame] [check-ins using] [diff]
2011-01-03
21:33
[31a8bddc6c] part of check-in [2cc53cf92d] Add a few more methods to OFDate. (check-in: [2cc53cf92d] user: js, branch: trunk, size: 10005) [annotate] [blame] [check-ins using] [diff]
2011-01-01
20:19
[5fce8dec4c] part of check-in [da6b3d26cb] Change license. (check-in: [da6b3d26cb] user: js, branch: trunk, size: 9409) [annotate] [blame] [check-ins using] [diff]
16:12
[a3f6814aa0] part of check-in [c084907c2c] Multiple OFDate changes.

* Don't expose time_t to the user.
* Use better return types for -[minute] etc.
* Add +[dateWithTimeIntervalSinceNow:].
* Add -[dateByAddingTimeInterval:]. (check-in: [c084907c2c] user: js, branch: trunk, size: 9153) [annotate] [blame] [check-ins using] [diff]

14:58
[ba324e05e2] part of check-in [c57f9fe4fb] Add +[distantFuture] and +[distantPast] to OFDate. (check-in: [c57f9fe4fb] user: js, branch: trunk, size: 7037) [annotate] [blame] [check-ins using] [diff]
14:20
[4afab9eb58] part of check-in [65111e7409] Don't include microseconds in -[OFDate description].
This way, it conforms to ISO 8601.
(check-in: [65111e7409] user: js, branch: trunk, size: 6408) [annotate] [blame] [check-ins using] [diff]
2010-12-31
00:30
[4a813140c4] part of check-in [bb9a6fb0da] Add -[earlierDate:] and -[laterDate:] to OFDate. (check-in: [bb9a6fb0da] user: js, branch: trunk, size: 6713) [annotate] [blame] [check-ins using] [diff]
2010-12-29
16:40
[992907b8e8] part of check-in [172e8f39da] Add methods for local time to OFDate. (check-in: [172e8f39da] user: js, branch: trunk, size: 6374) [annotate] [blame] [check-ins using] [diff]
2010-12-28
21:21
[0a3ac06fbe] part of check-in [f9d3f89aff] Add -[stringWithFormat:] to OFDate. (check-in: [f9d3f89aff] user: js, branch: trunk, size: 4579) [annotate] [blame] [check-ins using] [diff]
2010-12-27
22:36
[52c00039c4] part of check-in [b97bb55c50] Add methods to access parts of a date, in GMT/UTC. (check-in: [b97bb55c50] user: js, branch: trunk, size: 4120) [annotate] [blame] [check-ins using] [diff]
2010-12-25
23:29
[6db7ed3798] part of check-in [2d8533a428] Add +[OFFile modificationDateOfFile:] and change -[OFDate description]. (check-in: [2d8533a428] user: js, branch: trunk, size: 2927) [annotate] [blame] [check-ins using] [diff]
19:31
Added: [d05453646d] part of check-in [39cb19595d] Add OFDate. (check-in: [39cb19595d] user: js, branch: trunk, size: 2927) [annotate] [blame] [check-ins using]