예제 #1
0
파일: cdata.cpp 프로젝트: Bjoernke/livecode
MCParagraph *MCCdata::getparagraphs()
{
	MCParagraph *paragraphs;
	if (id & COMPACT_PARAGRAPHS)
	{
		paragraphs = NULL;
		char *eptr = (char *)data;
		while ((eptr = strtok(eptr, "\n")) != NULL)
		{
			MCParagraph *tpgptr = new MCParagraph;
			tpgptr->appendto(paragraphs);
			uint2 l = strlen(eptr) + 1;
			char *sptr = new char[l];
			memcpy(sptr, eptr, l);
			tpgptr->settext(sptr, l, false);
			eptr = NULL;
		}
		delete (char *)data;
		data = paragraphs;
		id &= ~COMPACT_PARAGRAPHS;
	}
	if (data == NULL)
		data = paragraphs = new MCParagraph;
	else
		paragraphs = (MCParagraph *)data;
	return paragraphs;
}
예제 #2
0
파일: cdata.cpp 프로젝트: soapdog/livecode
MCParagraph *MCCdata::getparagraphs()
{
	MCParagraph *paragraphs;
	if (id & COMPACT_PARAGRAPHS)
	{
		paragraphs = NULL;
		char *eptr = (char *)data;
		while ((eptr = strtok(eptr, "\n")) != NULL)
		{
			MCParagraph *tpgptr = new (nothrow) MCParagraph;
			tpgptr->appendto(paragraphs);
			uint2 l = strlen(eptr) + 1;
			/* UNCHECKED */ MCAutoPointer<char_t[]> sptr =
				new (nothrow) char_t[l];
			memcpy(sptr.Get(), eptr, l);
			MCAutoStringRef t_string;
			/* UNCHECKED */ MCStringCreateWithNativeChars(sptr.Get(), l,
			                                              &t_string);
			tpgptr->settext(*t_string);
			eptr = NULL;
		}
		delete (char *)data;
		data = paragraphs;
		id &= ~COMPACT_PARAGRAPHS;
	}
	if (data == NULL)
		data = paragraphs = new (nothrow) MCParagraph;
	else
		paragraphs = (MCParagraph *)data;
	return paragraphs;
}