enum { TAG, OPTION_VALUE, TEXT, COMMENT }; //you are butifull, you are butifull dword ShowSource() { dword new_buf, new_buf_start, i; byte ww, mode; if (souce_mode) return; souce_mode = true; new_buf_start = new_buf = malloc(bufsize*5); strcat(new_buf, "
");
	for (i=bufpointer; i<");
					new_buf+=20;
					mode = COMMENT;
				}
				else
				{
					strcat(new_buf, "<");
					new_buf+=20;
					mode = TAG;
				}
				break;
			case '>':
				if (mode == OPTION_VALUE) //fix non-closed quote in TAG
				{
					strcat(new_buf, """);
					new_buf+=12;					
					mode = TAG;
				}
				if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-')
				{
					strcat(new_buf, ">");
					new_buf+=10;
					mode = TEXT;
				}
				if (mode == TAG)
				{
					strcat(new_buf, ">");
					new_buf+=10;
					mode = TEXT;
				}
				break;
			case '\"':
			case '\'':
				if (mode == TAG)
				{
					strcat(new_buf, """);
					new_buf+=22;
					mode = OPTION_VALUE;
					break;
				}
				if (mode == OPTION_VALUE)
				{
					strcat(new_buf, """);
					new_buf+=12;
					mode = TAG;
					break;
				}
			default:
				chrcat(new_buf, ww);
		}
	}
	bufsize = new_buf;
	free(bufpointer);
	bufpointer = new_buf_start;
}