ObjFW  History of src/OFFile.m of f2e96ebd9a89f730

History of file src/OFFile.m at check-in f2e96ebd9a89f730

2024-04-03
02:16
Change license to LGPLv3 only file: [721f53448e] check-in: [7413a728a7] user: js, branch: trunk, size: 12203 [annotate] [blame] [check-ins using] [diff]
2024-04-01
16:01
Define _LARGEFILE64_SOURCE to 1

Just defining it isn't enough on QNX, it needs to have a value. file: [4b56e559f4] check-in: [fba60b6967] user: js, branch: trunk, size: 11995 [annotate] [blame] [check-ins using] [diff]

2024-01-02
17:17
Update copyright file: [a835c0f98a] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 11993 [annotate] [blame] [check-ins using] [diff]
2023-10-08
11:36
OFFile: Fix closing fd 0 on failed init file: [df6d35b09d] check-in: [416094d227] user: js, branch: trunk, size: 11993 [annotate] [blame] [check-ins using] [diff]
2023-04-24
22:04
Avoid redefinition of _LARGEFILE64_SOURCE file: [11d5a8e0e1] check-in: [0c471da638] user: js, branch: trunk, size: 11955 [annotate] [blame] [check-ins using] [diff]
2023-04-10
15:08
Work around newer amiga-gcc defining Class file: [a8a92fb395] check-in: [abbed5c008] user: js, branch: trunk, size: 11919 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [cc56c9bcdd] check-in: [8939cbdb52] user: js, branch: trunk, size: 11875 [annotate] [blame] [check-ins using] [diff]
2022-11-24
00:21
Rename OFURI to OFIRI file: [e8312c2cba] check-in: [23272e6d43] user: js, branch: trunk, size: 11875 [annotate] [blame] [check-ins using] [diff]
2022-11-16
01:27
Add OFAssert()

This uses the same format as OFEnsure(). file: [c784d31e2e] check-in: [c86b8f10f0] user: js, branch: trunk, size: 11893 [annotate] [blame] [check-ins using] [diff]

2022-09-28
21:40
Rename OFUR{L -> I} in preparation for URI support file: [57c941bba1] check-in: [e7ab06503c] user: js, branch: trunk, size: 11913 [annotate] [blame] [check-ins using] [diff]
2022-08-27
20:58
OFSeekableStream: Add OFSeekWhence enum file: [233f3b1153] check-in: [73f5e3aa84] user: js, branch: trunk, size: 11913 [annotate] [blame] [check-ins using] [diff]
20:39
Rename OFFileOffset -> OFStreamOffset file: [8cbc43a8f0] check-in: [51589c6496] user: js, branch: trunk, size: 11501 [annotate] [blame] [check-ins using] [diff]
2022-07-31
13:55
Add initial socket code for Nintendo Switch

This doesn't work yet (it crashes on recvfrom), so it's not enabled in
configure for now. file: [6bda5c55f7] check-in: [a30a0ab261] user: js, branch: nintendo-switch, size: 11491 [annotate] [blame] [check-ins using] [diff]

2022-07-17
22:49
Add support for files on Nintendo Switch file: [732a34cd87] check-in: [3228d624fe] user: js, branch: nintendo-switch, size: 11597 [annotate] [blame] [check-ins using] [diff]
2022-06-05
09:13
Remove +[OFFile fileWithURL:] file: [0786a18c44] check-in: [e61d7f5eb7] user: js, branch: trunk, size: 11210 [annotate] [blame] [check-ins using] [diff]
2022-04-25
19:09
OFOpenItemFailedException: Remove path file: [ca29a7a55a] check-in: [c62f1c55ac] user: js, branch: trunk, size: 11880 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [6d43aa3c50] check-in: [1a86b8175b] user: js, branch: trunk, size: 11730 [annotate] [blame] [check-ins using] [diff]
2021-05-01
02:42
OFFile: Add missing locking on AmigaOS file: [87a6169ed1] check-in: [d39e22d766] user: js, branch: trunk, size: 11730 [annotate] [blame] [check-ins using] [diff]
02:39
Fix compiling for AmigaOS file: [783bfdb488] check-in: [171f3ba831] user: js, branch: trunk, size: 11678 [annotate] [blame] [check-ins using] [diff]
2021-04-29
23:24
Clean up struct and enum typedefs

With TYPEDEF_HIDES_STRUCT set, Doxygen properly handles anonymous
structs and enums that are typedef'd. file: [e28a8564db] check-in: [2fcf5a3052] user: js, branch: trunk, size: 11676 [annotate] [blame] [check-ins using] [diff]

2021-04-25
16:20
OFSecureData: Move chunkSize into #ifdef file: [cd41ef981c] check-in: [b648c7090f] user: js, branch: trunk, size: 11674 [annotate] [blame] [check-ins using] [diff]
2021-04-19
21:54
Rename a few more constants file: [5d9cdb9d33] check-in: [458420998c] user: js, branch: new-naming-convention, size: 11665 [annotate] [blame] [check-ins using] [diff]
2021-04-17
22:45
Rename of_(re)alloc and add OFFreeMemory file: [642a5fcb6b] check-in: [498074dab9] user: js, branch: new-naming-convention, size: 11686 [annotate] [blame] [check-ins using] [diff]
14:36
of_file_handle_t -> OFFileHandle file: [9e3c48245d] check-in: [94ebfb3671] user: js, branch: new-naming-convention, size: 11665 [annotate] [blame] [check-ins using] [diff]
14:19
of_offset_t -> OFFileOffset file: [797fa66d60] check-in: [e69db838d9] user: js, branch: new-naming-convention, size: 11693 [annotate] [blame] [check-ins using] [diff]
2021-03-07
02:36
Style change: Allow more than 1 argument per line

This is only migrating some places, others will be migrated as they are
touched. file: [1933c9d596] check-in: [a0fd103a0b] user: js, branch: trunk, size: 11690 [annotate] [blame] [check-ins using] [diff]

2021-01-13
18:15
Define _LARGEFILE64_SOURCE where necessary file: [6c6cb9f3db] check-in: [d67734339a] user: js, branch: trunk, size: 11763 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [ea0a6a975e] check-in: [374e1a1bfa] user: js, branch: trunk, size: 11734 [annotate] [blame] [check-ins using] [diff]
2020-11-14
12:23
Rename of_malloc and of_calloc

The new names should be more accurate. file: [23492381a4] check-in: [627511b032] user: js, branch: trunk, size: 11823 [annotate] [blame] [check-ins using] [diff]

2020-11-04
23:18
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. file: [edd10634f5] check-in: [3d8286feee] user: js, branch: trunk, size: 11824 [annotate] [blame] [check-ins using] [diff]

2020-10-25
23:33
Add of_{malloc,calloc,realloc,free} file: [211e9ba002] check-in: [d0ae3bfd6c] user: js, branch: trunk, size: 11830 [annotate] [blame] [check-ins using] [diff]
2020-05-17
14:08
Add support for non-Unicode Windows in all classes file: [14d95d3e71] check-in: [494acfb3e0] user: js, branch: trunk, size: 11920 [annotate] [blame] [check-ins using] [diff]
2020-01-14
00:16
More consistent -[close] behavior

This means refusing to close twice, calling -[close] from -[dealloc] and
not calling -[cancelAsyncRequests].

Calling -[cancelAsyncRequests] in -[close] is too dangerous, as -[close]
gets called by -[dealloc]: If the queue is the last reference to the
object, at the point where -[cancelAsyncRequests] removes it from the
queue, the object will start to deallocate and call into
-[cancelAsyncRequests] again, which is still in the middle of removing
it and now finds itself with an inconsistent state. file: [1f08d5d8ea] check-in: [3b43d51006] user: js, branch: trunk, size: 11853 [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
Update copyright file: [8a16e3648e] check-in: [c7f0229795] user: js, branch: trunk, size: 11756 [annotate] [blame] [check-ins using] [diff]
2019-12-09
00:49
Fix compilation on FreeBSD file: [7066f87c86] check-in: [f39368efd8] user: js, branch: trunk, size: 11753 [annotate] [blame] [check-ins using] [diff]
2019-08-18
20:04
Small optimization for of_once() file: [e53f8eae67] check-in: [47f08207d7] user: js, branch: trunk, size: 11760 [annotate] [blame] [check-ins using] [diff]
2019-08-10
02:06
Clean up the AmigaOS 4 library mess file: [eb447a10e1] check-in: [3292a6fdbc] user: js, branch: trunk, size: 11753 [annotate] [blame] [check-ins using] [diff]
2019-04-21
09:58
Fix compilation on AmigaOS 4 with 53.30 SDK file: [8652eb3c8f] check-in: [50a6ffd4b1] user: js, branch: trunk, size: 12456 [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
Use dot syntax file: [8a440b67d1] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 12436 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [ce755e8542] check-in: [0509d7a844] user: js, branch: trunk, size: 12444 [annotate] [blame] [check-ins using] [diff]
2018-08-17
01:17
AmigaOS 4: Do not use libauto

libauto loads the libraries too late. file: [4a58ba6ba6] check-in: [d71abc5366] user: js, branch: trunk, size: 12438 [annotate] [blame] [check-ins using] [diff]

2018-08-16
22:33
Fix compilation for AmigaOS 4 file: [41ccc7307b] check-in: [7413f500db] user: js, branch: trunk, size: 11754 [annotate] [blame] [check-ins using] [diff]
2018-07-28
18:45
Rename OFLocalization -> OFLocale file: [0bea227955] check-in: [aa0384d1bf] user: js, branch: trunk, size: 11403 [annotate] [blame] [check-ins using] [diff]
2018-05-26
14:49
Remove #define INTUITION_CLASSES_H hack

This has been fixed upstream in amiga-gcc. file: [9880062333] check-in: [b31bd48f90] user: js, branch: trunk, size: 11427 [annotate] [blame] [check-ins using] [diff]

2018-05-13
19:24
platform.h: Rename OF_AMIGAOS3 to OF_AMIGAOS_M68K

The reason for this is that, in theory, this also supports versions
older than 3. file: [994cdd90a3] check-in: [5831626f68] user: js, branch: trunk, size: 11489 [annotate] [blame] [check-ins using] [diff]

2018-04-23
22:19
Use more native AmigaOS APIs on AmigaOS 3 file: [8331bd9e6b] check-in: [b16fc262c0] user: js, branch: trunk, size: 11485 [annotate] [blame] [check-ins using] [diff]
2018-04-22
16:13
runtime: Define BOOL to be the same as bool

As we define the ABI, we can just replace BOOL with bool everywhere,
including in ObjFW itself. For the Apple platforms where BOOL and bool
are different, this is not a problem as BOOL and bool are passed and
returned the same way in the ABI.

This still defines BOOL to bool for compatibility, except on AmigaOS and
Wii, which both have its own BOOL type. file: [77e3c3a21e] check-in: [fe2cbe0021] user: js, branch: trunk, size: 10973 [annotate] [blame] [check-ins using] [diff]

2018-02-25
17:16
No self = [self init…] with self-releasing @catch

When using self = [self init…], this already releases self on an
exception, so using it inside of a @try / @catch block that releases
self would lead to a double-release. file: [1cab20f522] check-in: [81156ee75a] user: js, branch: trunk, size: 11009 [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
Update copyright notice file: [0526f78e96] check-in: [7e5c81e186] user: js, branch: trunk, size: 10920 [annotate] [blame] [check-ins using] [diff]
2017-10-29
01:48
Add +[OFFile fileWithURL:mode:] file: [653ec63148] check-in: [ec1ec2815d] user: js, branch: trunk, size: 10897 [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
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. file: [3ace3f34b9] check-in: [2f4e0df8be] user: js, branch: trunk, size: 10411 [annotate] [blame] [check-ins using] [diff]

2017-09-24
12:24
OFStream: Add support for async writes file: [cd9a853dd9] check-in: [481225349f] user: js, branch: trunk, size: 10369 [annotate] [blame] [check-ins using] [diff]
2017-08-02
20:23
OFFile: Remove the b modes from MorphOS

This was an oversight when the b modes were removed. file: [44dc0ec6b9] check-in: [18d04d2fd4] user: js, branch: trunk, size: 10526 [annotate] [blame] [check-ins using] [diff]

2017-07-22
23:04
OFFile: Simplify mode

This removes "b" for binary and always uses binary, as there is no good
reason to not use binary. file: [afef5a8ffe] check-in: [23e57c5040] user: js, branch: trunk, size: 11065 [annotate] [blame] [check-ins using] [diff]

20:50
Split OFDataArray into OFData and OFMutableData file: [4ff8100249] check-in: [c8f7b90082] user: js, branch: trunk, size: 11687 [annotate] [blame] [check-ins using] [diff]
2017-06-12
22:29
OFWriteFailedException: Add -[bytesWritten]

This allows retrieving the number of bytes already written before the
write failed, allowing to retry without writing data that has already
been written. file: [72431db710] check-in: [2ae01218ef] user: js, branch: trunk, size: 11711 [annotate] [blame] [check-ins using] [diff]

2017-06-11
02:34
OFFile: Rework handle on MorphOS

The previous one didn't work, as the index was part of the handle, but
the index could change. file: [b2ec5b887b] check-in: [a9b2bd12eb] user: js, branch: trunk, size: 11334 [annotate] [blame] [check-ins using] [diff]

2017-06-05
17:36
Clean up exceptions a little

This removes several initializers that omitted the errNo. Removing those
forces to think about whether there is a meaningful errNo to set instead
of just omitting it. file: [89ce8091b7] check-in: [4f36894ce7] user: js, branch: trunk, size: 11089 [annotate] [blame] [check-ins using] [diff]

15:51
OFStream: Don't throw when at end of stream

Instead, let reads return 0 and let writes append after the end. file: [c3e373372b] check-in: [f9cd4f9cab] user: js, branch: trunk, size: 10565 [annotate] [blame] [check-ins using] [diff]

2017-06-04
18:48
Treat MorphOS + ixemul as a separate platform

This reduces the ifdef hell and makes much more sense, as with ixemul,
no native calls are allowed. file: [4cea821d7a] check-in: [c9621825fc] user: js, branch: trunk, size: 10653 [annotate] [blame] [check-ins using] [diff]

18:16
OFFile: Make sure to not leak handles on MorphOS file: [9167fd4ad1] check-in: [1ffd8f9f16] user: js, branch: trunk, size: 10840 [annotate] [blame] [check-ins using] [diff]
17:39
OFFile: Better abstraction of file handle

As a nice side effect, this adds a designated initializer to OFFile. file: [1d857a1710] check-in: [29403cc56a] user: js, branch: trunk, size: 10096 [annotate] [blame] [check-ins using] [diff]

2017-06-03
16:58
Make sockets work on MorphOS + libnix file: [c22a9c9657] check-in: [3cba61d694] user: js, branch: trunk, size: 10382 [annotate] [blame] [check-ins using] [diff]
14:37
OFFileManager: Mask modes to ensure safe modes file: [bdbdd5f20c] check-in: [4175b93242] user: js, branch: trunk, size: 10498 [annotate] [blame] [check-ins using] [diff]
2017-05-30
22:01
MorphOS: Name variable handle instead of fd file: [e2526b07ea] check-in: [c5c3df3abe] user: js, branch: trunk, size: 10701 [annotate] [blame] [check-ins using] [diff]
2017-05-28
21:29
OFFile: Use AmigaDOS API on MorphOS + libnix file: [08f6a9dc6a] check-in: [7a0f290eae] user: js, branch: trunk, size: 9943 [annotate] [blame] [check-ins using] [diff]
2017-05-27
10:33
Add unistd.h wrapper to make things less horrible file: [20677504a4] check-in: [d31ec806ef] user: js, branch: trunk, size: 6661 [annotate] [blame] [check-ins using] [diff]
10:08
Make things work with glibc 2.17 and Clang 3.4.2 file: [cf06285f59] check-in: [ec36a82d68] user: js, branch: trunk, size: 6825 [annotate] [blame] [check-ins using] [diff]
2017-05-22
23:31
Make includes of unistd.h and fcntl.h conditional file: [867ccc3495] check-in: [1287e77e04] user: js, branch: trunk, size: 6682 [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
Small code style change

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

2017-01-09
17:36
Update copyright

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

06:26
Add OFLocalization

This singleton gives access to all things locale, including the ability
to get localized strings.

This also adds the OF_LOCALIZED() macro. Its first argument is an ID for
the string to be localized and its second argument is the fallback
string to be used if it cannot retrieve the localized string. Following
that are variable name / value pairs to be replaced in the localized
string.

Getting translated strings is not implemented yet: Instead, it always
uses the fallback string.

This also switches ofhttp to localized strings. file: [6d0086e491] check-in: [06bcb21fc7] user: js, branch: trunk, size: 6613 [annotate] [blame] [check-ins using] [diff]

2016-06-07
22:56
Add support for reusing OFStreams after close

Right now, this is only useful for OFTCPSocket, as this is the only
class so far not establishing the stream in the init method. However,
this adds the general infrastructure to allow reuse to all subclasses of
OFStream. file: [70abf75d98] check-in: [1de551cb5f] user: js, branch: trunk, size: 6627 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

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

00:41
Update copyright

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

2015-10-19
22:15
Add platform.h & make platform defines consistent file: [1adeb95012] check-in: [1ba08eebc5] user: js, branch: trunk, size: 6606 [annotate] [blame] [check-ins using] [diff]
2015-10-04
11:33
Better length checks for write / send calls file: [8dedd52409] check-in: [ad4e727d5b] user: js, branch: 0.8, size: 26720 [annotate] [blame] [check-ins using] [diff]
11:30
Better length checks for write / send calls file: [b4e2a23749] check-in: [fc73801932] user: js, branch: trunk, size: 6565 [annotate] [blame] [check-ins using] [diff]
2015-10-03
14:24
Add missing include for Nintendo DS file: [768cc854c3] check-in: [da601d2a8a] user: js, branch: 0.8, size: 26644 [annotate] [blame] [check-ins using] [diff]
14:23
Add missing include for Nintendo DS file: [568732b489] check-in: [a83e398ae4] user: js, branch: trunk, size: 6489 [annotate] [blame] [check-ins using] [diff]
2015-08-22
10:57
Move file management to its own class

This makes it possible to add support for delegates for file management
operations and on top makes it easier to add support for file management
operations on URLs. file: [9fe26dc5db] check-in: [f3c452dfef] user: js, branch: trunk, size: 6467 [annotate] [blame] [check-ins using] [diff]

10:15
Fix compilation for an uncommon define combination file: [da1fb6d2d1] check-in: [dec1a50bb0] user: js, branch: 0.8, size: 26622 [annotate] [blame] [check-ins using] [diff]
2015-05-14
09:58
Clean up a few file and socket related checks file: [2c4c5b7c7a] check-in: [b37fdafac1] user: js, branch: trunk, size: 26574 [annotate] [blame] [check-ins using] [diff]
2015-04-11
11:03
Add OFStatItemFailedException file: [9e0e30b9e9] check-in: [37e62aef05] user: js, branch: trunk, size: 26574 [annotate] [blame] [check-ins using] [diff]
11:01
OFOpenFileFailedException: Rename File -> Item file: [30073c03ef] check-in: [ff17b98ab2] user: js, branch: trunk, size: 26756 [annotate] [blame] [check-ins using] [diff]
2015-03-22
10:10
OFFile: Add methods for [ac]time, rename for mtime file: [2b8886285e] check-in: [d6ab9e2c62] user: js, branch: trunk, size: 26887 [annotate] [blame] [check-ins using] [diff]
2015-02-23
00:19
OFSystemInfo: Add methods to check CPU features file: [804562284b] check-in: [a7ebc72ac7] user: js, branch: trunk, size: 26005 [annotate] [blame] [check-ins using] [diff]
2015-02-16
08:39
Explicitly pass errno to exceptions

The old behaviour where the exception would access errno directly on
creation of the exception was very fragile. The two main problems with
it were that sometimes it would pick up an errno even though none had
been set and in other cases that when the exception was created errno
had already been overridden.

This also greatly increases errno handling on Win32, especially in
conjunction with sockets. It can still be improved further, though. file: [43dd30c121] check-in: [62e2de30b9] user: js, branch: trunk, size: 26006 [annotate] [blame] [check-ins using] [diff]

2015-01-17
22:41
Use 64 bit file offsets file: [864c3ff8dd] check-in: [c409a0ec95] user: js, branch: trunk, size: 23530 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [73987ccc68] check-in: [cfd374b906] user: js, branch: trunk, size: 22816 [annotate] [blame] [check-ins using] [diff]
20:42
Introduce and use of_offset_t instead of off_t

The reason for this is that some systems, for example Android, use
32 bits for off_t while having size related fields like st_size as
long long. file: [10eb8531ab] check-in: [46b89b1c8e] user: js, branch: trunk, size: 22810 [annotate] [blame] [check-ins using] [diff]

2014-12-13
16:52
Use CLOEXEC for files and sockets file: [752c197aa2] check-in: [06d2de4571] user: js, branch: trunk, size: 22868 [annotate] [blame] [check-ins using] [diff]
2014-10-04
21:59
Add +[OFSystemInfo native8BitEncoding]

This replaces +[OFString nativeOSEncoding]. file: [aaab12c640] check-in: [ec66e49dca] user: js, branch: trunk, size: 22799 [annotate] [blame] [check-ins using] [diff]

2014-08-06
00:04
Use readdir_r or fall back to readdir + lock file: [10bc91c172] check-in: [a07e980793] user: js, branch: trunk, size: 22626 [annotate] [blame] [check-ins using] [diff]
2014-06-21
21:43
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. file: [282630ecb7] check-in: [13ee56edf3] user: js, branch: trunk, size: 21767 [annotate] [blame] [check-ins using] [diff]

2014-05-29
21:27
Work around __block being used by old glibc file: [5df3b4edba] check-in: [d1e559b643] user: js, branch: trunk, size: 21811 [annotate] [blame] [check-ins using] [diff]
2014-05-15
01:50
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. file: [f31c61d4b5] check-in: [17be12b6e5] user: js, branch: trunk, size: 21720 [annotate] [blame] [check-ins using] [diff]

01:49
OFFile: Add support for the C11 "x" modes file: [70aebcaeb2] check-in: [d7728534a4] user: js, branch: trunk, size: 21870 [annotate] [blame] [check-ins using] [diff]
2014-04-27
19:34
Initial Nintendo DS port file: [8a5121abb8] check-in: [cd0a632472] user: js, branch: trunk, size: 21467 [annotate] [blame] [check-ins using] [diff]
2014-04-26
00:40
Fix a few issues on LLP64 and Win64

LLP64 was mostly fast enumeration using an unsigned long for the state,
which can't store a pointer or a size_t on LLP64. This is now solved by
either throwing an OFOutOfRangeException if the value of the size_t is
bigger than ULONG_MAX or storing the pointer in the extra field (copied
using memcpy, as it's an array of unsigned long, which again would be
too small to store a pointer).

Win64 was mostly Microsoft not being able to decide whether a length is
a size_t, a DWORD, an int or an unsigned int (thus the different types
in places that seem to be almost the same). But since that would not be
confusing enough, a file descriptor is an int if it's for a file, but a
long long if it is for a socket. But of course, for ReadFile and friends
it's a DWORD instead of an int then. file: [c90f56e169] check-in: [4e59d2692f] user: js, branch: trunk, size: 21261 [annotate] [blame] [check-ins using] [diff]

2014-04-14
00:45
Coding style

No functional change intended. file: [fd77a17f17] check-in: [9da9b2b64c] user: js, branch: trunk, size: 20661 [annotate] [blame] [check-ins using] [diff]

2014-02-28
00:41
Make MinGW32 and MinGW-w64 happy at the same time file: [4ef14749f7] check-in: [5ca844dd3b] user: js, branch: trunk, size: 20593 [annotate] [blame] [check-ins using] [diff]
2014-02-23
21:04
Increase _POSIX_C_SOURCE and _XOPEN_SOURCE

FreeBSD needs this. file: [419342bfc8] check-in: [30f95ecdf5] user: js, branch: trunk, size: 20592 [annotate] [blame] [check-ins using] [diff]

2014-02-20
15:40
Restore _POSIX_C_SOURCE

OS X needs this. file: [eec4f1303b] check-in: [e30269f87e] user: js, branch: trunk, size: 20593 [annotate] [blame] [check-ins using] [diff]

2014-02-19
11:18
Fix compilation on NetBSD file: [da59370303] check-in: [a3a157e52d] user: js, branch: trunk, size: 20561 [annotate] [blame] [check-ins using] [diff]
2014-02-13
23:26
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. file: [3c2eb32352] check-in: [2f5af58573] user: js, branch: trunk, size: 20567 [annotate] [blame] [check-ins using] [diff]

2014-02-12
15:45
OFFile: Reset isAtEndOfStream on seek file: [08425887c5] check-in: [0b0950c299] user: js, branch: trunk, size: 20534 [annotate] [blame] [check-ins using] [diff]
03:17
Fix compilation with mingw32 file: [8e458eea83] check-in: [fab07a40ca] user: js, branch: trunk, size: 20508 [annotate] [blame] [check-ins using] [diff]
2014-01-25
17:39
Generalize stream / socket related exceptions

This is in preparation for adding UDP sockets, as UDP sockets and TCP
sockets have no common superclass, as one is stream-oriented while the
other is packet-oriented.

Read and write exceptions are for any object now, as they are useful for
a lot more than just for streams, while the others (bind, listen, etc.)
are for any socket now (the type is id in this case, though, as there is
no common superclass). file: [79751d7dbc] check-in: [8d2a5052fd] user: js, branch: trunk, size: 20463 [annotate] [blame] [check-ins using] [diff]

2014-01-16
23:38
Add +[OFString nativeOSEncoding].

This replaces OF_STRING_ENCODING_NATIVE, as a define was not flexible
enough (determining the native OS encoding at startup was not possible). file: [71494b29e0] check-in: [e54c8c0368] user: js, branch: trunk, size: 20463 [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
Update copyright. file: [39f8827d12] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 20244 [annotate] [blame] [check-ins using] [diff]
2013-12-15
17:57
OFFile: Code cleanup. file: [2af7091a44] check-in: [09d0cd7ac5] user: js, branch: trunk, size: 20238 [annotate] [blame] [check-ins using] [diff]
17:56
OFFile: Require a full path for (sym)links.

This was forgotten when copy and move were changed. file: [e46a299ae7] check-in: [feaf3faad5] user: js, branch: trunk, size: 20519 [annotate] [blame] [check-ins using] [diff]

14:57
OFFile: Clean up the stat mess. file: [17aa806995] check-in: [ce99d76d79] user: js, branch: trunk, size: 20953 [annotate] [blame] [check-ins using] [diff]
2013-12-11
23:53
Add +[OFFile moveItemAtPath:toPath:].

This replaces +[OFFile renameItemAtPath:toPath:] and supports moving
files to different logical devices. file: [95c6f11fb5] check-in: [260391fc1c] user: js, branch: trunk, size: 21737 [annotate] [blame] [check-ins using] [diff]

22:26
+[{copy,rename}ItemAtPath...]: Require full path. file: [726f0b6ba9] check-in: [242fd56445] user: js, branch: trunk, size: 20862 [annotate] [blame] [check-ins using] [diff]
22:19
+[copyFileAtPath:toPath:]: Never override items. file: [d5e09aa3e8] check-in: [ba57490ba6] user: js, branch: trunk, size: 21296 [annotate] [blame] [check-ins using] [diff]
2013-12-09
23:35
+[OFFile removeItemAtPath:]: Remove recursively. file: [4da01770ca] check-in: [3c2d173940] user: js, branch: trunk, size: 21434 [annotate] [blame] [check-ins using] [diff]
23:24
+[OFFile copyFileAtPath:toPath:]: Win32 stuff.

Also slightly decreases memory footprint. file: [952a84375d] check-in: [aefb143a8d] user: js, branch: trunk, size: 20432 [annotate] [blame] [check-ins using] [diff]

22:19
Add +[OFFile copyItemAtPath:toPath:].

This replaces +[OFFile copyFileAtPath:toPath:]. file: [0ee3c33822] check-in: [169f06e1ec] user: js, branch: trunk, size: 20239 [annotate] [blame] [check-ins using] [diff]

22:08
Add +[OFFile symbolicLinkExistsAtPath:]. file: [9780f15c6e] check-in: [f193f3fa8c] user: js, branch: trunk, size: 18083 [annotate] [blame] [check-ins using] [diff]
22:07
Fix createSymbolicLinkAtPath:withDestinationPath:.

The arguments were inverted. file: [0e60eafa58] check-in: [ba2b4661de] user: js, branch: trunk, size: 17758 [annotate] [blame] [check-ins using] [diff]

2013-12-05
17:48
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. file: [c8979c52b6] check-in: [fa6496efc7] user: js, branch: trunk, size: 17758 [annotate] [blame] [check-ins using] [diff]

2013-11-23
01:12
Add OF_INVALID_INIT_METHOD. file: [65676b97b5] check-in: [35dafd5c57] user: js, branch: trunk, size: 17760 [annotate] [blame] [check-ins using] [diff]
2013-09-17
16:12
Work around Android bugs.

Includes:
* Check environ against NULL before using it, since Android sets it to
NULL.
* Cast st_size of struct stat to off_t. Android uses long long for
st_size as its off_t is only 32 bit, but st_size should be off_t
according to POSIX.
* Android's strtod() does not accept 0x, as specified by C99. Thus,
the test is disabled if __ANDROID__ is defined. file: [1f1aa20392] check-in: [c5e7dd679b] user: js, branch: trunk, size: 17848 [annotate] [blame] [check-ins using] [diff]

2013-08-14
19:28
Rename -[initWith*Path:] to -[initWithPath:]. file: [6d3006c532] check-in: [0abd116830] user: js, branch: trunk, size: 17774 [annotate] [blame] [check-ins using] [diff]
19:17
+[stringWithPath:] -> +[pathWithComponents:].

This removes -[initWithPath:,...], so that it's finally possible to use
-[initWithPath:] for many places where a workaround like
-[initWithDirectoryPath:] was required before. file: [e0f0d0594a] check-in: [7c4179ab9b] user: js, branch: trunk, size: 17802 [annotate] [blame] [check-ins using] [diff]

2013-08-12
13:26
Fix OFSeekableStream.

-[seekToOffset:whence:] now works correctly when whence is SEEK_CUR.
Additionally, the new offset is returned now. file: [f060fd2dab] check-in: [d101b6f8b4] user: js, branch: trunk, size: 17665 [annotate] [blame] [check-ins using] [diff]

2013-07-09
22:17
OFFile: Rename +[createSymbolicLinkAtPath:…]. file: [bace7b9989] check-in: [8e48f0d6a4] user: js, branch: trunk, size: 17630 [annotate] [blame] [check-ins using] [diff]
2013-07-08
22:20
OFFile: Check arguments for nil. file: [cbc105e33a] check-in: [b4ebcc74b1] user: js, branch: trunk, size: 17623 [annotate] [blame] [check-ins using] [diff]
2013-06-28
19:15
Rename methods to prevent signature conflicts.

This only affects exceptions. file: [0c8ee7ced6] check-in: [f3654b5cc6] user: js, branch: trunk, size: 16449 [annotate] [blame] [check-ins using] [diff]

2013-06-27
09:38
Improve OFFile API. file: [469d33eabc] check-in: [20a5c3d547] user: js, branch: trunk, size: 16405 [annotate] [blame] [check-ins using] [diff]
2013-06-22
12:12
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. file: [d114dfb10e] check-in: [3d16a30f41] user: js, branch: trunk, size: 16168 [annotate] [blame] [check-ins using] [diff]

2013-04-27
21:51
OFFile: Don't use fchmod().

It's not available on all systems which have chmod(). file: [c7437b1fa1] check-in: [06443a3ae9] user: js, branch: trunk, size: 16694 [annotate] [blame] [check-ins using] [diff]

02:22
Initial Wii port.

Threads and sockets still missing. file: [4b255af215] check-in: [2713b481a1] user: js, branch: trunk, size: 16668 [annotate] [blame] [check-ins using] [diff]

01:26
Add OFStdIOStream.

This is used for of_std{in,out,err} now instead of OFFile. file: [8a99cd99a6] check-in: [085bfc12a0] user: js, branch: trunk, size: 16470 [annotate] [blame] [check-ins using] [diff]

2013-04-26
22:25
Better checks for functions used in OFFile. file: [526afc5ebd] check-in: [c01ed004b0] user: js, branch: trunk, size: 18074 [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
Replace BOOL with bool.

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

2013-02-12
18:22
Prefix all ivars with an underscore. file: [7a0b90bbf0] check-in: [e40729d406] user: js, branch: trunk, size: 18050 [annotate] [blame] [check-ins using] [diff]
2013-02-05
22:24
Move abort() to make old GCCs happy. file: [a15c73b575] check-in: [737a82e1a4] user: js, branch: trunk, size: 18045 [annotate] [blame] [check-ins using] [diff]
2013-01-23
21:52
Never compare to @"", use length instead. file: [981d954d73] check-in: [ea4a43461c] user: js, branch: trunk, size: 18045 [annotate] [blame] [check-ins using] [diff]
2013-01-13
01:24
OFFile: Make use of _wchmod on Windows.

Actually, this seems to do exactly what was done manually with
{Get,Set}FileAttributesW before. file: [7dcc3acfc8] check-in: [06c0c98e78] user: js, branch: trunk, size: 18048 [annotate] [blame] [check-ins using] [diff]

01:19
OFFile: Use _wrename() instead of MoveFileW().

Unlike MoveFileW(), _wrename() sets errno. file: [214e7cf8ea] check-in: [55d99d15e3] user: js, branch: trunk, size: 18503 [annotate] [blame] [check-ins using] [diff]

2013-01-12
20:53
Clean up the feature #ifdef mess. file: [9af0a75ec0] check-in: [b8ce2359f3] user: js, branch: trunk, size: 18505 [annotate] [blame] [check-ins using] [diff]
17:29
Rename *UsingEncoding: to *WithEncoding:.

This reverts 5362941.

Even though *UsingEncoding: is what Foundation uses, *WithEncoding: is
more natural and is more consistent with the rest. Also, this means this
restores it to the API of 0.7. file: [25d73bc7b8] check-in: [9ddd33a258] user: js, branch: trunk, size: 18480 [annotate] [blame] [check-ins using] [diff]

2013-01-09
22:24
Update copyright. file: [c320611d8a] check-in: [813c00ccf0] user: js, branch: trunk, size: 18500 [annotate] [blame] [check-ins using] [diff]
2013-01-08
03:13
Win32: Allow Unicode filenames in file operations. file: [a86cf89293] check-in: [94a9a18106] user: js, branch: trunk, size: 18494 [annotate] [blame] [check-ins using] [diff]
2012-12-26
14:10
Add OFSystemInfo. file: [61775ac9b0] check-in: [4b637f8516] user: js, branch: trunk, size: 18073 [annotate] [blame] [check-ins using] [diff]
2012-12-22
15:37
Add -[doesNotRecognizeSelector:]. file: [b3c8f30967] check-in: [917ce5754c] user: js, branch: trunk, size: 18002 [annotate] [blame] [check-ins using] [diff]
2012-12-15
23:31
OFString: Improved API for getting C strings. file: [136919bb87] check-in: [e2f4c1283c] user: js, branch: trunk, size: 18156 [annotate] [blame] [check-ins using] [diff]
2012-10-29
13:03
Simplify seeking. file: [d382f915ee] check-in: [dc1093e2a5] user: js, branch: trunk, size: 18128 [annotate] [blame] [check-ins using] [diff]
2012-10-26
11:23
Add OFLocking protocol. file: [ffd2b8da5e] check-in: [7c33158c22] user: js, branch: trunk, size: 18938 [annotate] [blame] [check-ins using] [diff]
2012-10-09
15:07
Make use of instancetype. file: [f6bb1bb8aa] check-in: [fb515e8e24] user: js, branch: trunk, size: 18994 [annotate] [blame] [check-ins using] [diff]
2012-09-16
15:43
OFStream: Use lowlevel as prefix instead of _. file: [a11a54fb53] check-in: [61c1932caf] user: js, branch: trunk, size: 18966 [annotate] [blame] [check-ins using] [diff]
2012-09-12
17:27
Split -[OFStream fileDescriptor].

It is now -[fileDescriptorForReading] and -[fileDescriptorForWriting].
The split was necessary as some stream types (e.g. OFProcess) don't have
a single file descriptor, but two. This allows to use those stream types
with OFStreamObserver as well. file: [f9e4a0a447] check-in: [440e95fd4a] user: js, branch: trunk, size: 18903 [annotate] [blame] [check-ins using] [diff]

2012-08-20
08:14
A few renames in OFFile. file: [9e887a707d] check-in: [c492171577] user: js, branch: trunk, size: 19080 [annotate] [blame] [check-ins using] [diff]
2012-08-10
20:08
Directly use the runtime's autorelease pools.

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

2012-07-12
01:28
Don't access isa directly. file: [5fa5942d93] check-in: [8892ae9fcc] user: js, branch: trunk, size: 19132 [annotate] [blame] [check-ins using] [diff]
2012-06-07
12:03
Rework OFStream API. file: [be7cb0fa5d] check-in: [0d4059306a] user: js, branch: trunk, size: 19015 [annotate] [blame] [check-ins using] [diff]
2012-04-20
13:59
Set of_std{in,out,err} in OFFileSingleton.

Referencing subclasses of the current class in +[load] sounds like a bad
idea. file: [69833cd0ab] check-in: [b7cf59038a] user: js, branch: trunk, size: 18992 [annotate] [blame] [check-ins using] [diff]

2012-03-17
22:22
Add +[OFFile createDirectoryAtPath:createParents:]. file: [83d1b0c935] check-in: [79183b7fe9] user: js, branch: trunk, size: 18992 [annotate] [blame] [check-ins using] [diff]
2012-03-08
23:20
Add +[OFFile sizeOfFile:]. file: [7a546860fc] check-in: [6bcf417920] user: js, branch: trunk, size: 18084 [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
Update copyright. file: [73d7458af5] check-in: [ce70e17b38] user: js, branch: trunk, size: 17779 [annotate] [blame] [check-ins using] [diff]
2011-12-21
20:05
Work around a bug with Clang + glibc. file: [8775f73861] check-in: [8ed8b90cd8] user: js, branch: trunk, size: 17773 [annotate] [blame] [check-ins using] [diff]
2011-10-07
11:19
Don't depend on OFMutex in OFFile.

+[load] creates 3 instances of OFFile and thus +[initialize] is also
called. This causes problems if OFMutex has not been registered with
the runtime yet. It had been fixed by changing the order of .o files,
but this is too fragile and thus it has been changed to use of_mutex_t. file: [ec14d28310] check-in: [36434923ad] user: js, branch: trunk, size: 17671 [annotate] [blame] [check-ins using] [diff]

2011-10-05
22:39
Fix error checking on reading in OFFile. file: [d95eac9ee4] check-in: [d533c864ab] user: js, branch: trunk, size: 17262 [annotate] [blame] [check-ins using] [diff]
2011-09-28
14:38
Various small bugfixes. file: [3604f250d5] check-in: [9e82f99f09] user: js, branch: trunk, size: 17245 [annotate] [blame] [check-ins using] [diff]
2011-09-22
23:25
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. file: [c6a9166c97] check-in: [e1e7ffa903] user: js, branch: trunk, size: 17041 [annotate] [blame] [check-ins using] [diff]

2011-09-19
12:34
BOOL naming conventions. file: [689b4e3ed7] check-in: [d43eb177bc] user: js, branch: trunk, size: 16862 [annotate] [blame] [check-ins using] [diff]
2011-09-12
19:57
Rename -[cString] to -[UTF8String]. file: [281aa87c5c] check-in: [e6fd39d11e] user: js, branch: trunk, size: 16870 [annotate] [blame] [check-ins using] [diff]
2011-09-10
20:35
Declare of_std{in,out,err} as OFStream. file: [20426bd041] check-in: [5adb201b41] user: js, branch: trunk, size: 15770 [annotate] [blame] [check-ins using] [diff]
18:36
Remove -[finalize] as ARC will be implemented instead of a GC. file: [478769a586] check-in: [972a3ee40d] user: js, branch: trunk, size: 15764 [annotate] [blame] [check-ins using] [diff]
2011-08-07
16:57
Add -[makeImmutable] to all mutable classes and use it. file: [072b46a026] check-in: [927dbf6e7d] user: js, branch: trunk, size: 15870 [annotate] [blame] [check-ins using] [diff]
2011-08-03
00:30
Make OFArray an abstract class. file: [24d4055b98] check-in: [a855618045] user: js, branch: trunk, size: 15861 [annotate] [blame] [check-ins using] [diff]
2011-07-17
01:55
Define __NO_EXT_QNX in files using unistd.h or fcntl.h.

Without this, the headers try to declare functions that use __block as
an argument name and thus fail to compile when using -fblocks. file: [6ef70328cc] check-in: [59e52af26d] user: js, branch: 0.5, size: 14700 [annotate] [blame] [check-ins using] [diff]

01:55
Define __NO_EXT_QNX in files using unistd.h or fcntl.h.

Without this, the headers try to declare functions that use __block as
an argument name and thus fail to compile when using -fblocks. file: [5aa0f12b35] check-in: [da2701ad14] user: js, branch: trunk, size: 16089 [annotate] [blame] [check-ins using] [diff]

2011-06-20
19:26
Let -[writeNBytes:fromBuffer:] return void. file: [73e673b29a] check-in: [2a2d5c4c47] user: js, branch: trunk, size: 16066 [annotate] [blame] [check-ins using] [diff]
2011-06-16
02:33
-[readNBytes:intoBuffer:] & -[writeNBytes:fromBuffer:] take a void* now. file: [59b3e4b4fd] check-in: [8440a70457] user: js, branch: trunk, size: 16106 [annotate] [blame] [check-ins using] [diff]
2011-06-04
15:27
Add missing include. file: [e9530ebde9] check-in: [eef1a8d4ad] user: js, branch: 0.5, size: 14677 [annotate] [blame] [check-ins using] [diff]
15:26
Add missing include. file: [e3972b8f3a] check-in: [e5017153bb] user: js, branch: trunk, size: 16105 [annotate] [blame] [check-ins using] [diff]
2011-05-29
21:46
Fix 3 typos introduced by style changes. file: [46fd6ac14d] check-in: [4090b00720] user: js, branch: trunk, size: 16085 [annotate] [blame] [check-ins using] [diff]
2011-04-24
21:50
Add -[finalize] to all classes which would require it once we have GC. file: [45991e6e84] check-in: [07b3d0e8de] user: js, branch: trunk, size: 16084 [annotate] [blame] [check-ins using] [diff]
2011-04-22
20:19
More style improvements. file: [521d39c7c0] check-in: [e76a7f52c1] user: js, branch: trunk, size: 15978 [annotate] [blame] [check-ins using] [diff]
18:00
More style improvements. file: [437b42878c] check-in: [4814266280] user: js, branch: trunk, size: 16050 [annotate] [blame] [check-ins using] [diff]
2011-03-29
19:28
Work around a compiler bug. file: [696b6c1432] check-in: [0972a6eb56] user: js, branch: trunk, size: 14657 [annotate] [blame] [check-ins using] [diff]
2011-03-27
18:07
Add +[currentDirectoryPath] to OFFile. file: [7f0444f958] check-in: [ad8c9974bc] user: js, branch: trunk, size: 14628 [annotate] [blame] [check-ins using] [diff]
17:16
Pass offset and whence for OFSeekFailedExceptions. file: [e6cadbff05] check-in: [b940af1dd6] user: js, branch: trunk, size: 14476 [annotate] [blame] [check-ins using] [diff]
2011-03-24
21:17
Pass the stream for stream exceptions. file: [941019ae14] check-in: [7ced2e7b6a] user: js, branch: trunk, size: 14320 [annotate] [blame] [check-ins using] [diff]
19:42
Get rid of OFExceptions.h. file: [dfa9456896] check-in: [cda44767f4] user: js, branch: trunk, size: 14204 [annotate] [blame] [check-ins using] [diff]
2011-03-23
12:58
Make the return type of retainCount unsigned int.
This way, the OFObject protocol is compatible to NSObject.
file: [80c543eb4d] check-in: [8de8df50e9] user: js, branch: trunk, size: 13634 [annotate] [blame] [check-ins using] [diff]
2011-03-22
13:10
Move path methods from OFFile to OFString. file: [3a17566619] check-in: [67e7d1e222] user: js, branch: trunk, size: 13617 [annotate] [blame] [check-ins using] [diff]
2011-02-26
19:40
Use class swizzling as an optimization. file: [23bde42f6d] check-in: [06f539766f] user: js, branch: trunk, size: 16344 [annotate] [blame] [check-ins using] [diff]
14:27
of_std{in,out,err} don't support seeking. file: [9d8d131cd6] check-in: [9160269d5f] user: js, branch: trunk, size: 15858 [annotate] [blame] [check-ins using] [diff]
2011-02-09
19:34
More changes to port ObjFW to PSP. file: [c76530e6dd] check-in: [33f646ce2d] user: js, branch: trunk, size: 15467 [annotate] [blame] [check-ins using] [diff]
18:55
Initial PSP port.

Does compile with --disable-threads --disable-shared, but does not link
yet. file: [ab8f876cd6] check-in: [d230ac577d] user: js, branch: trunk, size: 15396 [annotate] [blame] [check-ins using] [diff]

2011-02-01
22:18
Show milliseconds in of_log output. file: [719e5e7862] check-in: [f3bfba9d06] user: js, branch: trunk, size: 15350 [annotate] [blame] [check-ins using] [diff]
14:27
Add of_log for easy logging to stderr.

Uses OFConstantString* for the format to prevent users from doing stupid
things like of_log([of_stdin readLine]). file: [00f92e27f7] check-in: [17338ef1d5] user: js, branch: trunk, size: 15273 [annotate] [blame] [check-ins using] [diff]

2011-01-01
20:19
Change license. file: [946463e8bc] check-in: [da6b3d26cb] user: js, branch: trunk, size: 14723 [annotate] [blame] [check-ins using] [diff]
2010-12-28
22:18
Make ObjFW work again without threads and without atomic ops. file: [b9fdcbe5c3] check-in: [88c920bd62] user: js, branch: trunk, size: 14467 [annotate] [blame] [check-ins using] [diff]
2010-12-25
23:29
Add +[OFFile modificationDateOfFile:] and change -[OFDate description]. file: [0713e735b4] check-in: [2d8533a428] user: js, branch: trunk, size: 14329 [annotate] [blame] [check-ins using] [diff]
2010-12-23
18:16
Add +[componentsOfPath:] and +[directoryNameOfPath:] to OFFile. file: [527617a46d] check-in: [1e52247065] user: js, branch: trunk, size: 13946 [annotate] [blame] [check-ins using] [diff]
2010-12-20
21:41
Add +[changeToDirectory:] to OFFile. file: [213cb19bf6] check-in: [4cf3648097] user: js, branch: trunk, size: 12275 [annotate] [blame] [check-ins using] [diff]
2010-12-13
23:32
OFFile: Accept usernames and groupnames instead of UIDs and GIDs. file: [71e165dd8a] check-in: [bc3cdb9ee9] user: js, branch: trunk, size: 12115 [annotate] [blame] [check-ins using] [diff]
2010-12-11
20:27
Rename a few exception-related methods. file: [fc04feb323] check-in: [5e44debc07] user: js, branch: trunk, size: 11147 [annotate] [blame] [check-ins using] [diff]
2010-12-10
11:21
Documentation fixes. file: [d71ec31613] check-in: [fada60d54c] user: js, branch: trunk, size: 11133 [annotate] [blame] [check-ins using] [diff]
2010-10-25
23:03
Clean up a lot of code (mostly init methods) and fix a missing rethrow. file: [d06bb2b5c9] check-in: [8a7ca573c4] user: js, branch: trunk, size: 11197 [annotate] [blame] [check-ins using] [diff]
2010-10-24
13:15
Rename a few methods returning BOOL. file: [9c2025e097] check-in: [b6a39dd3d1] user: js, branch: trunk, size: 11142 [annotate] [blame] [check-ins using] [diff]
2010-07-07
20:46
Add -[fileDescriptor] to OFStream. file: [1cd28fbc32] check-in: [9d064462a3] user: js, branch: trunk, size: 11138 [annotate] [blame] [check-ins using] [diff]
2010-05-02
16:16
Win32 compatibility for the new file operations. file: [bf7134d6ef] check-in: [66b3f09fc0] user: js, branch: trunk, size: 11099 [annotate] [blame] [check-ins using] [diff]
2010-04-23
12:50
Improve link, symlink and rename operations in OFFile. file: [963472770a] check-in: [34991b40af] user: js, branch: trunk, size: 10824 [annotate] [blame] [check-ins using] [diff]
2010-04-22
09:05
Add OF_PATH_DELIM to macros.h. file: [8e533c3fc6] check-in: [d931239e25] user: js, branch: trunk, size: 10349 [annotate] [blame] [check-ins using] [diff]
2010-04-21
07:15
Add +[copyFileAtPath:toPath:] and +[deleteDirectoryAtPath:] to OFFile. file: [9c28a1ea8f] check-in: [d92e0d0313] user: js, branch: trunk, size: 10402 [annotate] [blame] [check-ins using] [diff]
2010-04-18
13:53
Add +[lastComponentOfPath:] to OFFile. file: [b686c0a44c] check-in: [2727e4282f] user: js, branch: trunk, size: 9345 [annotate] [blame] [check-ins using] [diff]
2010-04-17
21:43
Better method names for file- and stream-related exceptions. file: [87ff6efbc7] check-in: [1f19713fd3] user: js, branch: trunk, size: 8712 [annotate] [blame] [check-ins using] [diff]
16:55
More consistency in names of file operations. file: [f9f8e25035] check-in: [2eb2172a96] user: js, branch: trunk, size: 8691 [annotate] [blame] [check-ins using] [diff]
15:46
Don't return self where not necessary, return void or something useful. file: [831a79cc1f] check-in: [062a052b50] user: js, branch: trunk, size: 8705 [annotate] [blame] [check-ins using] [diff]
2010-04-15
17:19
Win32 version of OFFile's +[filesInDirectoryAtPath:]. file: [fef21b43fd] check-in: [c4f5d6f491] user: js, branch: trunk, size: 8723 [annotate] [blame] [check-ins using] [diff]
08:43
Add +[createDirectoryAtPath:] to OFFile. file: [b3c752e8de] check-in: [2ef0a01201] user: js, branch: trunk, size: 8009 [annotate] [blame] [check-ins using] [diff]
08:11
Add +[directoryExistsAtPath:] and +[filesInDirectoryAtPath:] to OFFile. file: [9b3c83ec11] check-in: [8d84aa00aa] user: js, branch: trunk, size: 7775 [annotate] [blame] [check-ins using] [diff]
2010-04-11
20:41
Better names for a few file operations. file: [193ba08435] check-in: [5f222e25a7] user: js, branch: trunk, size: 6820 [annotate] [blame] [check-ins using] [diff]
20:12
Add +[fileExistsAtPath:] to OFFile. file: [c32b62d50c] check-in: [ebd1fc0d9a] user: js, branch: trunk, size: 6757 [annotate] [blame] [check-ins using] [diff]
2010-04-10
21:35
Add a few defines that Win32 needs. file: [112f36f53a] check-in: [5dc16f28aa] user: js, branch: trunk, size: 6590 [annotate] [blame] [check-ins using] [diff]
2010-04-09
15:12
Add OFSeekableStream and implement seeking for OFFile. file: [a4ba59f372] check-in: [0890f73f75] user: js, branch: trunk, size: 6505 [annotate] [blame] [check-ins using] [diff]
14:59
Better hiding of the internal OFStream methods. file: [77172f2547] check-in: [2a9e91b67c] user: js, branch: trunk, size: 5998 [annotate] [blame] [check-ins using] [diff]
00:55
Add an optional write cache to OFStream. file: [a377c2db9b] check-in: [66c1d7718d] user: js, branch: trunk, size: 6039 [annotate] [blame] [check-ins using] [diff]
2010-04-03
01:47
Pass a default mode to open(). file: [d214a82c1c] check-in: [0c99c954e2] user: js, branch: trunk, size: 6022 [annotate] [blame] [check-ins using] [diff]
2010-04-02
15:58
Use open() / read() / write() instead of fopen() / fread() / fwrite().

This fixes reading from stdin. file: [cdb8ca685b] check-in: [5f4f207266] user: js, branch: trunk, size: 5948 [annotate] [blame] [check-ins using] [diff]

2010-03-15
14:10
Prevent double-closing in OFFile. file: [778d1b4971] check-in: [08769cce4e] user: js, branch: trunk, size: 4914 [annotate] [blame] [check-ins using] [diff]
2010-02-19
16:36
Update copyright. file: [9b7c94885a] check-in: [42886185fd] user: js, branch: trunk, size: 4896 [annotate] [blame] [check-ins using] [diff]
2010-02-11
14:58
Documentation improvements. file: [8e229b8d40] check-in: [72caeab860] user: js, branch: trunk, size: 4896 [annotate] [blame] [check-ins using] [diff]
2010-01-30
14:26
Don't define methods unavailable on Windows. file: [95e5eb4c36] check-in: [c9e9ea561c] user: js, branch: trunk, size: 4791 [annotate] [blame] [check-ins using] [diff]
2010-01-29
15:21
Make retain count int32_t. file: [f0b3a13578] check-in: [b725e983ae] user: js, branch: trunk, size: 5100 [annotate] [blame] [check-ins using] [diff]
2010-01-25
15:22
Make retain counter 32 bit due to atomic ops being 32 bit. file: [5dcf811aa9] check-in: [831ebcd4f5] user: js, branch: trunk, size: 5102 [annotate] [blame] [check-ins using] [diff]
2010-01-16
15:05
Reduce dependencies between headers. file: [cfa00f6d8b] check-in: [1433aef0d0] user: js, branch: trunk, size: 5098 [annotate] [blame] [check-ins using] [diff]
2009-12-23
22:38
Throw an exception when trying to use chown on Windows. file: [456747264b] check-in: [6cd75d4826] user: js, branch: trunk, size: 5077 [annotate] [blame] [check-ins using] [diff]
2009-12-03
18:50
Make OFStream caching invisible to the programmer. file: [ea32f092c7] check-in: [fc0b2500b9] user: js, branch: trunk, size: 4989 [annotate] [blame] [check-ins using] [diff]
2009-11-15
01:39
Improve OFFile and add a few new exceptions. file: [9c9c1d09c4] check-in: [5cb7f93a1f] user: js, branch: trunk, size: 5533 [annotate] [blame] [check-ins using] [diff]
2009-11-09
22:45
Rename libobjfw to ObjFW. file: [9f7f9d7344] check-in: [a3cc34b139] user: js, branch: trunk, size: 4859 [annotate] [blame] [check-ins using] [diff]
2009-10-15
20:38
Full Unicode support for OFMutableString's -[upper] and -[lower]. file: [12d8e10088] check-in: [0480a27d5e] user: js, branch: trunk, size: 4862 [annotate] [blame] [check-ins using] [diff]
2009-09-27
14:23
Add -[initWithFilePointer:] to OFFile. file: [eabe2a45bb] check-in: [3cf27e00c4] user: js, branch: trunk, size: 4869 [annotate] [blame] [check-ins using] [diff]
2009-08-16
13:28
Add OF{Link,Symlink}FailedException. file: [dcca7be75f] check-in: [35d9dbcd6f] user: js, branch: trunk, size: 4736 [annotate] [blame] [check-ins using] [diff]
2009-07-19
17:02
Prevent one more wrong call to an init method. file: [b0b9385012] check-in: [95aa3a147e] user: js, branch: trunk, size: 4361 [annotate] [blame] [check-ins using] [diff]
16:01
Prevent calling -[init] if parameters are required. file: [e3abf581b8] check-in: [42e16978dc] user: js, branch: trunk, size: 4218 [annotate] [blame] [check-ins using] [diff]
14:05
Rename andFoo: to foo: in all methods. file: [4d9a49c8b5] check-in: [4eae61a78f] user: js, branch: trunk, size: 4125 [annotate] [blame] [check-ins using] [diff]
2009-06-15
19:22
Remove whitespaces at EOL. file: [9a531e1b8b] check-in: [172e662b71] user: js, branch: trunk, size: 4153 [annotate] [blame] [check-ins using] [diff]
2009-06-06
14:10
Add OFFile singletons for stdin, stdout and stderr. file: [5ce65f3f89] check-in: [f285996b91] user: js, branch: trunk, size: 4154 [annotate] [blame] [check-ins using] [diff]
2009-06-02
19:25
Improve -[readLine] in OFStream. file: [c2c38ca999] check-in: [f1dae95070] user: js, branch: trunk, size: 3153 [annotate] [blame] [check-ins using] [diff]
2009-05-29
09:28
Always use [self alloc]. file: [a323ff36d0] check-in: [282aadb9df] user: js, branch: trunk, size: 3151 [annotate] [blame] [check-ins using] [diff]
2009-05-24
18:04
Always use #include "config.h" instead of #import "config.h". file: [2ae784c3e4] check-in: [94ea6848a8] user: js, branch: trunk, size: 3153 [annotate] [blame] [check-ins using] [diff]
2009-05-15
20:01
Use OFString as much as possible. file: [c917d0f228] check-in: [67066be692] user: js, branch: trunk, size: 3152 [annotate] [blame] [check-ins using] [diff]
2009-05-13
20:31
Rename - free to - (void)dealloc. file: [57318981b1] check-in: [9e6dd00ef5] user: js, branch: trunk, size: 3084 [annotate] [blame] [check-ins using] [diff]
2009-04-22
22:17
Better handling of closed and ended files in OFFile. file: [3e41bb8976] check-in: [b13a0f08e7] user: js, branch: trunk, size: 3076 [annotate] [blame] [check-ins using] [diff]
2009-04-21
17:16
The if ((self = [super init])) construct isn't needed anymore. file: [164c881033] check-in: [d87df02e8b] user: js, branch: trunk, size: 2923 [annotate] [blame] [check-ins using] [diff]
2009-04-19
20:34
Use isa instead of [self class].

Since we don't use Object anymore and define isa in OFObject, we can
rely on it. file: [de67b84ef2] check-in: [139591afe1] user: js, branch: trunk, size: 2939 [annotate] [blame] [check-ins using] [diff]

2009-04-09
13:55
Use char* instead of uint8_t* for OFStreams and OFHashes.
This way, less casts are needed when using C libraries.
file: [08cbbc44cd] check-in: [722b6213c0] user: js, branch: trunk, size: 2966 [annotate] [blame] [check-ins using] [diff]
2009-04-07
15:44
Returning newly allocated buffers on reading is a bad idea.
The programmer might forget that some of the data is arbitrary because
there was less data than he requested which might lead to serious
problems.
file: [2951d584dc] check-in: [09e6b3fc7b] user: js, branch: trunk, size: 2994 [annotate] [blame] [check-ins using] [diff]
2009-02-14
17:26
Always use #include for libc headers due to glibc being broken.
Do the same for win32 headers, just in case. They should work with
#import, but you never know ;).
file: [68e15040b2] check-in: [029511474c] user: js, branch: trunk, size: 3393 [annotate] [blame] [check-ins using] [diff]
2009-01-24
20:28
[self alloc] isn't a good idea with the new API.
The reason is that a derived class, for example derived from OFArray,
would not return an OFArray when + arrayWithItemSize is called.
file: [637ff38638] check-in: [7feac9e596] user: js, branch: trunk, size: 3388 [annotate] [blame] [check-ins using] [diff]
15:24
Adjust API to introduction of OFAutoreleasePool. file: [f8ec01874b] check-in: [1496808b81] user: js, branch: trunk, size: 3386 [annotate] [blame] [check-ins using] [diff]
2009-01-05
00:59
Update copyright. file: [3489cc9954] check-in: [f1b749d113] user: js, branch: trunk, size: 3318 [annotate] [blame] [check-ins using] [diff]
2009-01-04
01:40
Clean up exceptions. file: [1e28d0f42f] check-in: [bb1fe89478] user: js, branch: trunk, size: 3311 [annotate] [blame] [check-ins using] [diff]
2008-12-23
03:59
Remove spaces and tabs at end of line. file: [d2aa51b6f7] check-in: [7d7b89d775] user: js, branch: trunk, size: 3237 [annotate] [blame] [check-ins using] [diff]
2008-12-14
02:01
Define functions unavailable on win32 and nop them there. file: [ade2f827ca] check-in: [61bbbc20ff] user: js, branch: trunk, size: 3238 [annotate] [blame] [check-ins using] [diff]
2008-12-13
19:25
Initial attempt to port to win32. file: [8a9dff998b] check-in: [142572f90b] user: js, branch: trunk, size: 3279 [annotate] [blame] [check-ins using] [diff]
2008-12-11
13:43
Remove - close from OFStream protocol.
The reason is that closing a file isn't too useful, because an OFFile
object can't be reused, whereas an OFTCPSocket can. So only the
OFTCPSocket should have closed. Plus, we don't need to handle the case
that someone tried to read from / write to a closed OFFile.
file: [e3b833eee4] check-in: [c83137e7cd] user: js, branch: trunk, size: 3186 [annotate] [blame] [check-ins using] [diff]
2008-12-10
17:53
Always use [self alloc] in + new.
This way, derivated classes are not forced to always override + new.
file: [0b28d6c4b4] check-in: [f48ee629e3] user: js, branch: trunk, size: 3280 [annotate] [blame] [check-ins using] [diff]
2008-12-09
17:36
Don't use - raise anymore, but @throw.
- raise was only because at first, exceptions were self-raising, but
this was later changed so they had to be risen manually. - rise was
introduced for that, but it would've been better to use @throw
directly. Thus, this change now.
file: [88173cbff8] check-in: [d88aec8e95] user: js, branch: trunk, size: 3282 [annotate] [blame] [check-ins using] [diff]
2008-12-07
10:35
Add - close to OFStream. file: [249d4d336a] check-in: [657fae20a4] user: js, branch: trunk, size: 3291 [annotate] [blame] [check-ins using] [diff]
03:06
Remove writeWideCString as that's a bad idea.

Endianess, size etc. may differ from system to system. While this might
be ok when writing files that are only read local again, this is
definitely not ok with sockets. So it's better to remove it from the
OFStream protocol. file: [44934e3ad8] check-in: [70874cf3c5] user: js, branch: trunk, size: 3196 [annotate] [blame] [check-ins using] [diff]

02:59
glibc is broken once again. I guess no other libc is that broken... file: [9d35a4ce1a] check-in: [6d069e2a83] user: js, branch: trunk, size: 3417 [annotate] [blame] [check-ins using] [diff]
02:53
Add writeCString and writeWideCString to OFStream. file: [5d576a9538] check-in: [6ed7c33611] user: js, branch: trunk, size: 3377 [annotate] [blame] [check-ins using] [diff]
02:35
Add inital OFSocket class. file: [ecb56994e1] check-in: [ba7219b1b6] user: js, branch: trunk, size: 3023 [annotate] [blame] [check-ins using] [diff]
2008-12-06
15:22
Change OFFile API, add OFStream protocol. file: [af02f63c5b] check-in: [f32e7ed452] user: js, branch: trunk, size: 3042 [annotate] [blame] [check-ins using] [diff]
2008-11-30
15:17
Clean up imports. file: [1bbfec1dfa] check-in: [4b8666fe15] user: js, branch: trunk, size: 2691 [annotate] [blame] [check-ins using] [diff]
2008-11-06
16:06
Even more documentation. file: [c1131eae69] check-in: [89c545c3e9] user: js, branch: trunk, size: 2709 [annotate] [blame] [check-ins using] [diff]
2008-11-01
22:20
Some exception stuff & withSize -> ofSize for OFObject. file: [6b6d44b5bf] check-in: [9944a6f8a4] user: js, branch: trunk, size: 2614 [annotate] [blame] [check-ins using] [diff]
2008-10-29
17:29
Add getMemForNItems:withSize: & resizeMem:toNItems:withSize: in OFObject

Additionally, interface for OFArray. file: [b1dd678aec] check-in: [49859c2bcc] user: js, branch: trunk, size: 2651 [annotate] [blame] [check-ins using] [diff]

2008-10-28
19:00
Better overflow checking. file: [d80678a165] check-in: [2aaab788cc] user: js, branch: trunk, size: 2787 [annotate] [blame] [check-ins using] [diff]
2008-10-26
02:45
Add OFHashes. Only MD5 so far. file: [2d25231c0e] check-in: [9a0cc3bc23] user: js, branch: trunk, size: 2846 [annotate] [blame] [check-ins using] [diff]
2008-10-25
23:59
Cleaner return in atEndOfFile. file: [4069e4ea59] check-in: [14c872dbfd] user: js, branch: trunk, size: 2724 [annotate] [blame] [check-ins using] [diff]
2008-10-09
00:25
Multiple changes, see details.

* Use config.h.
* Check whether to use sel_get_name or sel_getName.
* Rename freeWithData to freeIncludingData. file: [2de0039279] check-in: [7a49441656] user: js, branch: trunk, size: 2706 [annotate] [blame] [check-ins using] [diff]

2008-10-08
23:15
Multiple changes, see details.

* OFObject getMem: renamd to getMemWithSize:.
* OFString compare: renamed to compareTo:.
* Exceptions don't throw itself anymore.
* Exceptions include an error string now.
* Exceptions now got raise and string.
* New methods for OFFile:
* changeModeOfFile:toMode:
* changeOwnerOfFile:toOwner:andGroup:
* delete:
* link:to:
* symlink:to:
* OFFile isEndOfFile renamd to atEndOfFile
* OFNotImplementedExeception newWithObject:andMethod renamed to
newWithObject:andSelector:.
* Tests updated accordingly.
* TODO list added. file: [ab4b7dd898] check-in: [b597d49f43] user: js, branch: trunk, size: 2686 [annotate] [blame] [check-ins using] [diff]

2008-10-07
22:04
#import <stdint.h> was missing. file: [485706b49a] check-in: [1c99e71818] user: js, branch: trunk, size: 1943 [annotate] [blame] [check-ins using] [diff]
21:25
OFFile improvements. file: [fca767783e] check-in: [6072f61f83] user: js, branch: trunk, size: 1924 [annotate] [blame] [check-ins using] [diff]
17:18
Added: Added OFFile. file: [a6ec8db29d] check-in: [71119a787b] user: js, branch: trunk, size: 1240 [annotate] [blame] [check-ins using]