⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtf.c

📁 Unreal irc 服务器源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
				if (reverse)					size += 15;				if (bold || uline || incolor || inbg || reverse)					size++;				bold = uline = incolor = inbg = reverse = 0;				size +=6;				continue;			}		}		else if (*buf == '\n')		{			if (bold)				size += 3;			if (uline)				size += 7;			if (incolor && !reverse)				size += 4;			if (inbg && !reverse)				size += 11;			if (reverse)				size += 15;			if (bold || uline || incolor || inbg || reverse)				size++;			bold = uline = incolor = inbg = reverse = 0;			size +=6;			continue;			}		else if (*buf == '\2')		{			if (bold)				size += 4;			else				size += 3;			bold = !bold;			continue;		}		else if (*buf == '\3' && reverse)		{			if (*(buf+1) && isdigit(*(buf+1)))			{				++buf;				if (*(buf+1) && isdigit(*(buf+1)))					++buf;				if (*(buf+1) && *(buf+1) == ',')				{					if (*(buf+2) && isdigit(*(buf+2)))					{						buf+=2;						if (*(buf+1) && isdigit(*(buf+1)))							++buf;					}				}			}			continue;		}		else if (*buf == '\3' && !reverse)		{			size += 3;			if (*(buf+1) && !isdigit(*(buf+1)))			{				incolor = 0;				size++;				if (inbg)				{					inbg = 0;					size += 11;				}			}			else if (*(buf+1))			{				unsigned char color[3];				int number;				color[0] = *(++buf);				color[1] = 0;				if (*(buf+1) && isdigit(*(buf+1)))					color[1] = *(++buf);				color[2] = 0;				number = atoi(color);				if (number == 99 || number == 1) 					size += 2;				else if (number == 0) 					size++;				else  {					number %= 16;					_itoa(number, color, 10);					size += strlen(color);				}				color[2] = 0;				number = atoi(color);				if (*(buf+1) && *(buf+1) == ',')				{					if (*(buf+2) && isdigit(*(buf+2)))					{						size += 10;						buf++;						color[0] = *(++buf);						color[1] = 0;						if (*(buf+1) && isdigit(*(buf+1)))							color[1] = *(++buf);						color[2] = 0;						number = atoi(color);						if (number == 1)							size += 2;						else if (number == 0 || number == 99)							size++;						else						{							number %= 16;							_itoa(number, color, 10);							size += strlen(color);						}						inbg = 1;					}				}				incolor = 1;			}			size++;			continue;		}		else if (*buf == '\17')		{			if (bold)				size += 3;			if (uline)				size += 7;			if (incolor && !reverse)				size += 4;			if (inbg && !reverse)				size += 11;			if (reverse)				size += 15;			if (bold || uline || incolor || inbg || reverse)				size++;			bold = uline = incolor = inbg = reverse = 0;			continue;		}		else if (*buf == '\26')		{			if (reverse)				size += 16;			else				size += 17;			reverse = !reverse;			continue;		}		else if (*buf == '\37')		{			if (uline)				size += 8;			else				size += 4;			uline = !uline;			continue;		}		size++;	}				size += strlen("{\\rtf1\\ansi\\ansicpg1252\\deff0{\\fonttbl{\\f0\\fmodern\\fprq1\\"		"fcharset0 Fixedsys;}}\r\n"		MIRC_COLORS		"\\viewkind4\\uc1\\pard\\lang1033\\f0\\fs20")+1;	return (size);}/* Converts a string containing IRC codes to RTF * Parameters: *  buffer - The input buffer containing IRC codes *  string - The output buffer in RTF */void IRCToRTF(unsigned char *buffer, unsigned char *string) {	unsigned char *tmp;	int i = 0;	short bold = 0, uline = 0, incolor = 0, inbg = 0, reverse = 0;	sprintf(string, "{\\rtf1\\ansi\\ansicpg1252\\deff0{\\fonttbl{\\f0\\fmodern\\fprq1\\"		"fcharset0 Fixedsys;}}\r\n"		MIRC_COLORS		"\\viewkind4\\uc1\\pard\\lang1033\\f0\\fs20");	i = strlen(string);	for (tmp = buffer; *tmp; tmp++)	{		if (*tmp == '{')		{			strcat(string, "\\{");			i+=2;			continue;		}		else if (*tmp == '}')		{			strcat(string, "\\}");			i+=2;			continue;		}		else if (*tmp == '\\')		{			strcat(string, "\\\\");			i+=2;			continue;		}		else if (*tmp == '\r')		{			if (*(tmp+1) && *(tmp+1) == '\n')			{				tmp++;				if (bold)				{					strcat(string, "\\b0 ");					i+=3;				}				if (uline)				{					strcat(string, "\\ulnone");					i+=7;				}				if (incolor && !reverse)				{					strcat(string, "\\cf0");					i+=4;				}				if (inbg && !reverse)				{					strcat(string, "\\highlight0");					i +=11;				}				if (reverse) {					strcat(string, "\\cf0\\highlight0");					i += 15;				}				if (bold || uline || incolor || inbg || reverse)					string[i++] = ' ';				bold = uline = incolor = inbg = reverse = 0;				strcat(string, "\\par\r\n");				i +=6;			}			else				string[i++]='\r';			continue;		}		else if (*tmp == '\n')		{			if (bold)			{				strcat(string, "\\b0 ");				i+=3;			}			if (uline)			{				strcat(string, "\\ulnone");				i+=7;			}			if (incolor && !reverse)			{				strcat(string, "\\cf0");				i+=4;			}			if (inbg && !reverse)			{				strcat(string, "\\highlight0");				i +=11;			}			if (reverse) {				strcat(string, "\\cf0\\highlight0");				i += 15;			}			if (bold || uline || incolor || inbg || reverse)				string[i++] = ' ';			bold = uline = incolor = inbg = reverse = 0;			strcat(string, "\\par\r\n");			i +=6;			continue;		}		else if (*tmp == '\2')		{			if (bold)			{				strcat(string, "\\b0 ");				i+=4;			}			else			{				strcat(string, "\\b ");				i+=3;			}			bold = !bold;			continue;		}		else if (*tmp == '\3' && reverse)		{			if (*(tmp+1) && isdigit(*(tmp+1)))			{				++tmp;				if (*(tmp+1) && isdigit(*(tmp+1)))					++tmp;				if (*(tmp+1) && *(tmp+1) == ',')				{					if (*(tmp+2) && isdigit(*(tmp+2)))					{						tmp+=2;						if (*(tmp+1) && isdigit(*(tmp+1)))							++tmp;					}				}			}			continue;		}		else if (*tmp == '\3' && !reverse)		{			strcat(string, "\\cf");			i += 3;			if (*(tmp+1) && !isdigit(*(tmp+1)))			{				incolor = 0;				string[i++] = '0';				if (inbg)				{					inbg = 0;					strcat(string, "\\highlight0");					i += 11;				}			}			else if (*(tmp+1))			{				unsigned char color[3];				int number;				color[0] = *(++tmp);				color[1] = 0;				if (*(tmp+1) && isdigit(*(tmp+1)))					color[1] = *(++tmp);				color[2] = 0;				number = atoi(color);				if (number == 99 || number == 1)				{					strcat(string, "16"); 					i += 2;				}				else if (number == 0) 				{					strcat(string, "1");					i++;				}				else				{					number %= 16;					_itoa(number, color, 10);					strcat(string, color);					i += strlen(color);				}				if (*(tmp+1) && *(tmp+1) == ',')				{					if (*(tmp+2) && isdigit(*(tmp+2)))					{						strcat(string, "\\highlight");						i += 10;						tmp++;						color[0] = *(++tmp);						color[1] = 0;						if (*(tmp+1) && isdigit(*(tmp+1)))							color[1] = *(++tmp);						color[2] = 0;						number = atoi(color);						if (number == 1)						{							strcat(string, "16");							i += 2;						}						else if (number == 0 || number == 99)							string[i++] = '1';						else						{							number %= 16;							_itoa(number, color, 10);							strcat(string,color);							i += strlen(color);						}						inbg = 1;					}				}				incolor=1;			}			string[i++] = ' ';			continue;		}		else if (*tmp == '\17') {			if (uline) {				strcat(string, "\\ulnone");				i += 7;			}			if (bold) {				strcat(string, "\\b0");				i += 3;			}			if (incolor && !reverse) {				strcat(string, "\\cf0");				i += 4;			}			if (inbg && !reverse)			{				strcat(string, "\\highlight0");				i += 11;			}			if (reverse) {				strcat(string, "\\cf0\\highlight0");				i += 15;			}			if (uline || bold || incolor || inbg || reverse)				string[i++] = ' ';			uline = bold = incolor = inbg = reverse = 0;			continue;		}		else if (*tmp == '\26')		{			if (reverse)			{				strcat(string, "\\cf0\\highlight0 ");				i += 16;			}			else			{				strcat(string, "\\cf1\\highlight16 ");				i += 17;			}			reverse = !reverse;			continue;		}		else if (*tmp == '\37') {			if (uline) {				strcat(string, "\\ulnone ");				i += 8;			}			else {				strcat(string, "\\ul ");				i += 4;			}			uline = !uline;			continue;		}		string[i++] = *tmp;	}	strcat(string, "}");	return;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -