1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
-
+
-
|
/*
* Copyright (c) 2008-2022 Jonathan Schleifer <js@nil.im>
* Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* Alternatively, it may be distributed under the terms of the GNU General
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#define __NO_EXT_QNX
#include "config.h"
#include <assert.h>
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_FCNTL_H
|
| ︙ | | |
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
|
{
OFFreeMemory(_readBufferMemory);
OFFreeMemory(_writeBuffer);
[super dealloc];
}
- (bool)lowlevelIsAtEndOfStream
{
OF_UNRECOGNIZED_SELECTOR
}
- (size_t)lowlevelReadIntoBuffer: (void *)buffer length: (size_t)length
{
OF_UNRECOGNIZED_SELECTOR
}
- (size_t)lowlevelWriteBuffer: (const void *)buffer length: (size_t)length
{
OF_UNRECOGNIZED_SELECTOR
}
- (bool)lowlevelIsAtEndOfStream
{
OF_UNRECOGNIZED_SELECTOR
}
- (bool)lowlevelHasDataInReadBuffer
{
return false;
}
- (id)copy
{
return [self retain];
}
- (bool)isAtEndOfStream
|
| ︙ | | |
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
|
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
|
-
+
|
if (j == delimiterLength || _readBuffer[i] == '\0') {
if (_readBuffer[i] == '\0')
delimiterLength = 1;
ret = [OFString
stringWithCString: _readBuffer
encoding: encoding
length: i + 1 - delimiterLength];
length: i + 1 - delimiterLength];
_readBuffer += i + 1;
_readBufferLength -= i + 1;
_waitingForDelimiter = false;
return ret;
}
|
| ︙ | | |
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
|
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
|
-
+
|
} @finally {
free(UTF8String);
}
}
- (bool)hasDataInReadBuffer
{
return (_readBufferLength > 0);
return (_readBufferLength > 0 || [self lowlevelHasDataInReadBuffer]);
}
- (bool)canBlock
{
return _canBlock;
}
|
| ︙ | | |