rem: size_t length, reserved, quotes, sizeNeeded;
add: size_t length, reserved, quotes;
context: put_string(char **_buffer, size_t *_bufferSize, char *string){	size_t length, reserved, quotes, sizeNeeded;	char *buffer = *_buffer, c;	bool quoted;	if (string == NULL)		return true;	for (length = reserved = quotes = 0; c = string[length]; length++) {		if (c == '"')			quotes++;		else if (is_word_break(c))			reserved++;	}	quoted = reserved || quotes;	// update _bufferSize in any way, so that we can chain several	// of these calls without having to check the return value	// everytime	*_bufferSize -= length + (quoted ? 2 + quotes : 0);	if (*_bufferSize <= 0)		return false;	if (quoted)		*(buffer++) = '"';	for (;c = string[0]; string++) {		if (c == '"')			*(buffer++) = '\\';		*(buffer++) = c;	}	if (quoted)		*(buffer++) = '"';	buffer[0] = '\0';	// update the buffer position	*_buffer = buffer;	return true;}