亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tinyxmlparser.cpp.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 1 頁 / 共 3 頁
字號:
/*www.sourceforge.net/projects/tinyxmlOriginal code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use thissoftware in a product, an acknowledgment in the product documentationwould be appreciated but is not required.2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.3. This notice may not be removed or altered from any source distribution.*//**  @file   tinyxmlparser.cpp    @modified by Raul Chirinos  @date   2004-08-26    Changes:    - Replaced string.h routines for their RMF equivalents  - Replaced character buffer allocations with RMMalloc  - Replaced ctype.h routines with macro equivalents not to use locale    since this support is removed from ucLinux  */#include "tinyxml.h"//#include <ctype.h>//#define DEBUG_PARSERstatic int count = 0;// Note tha "PutString" hardcodes the same list. This// is less flexible than it appears. Changing the entries// or order will break putstring.	TiXmlBase::Entity TiXmlBase::entity[ NUM_ENTITY ] = {	{ "&amp;",  5, '&' },	{ "&lt;",   4, '<' },	{ "&gt;",   4, '>' },	{ "&quot;", 6, '\"' },	{ "&apos;", 6, '\'' }};// Bunch of unicode info at://		http://www.unicode.org/faq/utf_bom.html// Including the basic of this table, which determines the #bytes in the// sequence from the lead byte. 1 placed for invalid sequences --// although the result will be junk, pass it through as much as possible.// Beware of the non-characters in UTF-8:	//				ef bb bf (Microsoft "lead bytes")//				ef bf be//				ef bf bf const int TiXmlBase::utf8ByteTable[256] = {	//	0	1	2	3	4	5	6	7	8	9	a	b	c	d	e	f		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x00		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x10		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x20		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x30		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x40		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x50		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x60		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x70	End of ASCII range		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x80 0x80 to 0xc1 invalid		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x90 		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0xa0 		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0xb0 		1,	1,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	// 0xc0 0xc2 to 0xdf 2 byte		2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	// 0xd0		3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	// 0xe0 0xe0 to 0xef 3 byte		4,	4,	4,	4,	4,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1	// 0xf0 0xf0 to 0xf4 4 byte, 0xf5 and higher invalid};void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* length ){	const unsigned long BYTE_MASK = 0xBF;	const unsigned long BYTE_MARK = 0x80;	const unsigned long FIRST_BYTE_MARK[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };	if (input < 0x80) 		*length = 1;	else if ( input < 0x800 )		*length = 2;	else if ( input < 0x10000 )		*length = 3;	else if ( input < 0x200000 )		*length = 4;	else		{ *length = 0; return; }	// This code won't covert this correctly anyway.	output += *length;	// Scary scary fall throughs.	switch (*length) 	{		case 4:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 3:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 2:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 1:			--output; 			*output = (char)(input | FIRST_BYTE_MARK[*length]);	}}// Replace below/*static*/ int TiXmlBase::IsAlpha( unsigned char anyByte, TiXmlEncoding encoding ){	if ( encoding == TIXML_ENCODING_UTF8 )	{		if ( anyByte < 127 )			//return isalpha( anyByte );			return ((anyByte >= 0x41 && anyByte <= 0x5a) ||				(anyByte >= 0x61 && anyByte <= 0x7a));		else			return 1;	// What else to do? The unicode set is huge...get the english ones right.	}	else	{		//return isalpha( anyByte );		return ((anyByte >= 0x41 && anyByte <= 0x5a) ||			(anyByte >= 0x61 && anyByte <= 0x7a));	}}/*static*/ int TiXmlBase::IsAlphaNum( unsigned char anyByte, TiXmlEncoding encoding ){	if ( encoding == TIXML_ENCODING_UTF8 )	{		if ( anyByte < 127 )			//return isalnum( anyByte );			return ((anyByte >= 0x30 && anyByte <= 0x39) || 				(anyByte >= 0x41 && anyByte <= 0x5a) ||				(anyByte >= 0x61 && anyByte <= 0x7a));		else			return 1;	// What else to do? The unicode set is huge...get the english ones right.	}	else	{		//return isalnum( anyByte );		return ((anyByte >= 0x30 && anyByte <= 0x39) || 				(anyByte >= 0x41 && anyByte <= 0x5a) ||				(anyByte >= 0x61 && anyByte <= 0x7a));	}}class TiXmlParsingData{	friend class TiXmlDocument;  public:	void Stamp( const char* now, TiXmlEncoding encoding );	const TiXmlCursor& Cursor()	{ return cursor; }  private:	// Only used by the document!	TiXmlParsingData( const char* start, int _tabsize, int row, int col )	{		assert( start );		stamp = start;		tabsize = _tabsize;		cursor.row = row;		cursor.col = col;	}	TiXmlCursor		cursor;	const char*		stamp;	int				tabsize;};void TiXmlParsingData::Stamp( const char* now, TiXmlEncoding encoding ){	assert( now );	// Do nothing if the tabsize is 0.	if ( tabsize < 1 )	{		return;	}	// Get the current row, column.	int row = cursor.row;	int col = cursor.col;	const char* p = stamp;	assert( p );	while ( p < now )	{		// Code contributed by Fletcher Dunn: (modified by lee)		switch (*p) {			case 0:				// We *should* never get here, but in case we do, don't				// advance past the terminating null character, ever				return;			case '\r':				// bump down to the next line				++row;				col = 0;								// Eat the character				++p;				// Check for \r\n sequence, and treat this as a single character				if (*p == '\n') {					++p;				}				break;			case '\n':				// bump down to the next line				++row;				col = 0;				// Eat the character				++p;				// Check for \n\r sequence, and treat this as a single				// character.  (Yes, this bizarre thing does occur still				// on some arcane platforms...)				if (*p == '\r') {					++p;				}				break;			case '\t':				// Eat the character				++p;				// Skip to next tab stop				col = (col / tabsize + 1) * tabsize;				break;			case (char)(0xef):				if ( encoding == TIXML_ENCODING_UTF8 )				{					if ( *(p+1) && *(p+2) )					{						// In these cases, don't advance the column. These are						// 0-width spaces.						if ( *(p+1)==(char)(0xbb) && *(p+2)==(char)(0xbf) )							p += 3;							else if ( *(p+1)==(char)(0xbf) && *(p+2)==(char)(0xbe) )							p += 3;							else if ( *(p+1)==(char)(0xbf) && *(p+2)==(char)(0xbf) )							p += 3;							else							{ p +=3; ++col; }	// A normal character.					}				}				else				{					++p;					++col;				}				break;			default:				if ( encoding == TIXML_ENCODING_UTF8 )				{					// Eat the 1 to 4 byte utf8 character.					int step = TiXmlBase::utf8ByteTable[*((unsigned char*)p)];					if ( step == 0 )						step = 1;		// Error case from bad encoding, but handle gracefully.					p += step;					// Just advance one column, of course.					++col;				}				else				{					++p;					++col;				}				break;		}	}	cursor.row = row;	cursor.col = col;	assert( cursor.row >= -1 );	assert( cursor.col >= -1 );	stamp = p;	assert( stamp );}const char* TiXmlBase::SkipWhiteSpace( const char* p, TiXmlEncoding encoding ){	if ( !p || !*p )	{		return 0;	}	if ( encoding == TIXML_ENCODING_UTF8 )	{		while ( *p )		{			// Skip the stupid Microsoft UTF-8 Byte order marks			if (	*(p+0)==(char) 0xef 				 && *(p+1)==(char) 0xbb 				 && *(p+2)==(char) 0xbf )			{				p += 3;				continue;			}			else if(*(p+0)==(char) 0xef				 && *(p+1)==(char) 0xbf				 && *(p+2)==(char) 0xbe )			{				p += 3;				continue;			}			else if(*(p+0)==(char) 0xef				 && *(p+1)==(char) 0xbf				 && *(p+2)==(char) 0xbf )			{				p += 3;				continue;			}			if ( IsWhiteSpace( *p ) || *p == '\n' || *p =='\r' )		// Still using old rules for white space.				++p;			else				break;		}	}	else	{		while ( *p && IsWhiteSpace( *p ) || *p == '\n' || *p =='\r' )			++p;	}	return p;}#ifdef TIXML_USE_STL/*static*/ bool TiXmlBase::StreamWhiteSpace( TIXML_ISTREAM * in, TIXML_STRING * tag ){	for( ;; )	{		if ( !in->good() ) return false;		int c = in->peek();		// At this scope, we can't get to a document. So fail silently.		if ( !IsWhiteSpace( c ) || c <= 0 )			return true;		*tag += (char) in->get();	}}/*static*/ bool TiXmlBase::StreamTo( TIXML_ISTREAM * in, int character, TIXML_STRING * tag ){	//assert( character > 0 && character < 128 );	// else it won't work in utf-8	while ( in->good() )	{		int c = in->peek();		if ( c == character )			return true;		if ( c <= 0 )		// Silent failure: can't get document at this scope			return false;		in->get();		*tag += (char) c;	}	return false;}#endifconst char* TiXmlBase::ReadName( const char* p, TIXML_STRING * name, TiXmlEncoding encoding ){	*name = "";	assert( p );	// Names start with letters or underscores.	// Of course, in unicode, tinyxml has no idea what a letter *is*. The	// algorithm is generous.	//	// After that, they can be letters, underscores, numbers,	// hyphens, or colons. (Colons are valid ony for namespaces,	// but tinyxml can't tell namespaces from names.)	if (    p && *p 		 && ( IsAlpha( (unsigned char) *p, encoding ) || *p == '_' ) )	{		while(		p && *p				&&	(		IsAlphaNum( (unsigned char ) *p, encoding ) 						 || *p == '_'						 || *p == '-'						 || *p == '.'						 || *p == ':' ) )		{			(*name) += *p;			++p;		}		return p;	}	return 0;}const char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXmlEncoding encoding ){	// Presume an entity, and pull it out.    TIXML_STRING ent;	int i;	*length = 0;	if ( *(p+1) && *(p+1) == '#' && *(p+2) )	{		unsigned long ucs = 0;		unsigned delta = 0;		unsigned mult = 1;		if ( *(p+2) == 'x' )		{			// Hexadecimal.			if ( !*(p+3) ) return 0;			const char* q = p+3;			q = strchr( q, ';' );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != 'x' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else if ( *q >= 'a' && *q <= 'f' )					ucs += mult * (*q - 'a' + 10);				else if ( *q >= 'A' && *q <= 'F' )					ucs += mult * (*q - 'A' + 10 );				else 					return 0;				mult *= 16;				--q;			}		}		else		{			// Decimal.			if ( !*(p+2) ) return 0;			const char* q = p+2;			q = strchr( q, ';' );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != '#' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else 					return 0;				mult *= 10;				--q;			}		}		if ( encoding == TIXML_ENCODING_UTF8 )		{			// convert the UCS to UTF-8			ConvertUTF32ToUTF8( ucs, value, length );		}		else		{			*value = (char)ucs;			*length = 1;		}		return p + delta + 1;	}	// Now try to match it.	for( i=0; i<NUM_ENTITY; ++i )	{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本久久精品一区二区| 精品一区二区免费在线观看| 成人听书哪个软件好| 久久综合网色—综合色88| 狠狠色狠狠色综合| 国产精品女上位| 91美女在线观看| 天堂精品中文字幕在线| 欧美一区二区视频免费观看| 国产一区二区三区日韩| 国产精品色哟哟网站| 在线观看91视频| 老司机一区二区| 国产精品乱码人人做人人爱| 91成人在线精品| 激情亚洲综合在线| 国产精品传媒在线| 91精品国产综合久久香蕉麻豆| 精品一区二区三区免费| 亚洲人成电影网站色mp4| 欧美乱熟臀69xxxxxx| 国产黄色成人av| 亚洲国产欧美在线| 久久久久9999亚洲精品| 欧美性受xxxx| 国产91高潮流白浆在线麻豆| 一区二区三区久久久| 2020国产精品自拍| 欧美三级电影网| 国产宾馆实践打屁股91| 午夜精品一区在线观看| 国产精品欧美久久久久一区二区| 欧美日韩一区不卡| 高清在线不卡av| 琪琪久久久久日韩精品| 亚洲日韩欧美一区二区在线| 欧美一卡二卡三卡| 欧洲精品一区二区| 国产精品中文欧美| 日韩综合一区二区| 亚洲欧美电影一区二区| 久久久精品国产99久久精品芒果| 欧美综合在线视频| 99精品久久99久久久久| 国产一区二区在线看| 日日夜夜精品视频免费| 亚洲精品五月天| 中文字幕av不卡| 精品成人a区在线观看| 欧美午夜电影在线播放| 97久久超碰国产精品| 国产很黄免费观看久久| 久久精品国产精品亚洲红杏| 亚洲高清中文字幕| 亚洲综合男人的天堂| 综合av第一页| 国产精品视频在线看| 2021国产精品久久精品| 精品国产麻豆免费人成网站| 欧美一级淫片007| 欧美乱妇15p| 欧美日韩亚洲另类| 在线看不卡av| 色婷婷av一区二区| 色综合天天综合网国产成人综合天 | 精品国产a毛片| 欧美精品第1页| 欧美色图免费看| 欧美三级日韩在线| 欧美日韩二区三区| 欧美日韩情趣电影| 欧美理论在线播放| 欧美日韩精品一区二区三区| 欧美老肥妇做.爰bbww| 欧美日韩国产综合视频在线观看| 91国在线观看| 欧美日韩三级在线| 91精品国产综合久久精品| 7777精品伊人久久久大香线蕉的 | 精品国产一二三| 精品日韩成人av| 欧美精品一区二区三区很污很色的 | 夜夜嗨av一区二区三区四季av | 麻豆国产欧美日韩综合精品二区 | 99久精品国产| 色婷婷久久久亚洲一区二区三区| 色综合久久久久久久久久久| 在线国产亚洲欧美| 欧美二区乱c少妇| 精品久久久久一区二区国产| 久久久美女毛片| 亚洲人成网站精品片在线观看| 亚洲精品国产无天堂网2021| 亚洲一区二区三区小说| 日本欧美加勒比视频| 国产乱码精品一区二区三区忘忧草 | 亚洲视频 欧洲视频| 一区二区视频免费在线观看| 日韩精彩视频在线观看| 狠狠色丁香婷综合久久| 成人国产精品免费网站| 欧美色图免费看| 欧美tk—视频vk| 中文字幕一区日韩精品欧美| 亚洲成av人片一区二区| 欧美三电影在线| 欧美精品一区二区三区很污很色的| 国产精品毛片无遮挡高清| 亚洲一二三级电影| 国产在线视频不卡二| 91免费版在线| 日韩一二在线观看| 亚洲人成网站精品片在线观看| 日本欧美一区二区| 97久久精品人人澡人人爽| 91麻豆精品国产| 亚洲天堂网中文字| 久久99精品久久久久| 一本色道久久综合亚洲aⅴ蜜桃| 在线不卡欧美精品一区二区三区| 久久久精品日韩欧美| 午夜精品久久久久久久99水蜜桃| 国产精品系列在线播放| 欧美日韩国产经典色站一区二区三区 | 一区二区三区不卡视频| 国产在线看一区| 欧美日韩中字一区| 中文字幕在线不卡| 国产在线一区观看| 欧美老女人第四色| 亚洲激情第一区| 成人精品视频一区二区三区| 91精品国产综合久久精品麻豆| 亚洲视频 欧洲视频| 国产精品中文字幕一区二区三区| 欧美精品一二三区| 136国产福利精品导航| 麻豆91精品视频| 欧美美女黄视频| 亚洲人一二三区| 成人午夜短视频| 久久美女高清视频| 麻豆久久久久久久| 5566中文字幕一区二区电影| 综合久久一区二区三区| 国产suv精品一区二区三区| 日韩一区二区免费在线观看| 亚洲综合另类小说| 99国产精品久久久久| 国产视频一区在线观看| 国产综合久久久久久鬼色| 日韩三级电影网址| 日韩高清不卡在线| 欧美无砖专区一中文字| 一区二区在线看| 99re这里都是精品| 亚洲欧洲日韩综合一区二区| 国产大陆a不卡| 国产欧美中文在线| 成人在线视频一区二区| 欧美国产激情一区二区三区蜜月 | 日日骚欧美日韩| 91精品国产麻豆国产自产在线| 亚洲国产综合色| 欧美二区在线观看| 日韩电影网1区2区| 精品久久久久久久久久久院品网| 琪琪久久久久日韩精品| 欧美成人精品1314www| 美女网站在线免费欧美精品| 欧美一区永久视频免费观看| 日产精品久久久久久久性色| 日韩美女天天操| 国产美女一区二区三区| 国产精品午夜电影| 色哟哟在线观看一区二区三区| 中文字幕一区在线观看视频| 91日韩一区二区三区| 亚洲一区免费在线观看| 欧美一区二区三区人| 国内精品不卡在线| 国产精品久线在线观看| 欧美在线一二三四区| 午夜天堂影视香蕉久久| 精品少妇一区二区三区免费观看 | 国产精品色一区二区三区| 91原创在线视频| 成人h动漫精品一区二区| 综合久久给合久久狠狠狠97色| 欧美中文一区二区三区| 久久精品99久久久| 国产精品天干天干在线综合| 色94色欧美sute亚洲线路一ni | 韩国欧美国产1区| 中文字幕成人网| 欧美日韩在线电影| 紧缚奴在线一区二区三区| 综合婷婷亚洲小说| 日韩欧美的一区二区| 成人精品在线视频观看|