109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
if (i > 0 && stream->cache[i - 1] == '\r')
ret_len--;
ret_str = cfw_strndup(stream->cache, ret_len);
if (ret_str == NULL)
return NULL;
ret = cfw_create(cfw_string, NULL);
if (ret == NULL) {
free(ret_str);
return NULL;
}
cfw_string_set_nocopy(ret, ret_str, ret_len);
if (stream->cache_len > i + 1) {
|
|
|
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
if (i > 0 && stream->cache[i - 1] == '\r')
ret_len--;
ret_str = cfw_strndup(stream->cache, ret_len);
if (ret_str == NULL)
return NULL;
ret = cfw_create(cfw_string, (void*)NULL);
if (ret == NULL) {
free(ret_str);
return NULL;
}
cfw_string_set_nocopy(ret, ret_str, ret_len);
if (stream->cache_len > i + 1) {
|
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
if (ret_len > 0 && stream->cache[ret_len - 1] == '\r')
ret_len--;
ret_str = cfw_strndup(stream->cache, ret_len);
if (ret_str == NULL)
return NULL;
ret = cfw_create(cfw_string, NULL);
if (ret == NULL) {
free(ret_str);
return NULL;
}
cfw_string_set_nocopy(ret, ret_str, ret_len);
free(stream->cache);
|
|
|
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
if (ret_len > 0 && stream->cache[ret_len - 1] == '\r')
ret_len--;
ret_str = cfw_strndup(stream->cache, ret_len);
if (ret_str == NULL)
return NULL;
ret = cfw_create(cfw_string, (void*)NULL);
if (ret == NULL) {
free(ret_str);
return NULL;
}
cfw_string_set_nocopy(ret, ret_str, ret_len);
free(stream->cache);
|
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
memcpy(ret_str, stream->cache,
stream->cache_len);
memcpy(ret_str + stream->cache_len, buf, i);
if (ret_len > 0 && ret_str[ret_len - 1] == '\r')
ret_len--;
ret_str[ret_len] = '\0';
ret = cfw_create(cfw_string, NULL);
if (ret == NULL) {
free(buf);
free(ret_str);
return NULL;
}
cfw_string_set_nocopy(ret, ret_str, ret_len);
|
|
|
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
memcpy(ret_str, stream->cache,
stream->cache_len);
memcpy(ret_str + stream->cache_len, buf, i);
if (ret_len > 0 && ret_str[ret_len - 1] == '\r')
ret_len--;
ret_str[ret_len] = '\0';
ret = cfw_create(cfw_string, (void*)NULL);
if (ret == NULL) {
free(buf);
free(ret_str);
return NULL;
}
cfw_string_set_nocopy(ret, ret_str, ret_len);
|