if (prefix) OUTPUTSTR(prefix);
if (pfix) OUTPUTSTR(pfix);
xp_word_wrap(unsigned char *str, int maxColumn, int checkQuoting,			       const char *prefix, int addCRLF){	unsigned char	*beginningOfLine;	int		byteWidth;	int		columnWidth;	int		currentColumn;	unsigned char	*end;	unsigned char	*in;	unsigned char	*lastBreakablePos;	unsigned char	*out;	unsigned char	*p;	unsigned char	*ret;	int32		size;	if (!str)	{		return NULL;	}	size = 1;	ret = (unsigned char *) PR_MALLOC(size);	if (!ret)	{		return NULL;	}	in = str;	out = ret;	beginningOfLine = str;	currentColumn = 0;	lastBreakablePos = NULL;	while (*in)	{		if (checkQuoting && (in == beginningOfLine) && (*in == '>'))		{			while (*in && (*in != CR) && (*in != LF))			{				OUTPUT(*in++);			}			if (*in)			{				NEW_LINE(addCRLF);				if (prefix) OUTPUTSTR(prefix);			}			else			{				/*				 * to prevent writing out line again after				 * the main while loop				 */				beginningOfLine = in;			}		}		else		{			if ((*in == CR) || (*in == LF))			{				if (in != beginningOfLine)				{					p = beginningOfLine;					while (p < in)					{						OUTPUT(*p++);					}				}				NEW_LINE(addCRLF);				if (prefix) OUTPUTSTR(prefix);				continue;			}			byteWidth = PL_strlen((const char *) in);			columnWidth = PL_strlen((const char *) in);			if (currentColumn + columnWidth > (maxColumn +				(((*in == ' ') || (*in == '\t')) ? 1 : 0)))			{				if (lastBreakablePos)				{					p = beginningOfLine;					end = lastBreakablePos - 1;					if ((*end != ' ') && (*end != '\t'))					{						end++;					}					while (p < end)					{						OUTPUT(*p++);					}					if (addCRLF && (*end == ' ' || *end == '\t'))					{						OUTPUT(*end);					}					in = lastBreakablePos;					OUTPUT_NEW_LINE(addCRLF);					if (prefix) OUTPUTSTR(prefix);					continue;				}			}			if ( ((in[0] == ' ') || (in[0] == '\t')) &&					((in[1] != ' ') && (in[1] != '\t')) )			{				lastBreakablePos = in + byteWidth;			}			in += byteWidth;			currentColumn += columnWidth;		}	}	if (in != beginningOfLine)	{		p = beginningOfLine;		while (*p)		{			OUTPUT(*p++);		}	}	OUTPUT(0);	return ret;}