您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CK函数代码示例

51自学网 2021-06-01 20:01:48
  C++
这篇教程C++ CK函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CK函数的典型用法代码示例。如果您正苦于以下问题:C++ CK函数的具体用法?C++ CK怎么用?C++ CK使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CK函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: real_malloc

void *X(malloc_plain)(size_t n){     void *p;     if (n == 0)          n = 1;     p = real_malloc(n);     CK(p);#ifdef MIN_ALIGMENT     A((((uintptr_t)p) % MIN_ALIGNMENT) == 0);#endif     return p;}
开发者ID:abrahamneben,项目名称:orbcomm_beam_mapping,代码行数:14,


示例2: mbfl_filt_conv_utf16_wchar

/* * UTF-16 => wchar */int mbfl_filt_conv_utf16_wchar(int c, mbfl_convert_filter *filter){	int n, endian;	endian = filter->status & 0xff00;	switch (filter->status & 0x0f) {	case 0:		if (endian) {			n = c & 0xff;		} else {			n = (c & 0xff) << 8;		}		filter->cache |= n;		filter->status++;		break;	default:		if (endian) {			n = (c & 0xff) << 8;		} else {			n = c & 0xff;		}		n |= filter->cache & 0xffff;		filter->status &= ~0x0f;		if (n >= 0xd800 && n < 0xdc00) {			filter->cache = ((n & 0x3ff) << 16) + 0x400000;		} else if (n >= 0xdc00 && n < 0xe000) {			n &= 0x3ff;			n |= (filter->cache & 0xfff0000) >> 6;			filter->cache = 0;			if (n >= MBFL_WCSPLANE_SUPMIN && n < MBFL_WCSPLANE_SUPMAX) {				CK((*filter->output_function)(n, filter->data));			} else {		/* illegal character */				n &= MBFL_WCSGROUP_MASK;				n |= MBFL_WCSGROUP_THROUGH;				CK((*filter->output_function)(n, filter->data));			}		} else {
开发者ID:0,项目名称:php-src,代码行数:40,


示例3: mbfl_filt_conv_wchar_hz

/* * wchar => HZ */intmbfl_filt_conv_wchar_hz(int c, mbfl_convert_filter *filter){	int s;	s = 0;	if (c >= ucs_a1_cp936_table_min && c < ucs_a1_cp936_table_max) {		s = ucs_a1_cp936_table[c - ucs_a1_cp936_table_min];	} else if (c >= ucs_a2_cp936_table_min && c < ucs_a2_cp936_table_max) {		s = ucs_a2_cp936_table[c - ucs_a2_cp936_table_min];	} else if (c >= ucs_a3_cp936_table_min && c < ucs_a3_cp936_table_max) {		s = ucs_a3_cp936_table[c - ucs_a3_cp936_table_min];	} else if (c >= ucs_i_cp936_table_min && c < ucs_i_cp936_table_max) {		s = ucs_i_cp936_table[c - ucs_i_cp936_table_min];	} else if (c >= ucs_hff_cp936_table_min && c < ucs_hff_cp936_table_max) {		s = ucs_hff_cp936_table[c - ucs_hff_cp936_table_min];	}	if (s & 0x8000) {		s -= 0x8080;	}	if (s <= 0) {		if (c == 0) {			s = 0;		} else if (s <= 0) {			s = -1;		}	} else if ((s >= 0x80 && s < 0x2121) || (s > 0x8080)) {		s = -1;	}	if (s >= 0) {		if (s < 0x80) { /* ASCII */			if ((filter->status & 0xff00) != 0) {				CK((*filter->output_function)(0x7e, filter->data));		/* '~' */				CK((*filter->output_function)(0x7d, filter->data));		/* '}' */			}			filter->status = 0;			if (s == 0x7e){				CK((*filter->output_function)(0x7e, filter->data));			}			CK((*filter->output_function)(s, filter->data));		} else { /* GB 2312-80 */			if ((filter->status & 0xff00) != 0x200) {				CK((*filter->output_function)(0x7e, filter->data));		/* '~' */				CK((*filter->output_function)(0x7b, filter->data));		/* '{' */			}			filter->status = 0x200;			CK((*filter->output_function)((s >> 8) & 0x7f, filter->data));			CK((*filter->output_function)(s & 0x7f, filter->data));		}	} else {		if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
开发者ID:azatoth,项目名称:php-src,代码行数:55,


示例4: main

intmain (void){    size_t b_size = 2;    char *b = malloc (b_size);    ASSERT (b);    /* Ideally we would rely on the snprintf-posix module, in which case       this guard would not be required, but due to limitations in gnulib's       implementation (see modules/snprintf-posix), we cannot.  */    if (snprintf (b, b_size, "%ju", (uintmax_t) 3) == 1            && b[0] == '3' && b[1] == '/0')    {        CK (int,          inttostr);        CK (unsigned int, uinttostr);        CK (off_t,        offtostr);        CK (uintmax_t,    umaxtostr);        CK (intmax_t,     imaxtostr);        return 0;    }    /* snprintf doesn't accept %ju; skip this test.  */    return 77;}
开发者ID:praiskup,项目名称:gnulib,代码行数:24,


示例5: mbfl_filt_conv_ucs2be_wchar

/* * UCS-2BE => wchar */int mbfl_filt_conv_ucs2be_wchar(int c, mbfl_convert_filter *filter){	int n;	if (filter->status == 0) {		filter->status = 1;		n = (c & 0xff) << 8;		filter->cache = n;	} else {		filter->status = 0;		n = (c & 0xff) | filter->cache;		CK((*filter->output_function)(n, filter->data));	}	return c;}
开发者ID:IMSoP,项目名称:php-src,代码行数:18,


示例6: GET_KEY

void FlatCodeGen::COND_TRANSLATE(){	out << 		"	_widec = " << GET_KEY() << ";/n";	out <<		"	_keys = " << ARR_OFF( CK(), "(" + vCS() + "<<1)" ) << ";/n"		"	_conds = " << ARR_OFF( C(), CO() + "[" + vCS() + "]" ) << ";/n"		"/n"		"	_slen = " << CSP() << "[" << vCS() << "];/n"		"	_cond = _slen > 0 && _keys[0] <=" << GET_WIDE_KEY() << " &&/n"		"		" << GET_WIDE_KEY() << " <= _keys[1] ?/n"		"		_conds[" << GET_WIDE_KEY() << " - _keys[0]] : 0;/n"		"/n";	out <<		"	switch ( _cond ) {/n";	for ( CondSpaceList::Iter csi = condSpaceList; csi.lte(); csi++ ) {		GenCondSpace *condSpace = csi;		out << "	case " << condSpace->condSpaceId + 1 << ": {/n";		out << TABS(2) << "_widec = " << CAST(WIDE_ALPH_TYPE()) << "(" <<				KEY(condSpace->baseKey) << " + (" << GET_KEY() << 				" - " << KEY(keyOps->minKey) << "));/n";		for ( GenCondSet::Iter csi = condSpace->condSet; csi.lte(); csi++ ) {			out << TABS(2) << "if ( ";			CONDITION( out, *csi );			Size condValOffset = ((1 << csi.pos()) * keyOps->alphSize());			out << " ) _widec += " << condValOffset << ";/n";		}		out << "		}/n";		out << "		break;/n";	}	SWITCH_DEFAULT();	out <<		"	}/n";}
开发者ID:Mirocow,项目名称:balancer,代码行数:40,


示例7: mbfl_filt_conv_byte4be_wchar

int mbfl_filt_conv_byte4be_wchar(int c, mbfl_convert_filter *filter){	int n;	if (filter->status == 0) {		filter->status = 1;		n = (c & 0xff) << 24;		filter->cache = n;	} else if (filter->status == 1) {		filter->status = 2;		n = (c & 0xff) << 16;		filter->cache |= n;	} else if (filter->status == 2) {		filter->status = 3;		n = (c & 0xff) << 8;		filter->cache |= n;	} else {		filter->status = 0;		n = (c & 0xff) | filter->cache;		CK((*filter->output_function)(n, filter->data));	}	return c;}
开发者ID:AllenJB,项目名称:php-src,代码行数:23,


示例8: mbfl_filt_conv_armscii8_wchar

/* * armscii8 => wchar */int mbfl_filt_conv_armscii8_wchar(int c, mbfl_convert_filter *filter){	int s;	if (c >= 0 && c < armscii8_ucs_table_min) {		s = c;	} else if (c >= armscii8_ucs_table_min && c < 0x100) {		s = armscii8_ucs_table[c - armscii8_ucs_table_min];		if (s <= 0) {			s = c;			s &= MBFL_WCSPLANE_MASK;			s |= MBFL_WCSPLANE_ARMSCII8;		}	} else {		s = c;		s &= MBFL_WCSGROUP_MASK;		s |= MBFL_WCSGROUP_THROUGH;	}	CK((*filter->output_function)(s, filter->data));	return c;}
开发者ID:DHANDAPANISATTANATHAN,项目名称:appengine-php,代码行数:26,


示例9: mbfl_filt_conv_8859_13_wchar

/* * ISO-8859-13 => wchar */int mbfl_filt_conv_8859_13_wchar(int c, mbfl_convert_filter *filter){	int s;	if (c >= 0 && c < 0xa0) {		s = c;	} else if (c >= 0xa0 && c < 0x100) {		s = iso8859_13_ucs_table[c - 0xa0];		if (s <= 0) {			s = c;			s &= MBFL_WCSPLANE_MASK;			s |= MBFL_WCSPLANE_8859_13;		}	} else {		s = c;		s &= MBFL_WCSGROUP_MASK;		s |= MBFL_WCSGROUP_THROUGH;	}	CK((*filter->output_function)(s, filter->data));	return c;}
开发者ID:0xhacking,项目名称:php-src,代码行数:26,


示例10: mbfl_filt_conv_html_enc

/* * any => HTML */int mbfl_filt_conv_html_enc(int c, mbfl_convert_filter *filter){	int tmp[64];	int i;	unsigned int uc;	const mbfl_html_entity_entry *e;	if (c < sizeof(htmlentitifieds) / sizeof(htmlentitifieds[0]) &&				htmlentitifieds[c] != 1) {		CK((*filter->output_function)(c, filter->data));	} else { 		CK((*filter->output_function)('&', filter->data));		for (i = 0; (e = &mbfl_html_entity_list[i])->name != NULL; i++) {			if (c == e->code) {				char *p;								for (p = e->name; *p != '/0'; p++) {					CK((*filter->output_function)((int)*p, filter->data));				}				goto last;			}		}		{			int *p = tmp + sizeof(tmp) / sizeof(tmp[0]);			CK((*filter->output_function)('#', filter->data));			uc = (unsigned int)c;			*(--p) = '/0';			do {				*(--p) = "0123456789"[uc % 10];				uc /= 10;			} while (uc);			for (; *p != '/0'; p++) {				CK((*filter->output_function)(*p, filter->data));			}		}	last:		CK((*filter->output_function)(';', filter->data));	}	return c;}
开发者ID:0,项目名称:php-src,代码行数:48,


示例11: mbfl_filt_conv_cp1254_wchar

/* * cp1254 => wchar */intmbfl_filt_conv_cp1254_wchar(int c, mbfl_convert_filter *filter){	int s;	if (c >= 0 && c < cp1254_ucs_table_min) {		s = c;	} else if (c >= cp1254_ucs_table_min && c < 0x100) {		s = cp1254_ucs_table[c - cp1254_ucs_table_min];		if (s <= 0) {			s = c;			s &= MBFL_WCSPLANE_MASK;			s |= MBFL_WCSPLANE_CP1254;		}	} else {		s = c;		s &= MBFL_WCSGROUP_MASK;		s |= MBFL_WCSGROUP_THROUGH;	}	CK((*filter->output_function)(s, filter->data));	return c;}
开发者ID:AllenJB,项目名称:php-src,代码行数:27,


示例12: mbfl_filt_conv_html_dec

int mbfl_filt_conv_html_dec(int c, mbfl_convert_filter *filter){	int  pos, ent = 0;	mbfl_html_entity_entry *entity;	char *buffer = (char*)filter->opaque;	if (!filter->status) {		if (c == '&' ) {			filter->status = 1;			buffer[0] = '&';		} else {			CK((*filter->output_function)(c, filter->data));		}	} else {		if (c == ';') {			if (buffer[1]=='#') {				if (filter->status > 2 && (buffer[2] == 'x' || buffer[2] == 'X')) {					if (filter->status > 3) {						/* numeric entity */						for (pos=3; pos<filter->status; pos++) {							int v =  buffer[pos];							if (v >= '0' && v <= '9') {								v = v - '0';							} else if (v >= 'A' && v <= 'F') {								v = v - 'A' + 10;							} else if (v >= 'a' && v <= 'f') {								v = v - 'a' + 10;							} else {								ent = -1;								break;							}							ent = ent * 16 + v;						}					} else {						ent = -1;					}				} else {					/* numeric entity */					if (filter->status > 2) {						for (pos=2; pos<filter->status; pos++) {							int v = buffer[pos];							if (v >= '0' && v <= '9') {								v = v - '0';							} else {								ent = -1;								break;							}							ent = ent*10 + v;						}					} else {						ent = -1;					}				}				if (ent >= 0 && ent < 0x110000) {					CK((*filter->output_function)(ent, filter->data));				} else {					for (pos = 0; pos < filter->status; pos++) {						CK((*filter->output_function)(buffer[pos], filter->data));					}					CK((*filter->output_function)(c, filter->data));				}				filter->status = 0;				/*php_error_docref("ref.mbstring" TSRMLS_CC, E_NOTICE, "mbstring decoded '%s'=%d", buffer, ent);*/			} else {				/* named entity */				buffer[filter->status] = 0;				entity = (mbfl_html_entity_entry *)mbfl_html_entity_list;				while (entity->name) {					if (!strcmp(buffer+1, entity->name))	{						ent = entity->code;						break;					}					entity++;				}				if (ent) {					/* decoded */					CK((*filter->output_function)(ent, filter->data));					filter->status = 0;					/*php_error_docref("ref.mbstring" TSRMLS_CC, E_NOTICE,"mbstring decoded '%s'=%d", buffer, ent);*/				} else { 					/* failure */					buffer[filter->status++] = ';';					buffer[filter->status] = 0;					/* php_error_docref("ref.mbstring" TSRMLS_CC, E_WARNING, "mbstring cannot decode '%s'", buffer); */					mbfl_filt_conv_html_dec_flush(filter);				}			}		} else {			/* add character */			buffer[filter->status++] = c;			/* add character and check */			if (!strchr(html_entity_chars, c) || filter->status+1==html_enc_buffer_size || (c=='#' && filter->status>2))			{				/* illegal character or end of buffer */				if (c=='&')					filter->status--;				buffer[filter->status] = 0;				/* php_error_docref("ref.mbstring" TSRMLS_CC, E_WARNING, "mbstring cannot decode '%s'", buffer)l */				mbfl_filt_conv_html_dec_flush(filter);				if (c=='&')//.........这里部分代码省略.........
开发者ID:0,项目名称:php-src,代码行数:101,


示例13: mbfl_filt_conv_eucjp_wchar

/* * EUC-JP => wchar */intmbfl_filt_conv_eucjp_wchar(int c, mbfl_convert_filter *filter){	int c1, s, w;	switch (filter->status) {	case 0:		if (c >= 0 && c < 0x80) {	/* latin */			CK((*filter->output_function)(c, filter->data));		} else if (c > 0xa0 && c < 0xff) {	/* X 0208 first char */			filter->status = 1;			filter->cache = c;		} else if (c == 0x8e) {	/* kana first char */			filter->status = 2;		} else if (c == 0x8f) {	/* X 0212 first char */			filter->status = 3;		} else {			w = c & MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 1:	/* got first half */		filter->status = 0;		c1 = filter->cache;		if (c > 0xa0 && c < 0xff) {			s = (c1 - 0xa1)*94 + c - 0xa1;			if (s >= 0 && s < jisx0208_ucs_table_size) {				w = jisx0208_ucs_table[s];			} else {				w = 0;			}			if (w <= 0) {				w = ((c1 & 0x7f) << 8) | (c & 0x7f);				w &= MBFL_WCSPLANE_MASK;				w |= MBFL_WCSPLANE_JIS0208;			}			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 2:	/* got 0x8e */		filter->status = 0;		if (c > 0xa0 && c < 0xe0) {			w = 0xfec0 + c;			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = 0x8e00 | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 3:	/* got 0x8f,  X 0212 first char */		if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));			filter->status = 0;		} else {			filter->status++;			filter->cache = c;		}		break;	case 4:	/* got 0x8f,  X 0212 second char */		filter->status = 0;		c1 = filter->cache;		if (c1 > 0xa0 && c1 < 0xff && c > 0xa0 && c < 0xff) {			s = (c1 - 0xa1)*94 + c - 0xa1;			if (s >= 0 && s < jisx0212_ucs_table_size) {				w = jisx0212_ucs_table[s];			} else {				w = 0;			}			if (w <= 0) {				w = ((c1 & 0x7f) << 8) | (c & 0x7f);				w &= MBFL_WCSPLANE_MASK;				w |= MBFL_WCSPLANE_JIS0212;			}			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = (c1 << 8) | c | 0x8f0000;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}//.........这里部分代码省略.........
开发者ID:0xhacking,项目名称:php-src,代码行数:101,


示例14: OPEN_ARRAY

void TabCodeGen::writeData(){	/* If there are any transtion functions then output the array. If there	 * are none, don't bother emitting an empty array that won't be used. */	if ( redFsm->anyActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActArrItem), A() );		ACTIONS_ARRAY();		CLOSE_ARRAY() <<		"/n";	}	if ( redFsm->anyConditions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCondOffset), CO() );		COND_OFFSETS();		CLOSE_ARRAY() <<		"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCondLen), CL() );		COND_LENS();		CLOSE_ARRAY() <<		"/n";		OPEN_ARRAY( WIDE_ALPH_TYPE(), CK() );		COND_KEYS();		CLOSE_ARRAY() <<		"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCondSpaceId), C() );		COND_SPACES();		CLOSE_ARRAY() <<		"/n";	}	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxKeyOffset), KO() );	KEY_OFFSETS();	CLOSE_ARRAY() <<	"/n";	OPEN_ARRAY( WIDE_ALPH_TYPE(), K() );	KEYS();	CLOSE_ARRAY() <<	"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxSingleLen), SL() );	SINGLE_LENS();	CLOSE_ARRAY() <<	"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxRangeLen), RL() );	RANGE_LENS();	CLOSE_ARRAY() <<	"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxIndexOffset), IO() );	INDEX_OFFSETS();	CLOSE_ARRAY() <<	"/n";	if ( useIndicies ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxIndex), I() );		INDICIES();		CLOSE_ARRAY() <<		"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxState), TT() );		TRANS_TARGS_WI();		CLOSE_ARRAY() <<		"/n";		if ( redFsm->anyActions() ) {			OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), TA() );			TRANS_ACTIONS_WI();			CLOSE_ARRAY() <<			"/n";		}	}	else {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxState), TT() );		TRANS_TARGS();		CLOSE_ARRAY() <<		"/n";		if ( redFsm->anyActions() ) {			OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), TA() );			TRANS_ACTIONS();			CLOSE_ARRAY() <<			"/n";		}	}	if ( redFsm->anyToStateActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), TSA() );		TO_STATE_ACTIONS();		CLOSE_ARRAY() <<		"/n";	}	if ( redFsm->anyFromStateActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), FSA() );		FROM_STATE_ACTIONS();//.........这里部分代码省略.........
开发者ID:Orvid,项目名称:hhvm-third-party,代码行数:101,


示例15: mbfl_filt_conv_utf8_wchar

/* * UTF-8 => wchar */int mbfl_filt_conv_utf8_wchar(int c, mbfl_convert_filter *filter){	int s, c1, w = 0, flag = 0;retry:	switch (filter->status & 0xff) {	case 0x00:		if (c < 0x80) {			CK((*filter->output_function)(c, filter->data));		} else if (c >= 0xc2 && c <= 0xdf) { /* 2byte code first char: 0xc2-0xdf */			filter->status = 0x10;			filter->cache = c & 0x1f;		} else if (c >= 0xe0 && c <= 0xef) { /* 3byte code first char: 0xe0-0xef */			filter->status = 0x20;			filter->cache = c & 0xf;		} else if (c >= 0xf0 && c <= 0xf4) { /* 3byte code first char: 0xf0-0xf4 */			filter->status = 0x30;			filter->cache = c & 0x7;		} else {			mbfl_filt_put_invalid_char(c, filter);		}		break;	case 0x10: /* 2byte code 2nd char: 0x80-0xbf */	case 0x21: /* 3byte code 3rd char: 0x80-0xbf */	case 0x32: /* 4byte code 4th char: 0x80-0xbf */		filter->status = 0;		if (c >= 0x80 && c <= 0xbf) {			s = (filter->cache<<6) | (c & 0x3f);						filter->cache = 0;			CK((*filter->output_function)(s, filter->data));					} else {			mbfl_filt_put_invalid_char(filter->cache, filter);			goto retry;					}		break;	case 0x20: /* 3byte code 2nd char: 0:0xa0-0xbf,D:0x80-9F,1-C,E-F:0x80-0x9f */		s = (filter->cache<<6) | (c & 0x3f);		c1 = filter->cache & 0xf;				if ((c >= 0x80 && c <= 0xbf) &&			((c1 == 0x0 && c >= 0xa0) ||			 (c1 == 0xd && c < 0xa0) ||			 (c1 > 0x0 && c1 != 0xd))) {			filter->cache = s;			filter->status++;		} else {			mbfl_filt_put_invalid_char(filter->cache, filter);			goto retry;								}		break;	case 0x30: /* 4byte code 2nd char: 0:0x90-0xbf,1-3:0x80-0xbf,4:0x80-0x8f */		s = (filter->cache<<6) | (c & 0x3f);		c1 = filter->cache & 0x7;				if ((c >= 0x80 && c <= 0xbf) &&			((c1 == 0x0 && c >= 0x90) ||			 (c1 == 0x4 && c < 0x90) ||			 (c1 > 0x0 && c1 != 0x4))) {			filter->cache = s;			filter->status++;		} else {			mbfl_filt_put_invalid_char(filter->cache, filter);			goto retry;								}		break;	case 0x31: /* 4byte code 3rd char: 0x80-0xbf */		if (c >= 0x80 && c <= 0xbf) {			filter->cache = (filter->cache<<6) | (c & 0x3f);			filter->status++;		} else {			mbfl_filt_put_invalid_char(filter->cache, filter);			goto retry;								}		break;	default:		filter->status = 0;		break;	}	return c;}
开发者ID:0x1111,项目名称:php-src,代码行数:84,


示例16: mbfl_filt_conv_wchar_eucjpwin

//.........这里部分代码省略.........		s1 = ucs_i_jis_table[c - ucs_i_jis_table_min];	} else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) {		s1 = ucs_r_jis_table[c - ucs_r_jis_table_min];	} else if (c >= 0xe000 && c < (0xe000 + 10*94)) {	/* user  (X0208  85ku - 94ku) */		s1 = c - 0xe000;		c1 = s1/94 + 0x75;		c2 = s1%94 + 0x21;		s1 = (c1 << 8) | c2;	} else if (c >= (0xe000 + 10*94) && c < (0xe000 + 20*94)) {	/* user  (X0212  85ku - 94ku) */		s1 = c - (0xe000 + 10*94);		c1 = s1/94 + 0xf5;		c2 = s1%94 + 0xa1;		s1 = (c1 << 8) | c2;	}	if (s1 == 0xa2f1) {		s1 = 0x2d62;		/* NUMERO SIGN */	}	if (s1 <= 0) {		c1 = c & ~MBFL_WCSPLANE_MASK;		if (c1 == MBFL_WCSPLANE_WINCP932) {			s1 = c & MBFL_WCSPLANE_MASK;			if (s1 >= ((85 + 0x20) << 8)) {	/* 85ku - 120ku */				s1 = -1;			}		} else if (c1 == MBFL_WCSPLANE_JIS0208) {			s1 = c & MBFL_WCSPLANE_MASK;			if (s1 >= ((85 + 0x20) << 8)) {	/* 85ku - 94ku */				s1 = -1;			}		} else if (c1 == MBFL_WCSPLANE_JIS0212) {			s1 = c & MBFL_WCSPLANE_MASK;			if (s1 >= ((83 + 0x20) << 8)) {	/* 83ku - 94ku */				s1 = -1;			} else {				s1 |= 0x8080;			}		} else if (c == 0xa5) {		/* YEN SIGN */			s1 = 0x216f;			/* FULLWIDTH YEN SIGN */		} else if (c == 0x203e) {	/* OVER LINE */			s1 = 0x2131;			/* FULLWIDTH MACRON */		} else if (c == 0xff3c) {	/* FULLWIDTH REVERSE SOLIDUS */			s1 = 0x2140;		} else if (c == 0xff5e) {	/* FULLWIDTH TILDE */			s1 = 0x2141;		} else if (c == 0x2225) {	/* PARALLEL TO */			s1 = 0x2142;		} else if (c == 0xff0d) {	/* FULLWIDTH HYPHEN-MINUS */			s1 = 0x215d;		} else if (c == 0xffe0) {	/* FULLWIDTH CENT SIGN */			s1 = 0x2171;		} else if (c == 0xffe1) {	/* FULLWIDTH POUND SIGN */			s1 = 0x2172;		} else if (c == 0xffe2) {	/* FULLWIDTH NOT SIGN */			s1 = 0x224c;		} else if (c == 0xff5e) {	/* FULLWIDTH TILDE */			s1 = 0x2141;		} else {			s1 = -1;			c1 = 0;			c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min;			while (c1 < c2) {		/* CP932 vendor ext1 (13ku) */				const int oh = cp932ext1_ucs_table_min / 94;				if (c == cp932ext1_ucs_table[c1]) {					s1 = ((c1 / 94 + oh + 0x21) << 8) + (c1 % 94 + 0x21);					break;				}				c1++;			}			if (s1 < 0) {				c1 = 0;				c2 = cp932ext3_ucs_table_max - cp932ext3_ucs_table_min;				while (c1 < c2) {		/* CP932 vendor ext3 (115ku - 119ku) */					if (c == cp932ext3_ucs_table[c1]) {						if (c1 < cp932ext3_eucjp_table_size) {							s1 = cp932ext3_eucjp_table[c1];						}						break;					}					c1++;				}			}		}		if (c == 0) {			s1 = 0;		} else if (s1 <= 0) {			s1 = -1;		}	}	if (s1 >= 0) {		if (s1 < 0x80) {	/* latin */			CK((*filter->output_function)(s1, filter->data));		} else if (s1 < 0x100) {	/* kana */			CK((*filter->output_function)(0x8e, filter->data));			CK((*filter->output_function)(s1, filter->data));		} else if (s1 < 0x8080)  {	/* X 0208 */			CK((*filter->output_function)(((s1 >> 8) & 0xff) | 0x80, filter->data));			CK((*filter->output_function)((s1 & 0xff) | 0x80, filter->data));		} else {	/* X 0212 */
开发者ID:AllenJB,项目名称:php-src,代码行数:101,


示例17: mbfl_filt_conv_hz_wchar

/* * HZ => wchar */intmbfl_filt_conv_hz_wchar(int c, mbfl_convert_filter *filter){	int c1, s, w;	switch (filter->status & 0xf) {/*	case 0x00:	 ASCII *//*	case 0x10:	 GB2312 */	case 0:		if (c == 0x7e) {			filter->status += 2;		} else if (filter->status == 0x10 && c > 0x20 && c < 0x7f) {	/* DBCS first char */			filter->cache = c;			filter->status += 1;		} else if (c >= 0 && c < 0x80) {		/* latin, CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = c & MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;/*	case 0x11:	 GB2312 second char */	case 1:		filter->status &= ~0xf;		c1 = filter->cache;		if (c1 > 0x20 && c1 < 0x7f && c > 0x20 && c < 0x7f) {			s = (c1 - 1)*192 + c + 0x40; /* GB2312 */			if (s >= 0 && s < cp936_ucs_table_size) {				w = cp936_ucs_table[s];			} else {				w = 0;			}			if (w <= 0) {				w = (c1 << 8) | c;				w &= MBFL_WCSPLANE_MASK;				w |= MBFL_WCSPLANE_GB2312;			}			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	/* '~' */	case 2:		if (c == 0x7d) {		/* '}' */			filter->status = 0x0;		} else if (c == 0x7b) {		/* '{' */			filter->status = 0x10;		} else if (c == 0x7e) { /* '~' */			filter->status = 0x0;			CK((*filter->output_function)(0x007e, filter->data));		}		break;	default:		filter->status = 0;		break;	}	return c;}
开发者ID:azatoth,项目名称:php-src,代码行数:72,


示例18: mbfl_filt_conv_wchar_cp51932

/* * wchar => cp51932 */intmbfl_filt_conv_wchar_cp51932(int c, mbfl_convert_filter *filter){	int c1, c2, s1;	s1 = 0;	if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) {		s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min];	} else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) {		s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min];	} else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) {		s1 = ucs_i_jis_table[c - ucs_i_jis_table_min];	} else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) {		s1 = ucs_r_jis_table[c - ucs_r_jis_table_min];	}	if (s1 >= 0x8080) s1 = -1; /* we don't support JIS X0213 */	if (s1 <= 0) {		c1 = c & ~MBFL_WCSPLANE_MASK;		if (c1 == MBFL_WCSPLANE_WINCP932) {			s1 = c & MBFL_WCSPLANE_MASK;			if (s1 >= ((85 + 0x20) << 8)) {	/* 85ku - 120ku */				s1 = -1;			}		} else if (c1 == MBFL_WCSPLANE_JIS0208) {			s1 = c & MBFL_WCSPLANE_MASK;			if ((s1 >= ((85 + 0x20) << 8) &&  /* 85ku - 94ku */                             s1 <= ((88 + 0x20) << 8)) ||/* IBM extension */			    (s1 >= ((93 + 0x20) << 8) && /* 89ku - 92ku */                             s1 <= ((94 + 0x20) << 8))) {				s1 = -1;			}		} else if (c == 0xa5) {		/* YEN SIGN */			s1 = 0x005c;			/* YEN SIGN */		} else if (c == 0x203e) {	/* OVER LINE */			s1 = 0x007e;			/* FULLWIDTH MACRON */		} else if (c == 0xff3c) {	/* FULLWIDTH REVERSE SOLIDUS */			s1 = 0x2140;		} else if (c == 0xff5e) {	/* FULLWIDTH TILDE */			s1 = 0x2141;		} else if (c == 0x2225) {	/* PARALLEL TO */			s1 = 0x2142;		} else if (c == 0xff0d) {	/* FULLWIDTH HYPHEN-MINUS */			s1 = 0x215d;		} else if (c == 0xffe0) {	/* FULLWIDTH CENT SIGN */			s1 = 0x2171;		} else if (c == 0xffe1) {	/* FULLWIDTH POUND SIGN */			s1 = 0x2172;		} else if (c == 0xffe2) {	/* FULLWIDTH NOT SIGN */			s1 = 0x224c;		} else {			s1 = -1;			c1 = 0;			c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min;			while (c1 < c2) {		/* CP932 vendor ext1 (13ku) */				if (c == cp932ext1_ucs_table[c1]) {					s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 0x21);					break;				}				c1++;			}			if (s1 < 0) {				c1 = 0;				c2 = cp932ext2_ucs_table_max - cp932ext2_ucs_table_min;				while (c1 < c2) {		/* CP932 vendor ext3 (115ku - 119ku) */					if (c == cp932ext2_ucs_table[c1]) {					  s1 = ((c1/94 + 0x79) << 8) +(c1%94 + 0x21);					  break;					}					c1++;				}			}		}		if (c == 0) {			s1 = 0;		} else if (s1 <= 0) {			s1 = -1;		}	}	if (s1 >= 0) {		if (s1 < 0x80) {	/* latin */			CK((*filter->output_function)(s1, filter->data));		} else if (s1 < 0x100) {	/* kana */			CK((*filter->output_function)(0x8e, filter->data));			CK((*filter->output_function)(s1, filter->data));		} else if (s1 < 0x8080)  {	/* X 0208 */			CK((*filter->output_function)(((s1 >> 8) & 0xff) | 0x80, filter->data));			CK((*filter->output_function)((s1 & 0xff) | 0x80, filter->data));		} else {		  if (filter->illegal_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
开发者ID:AllenJB,项目名称:php-src,代码行数:93,


示例19: mbfl_filt_conv_jis_ms_wchar

/* * JIS-ms => wchar */intmbfl_filt_conv_jis_ms_wchar(int c, mbfl_convert_filter *filter){	int c1, s, w;retry:	switch (filter->status & 0xf) {/*	case 0x00:	 ASCII *//*	case 0x10:	 X 0201 latin *//*	case 0x20:	 X 0201 kana *//*	case 0x80:	 X 0208 *//*	case 0x90:	 X 0212 */	case 0:		if (c == 0x1b) {			filter->status += 2;		} else if (c == 0x0e) {		/* "kana in" */			filter->status = 0x20;		} else if (c == 0x0f) {		/* "kana out" */			filter->status = 0;		} else if (filter->status == 0x10 && c == 0x5c) {	/* YEN SIGN */			CK((*filter->output_function)(0xa5, filter->data));		} else if (filter->status == 0x10 && c == 0x7e) {	/* OVER LINE */			CK((*filter->output_function)(0x203e, filter->data));		} else if (filter->status == 0x20 && c > 0x20 && c < 0x60) {		/* kana */			CK((*filter->output_function)(0xff40 + c, filter->data));		} else if ((filter->status == 0x80 || filter->status == 0x90) && c > 0x20 && c < 0x93) {		/* kanji first char */			filter->cache = c;			filter->status += 1;		} else if (c >= 0 && c < 0x80) {		/* latin, CTLs */			CK((*filter->output_function)(c, filter->data));		} else if (c > 0xa0 && c < 0xe0) {	/* GR kana */			CK((*filter->output_function)(0xfec0 + c, filter->data));		} else {			w = c & MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;/*	case 0x81:	 X 0208 second char *//*	case 0x91:	 X 0212 second char */	case 1:		filter->status &= ~0xf;		c1 = filter->cache;		if (c > 0x20 && c < 0x7f) {			s = (c1 - 0x21)*94 + c - 0x21;			if (filter->status == 0x80) {				if (s >= 0 && s < jisx0208_ucs_table_size) {					w = jisx0208_ucs_table[s];				} else if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) {					w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min];				} else if (s >= cp932ext2_ucs_table_min && s < cp932ext2_ucs_table_max) {					w = cp932ext2_ucs_table[s - cp932ext2_ucs_table_min];				} else if (s >= cp932ext3_ucs_table_min && s < cp932ext3_ucs_table_max) {					w = cp932ext3_ucs_table[s - cp932ext3_ucs_table_min];				} else if (s >= 94 * 94 && s < 114 * 94) {					/* user-defined => PUA (Microsoft extended) */					w = s - 94*94 + 0xe000;				} else {					w = 0;				}				if (w <= 0) {					w = (c1 << 8) | c;					w &= MBFL_WCSPLANE_MASK;					w |= MBFL_WCSPLANE_JIS0208;				}			} else {				if (s >= 0 && s < jisx0212_ucs_table_size) {					w = jisx0212_ucs_table[s];				} else {					w = 0;				}				if (w <= 0) {					w = (c1 << 8) | c;					w &= MBFL_WCSPLANE_MASK;					w |= MBFL_WCSPLANE_JIS0212;				}			}			CK((*filter->output_function)(w, filter->data));		} else if (c == 0x1b) {			filter->status += 2;		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	/* ESC *//*	case 0x02:	*//*	case 0x12:	*//*	case 0x22:	*//*	case 0x82:	*//*	case 0x92:	*///.........这里部分代码省略.........
开发者ID:13572293130,项目名称:php-src,代码行数:101,


示例20: OPEN_ARRAY

void FFlatCodeGen::writeData(){	if ( redFsm->anyConditions() ) {		OPEN_ARRAY( WIDE_ALPH_TYPE(), CK() );		COND_KEYS();		CLOSE_ARRAY() <<		L"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCondSpan), CSP() );		COND_KEY_SPANS();		CLOSE_ARRAY() <<		L"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCond), C() );		CONDS();		CLOSE_ARRAY() <<		L"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCondIndexOffset), CO() );		COND_INDEX_OFFSET();		CLOSE_ARRAY() <<		L"/n";	}	OPEN_ARRAY( WIDE_ALPH_TYPE(), K() );	KEYS();	CLOSE_ARRAY() <<	L"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxSpan), SP() );	KEY_SPANS();	CLOSE_ARRAY() <<	L"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxFlatIndexOffset), IO() );	FLAT_INDEX_OFFSET();	CLOSE_ARRAY() <<	L"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxIndex), I() );	INDICIES();	CLOSE_ARRAY() <<	L"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxState), TT() );	TRANS_TARGS();	CLOSE_ARRAY() <<	L"/n";	if ( redFsm->anyActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActListId), TA() );		TRANS_ACTIONS();		CLOSE_ARRAY() <<		L"/n";	}	if ( redFsm->anyToStateActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc),  TSA() );		TO_STATE_ACTIONS();		CLOSE_ARRAY() <<		L"/n";	}	if ( redFsm->anyFromStateActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), FSA() );		FROM_STATE_ACTIONS();		CLOSE_ARRAY() <<		L"/n";	}	if ( redFsm->anyEofActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActListId), EA() );		EOF_ACTIONS();		CLOSE_ARRAY() <<		L"/n";	}	if ( redFsm->anyEofTrans() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxIndexOffset+1), ET() );		EOF_TRANS();		CLOSE_ARRAY() <<		L"/n";	}	STATE_IDS();}
开发者ID:lazyWombat,项目名称:VSRagel,代码行数:86,


示例21: mbfl_filt_conv_uhc_wchar

/* * UHC => wchar */intmbfl_filt_conv_uhc_wchar(int c, mbfl_convert_filter *filter){	int c1, w = 0, flag = 0;	switch (filter->status) {	case 0:		if (c >= 0 && c < 0x80) {	/* latin */			CK((*filter->output_function)(c, filter->data));		} else if (c > 0x80 && c < 0xff && c != 0xc9) {	/* dbcs lead byte */			filter->status = 1;			filter->cache = c;		} else {			w = c & MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 1:		/* dbcs second byte */		filter->status = 0;		c1 = filter->cache;		if ( c1 >= 0x81 && c1 <= 0xa0){			w = (c1 - 0x81)*190 + (c - 0x41);			if (w >= 0 && w < uhc1_ucs_table_size) {				flag = 1;				w = uhc1_ucs_table[w];			} else {				w = 0;			}		} else if ( c1 >= 0xa1 && c1 <= 0xc6){			w = (c1 - 0xa1)*190 + (c - 0x41);			if (w >= 0 && w < uhc2_ucs_table_size) {				flag = 2;				w = uhc2_ucs_table[w];			} else {				w = 0;			}		} else if ( c1 >= 0xc7 && c1 <= 0xfe){			w = (c1 - 0xc7)*94 + (c - 0xa1);			if (w >= 0 && w < uhc3_ucs_table_size) {				flag = 3;				w = uhc3_ucs_table[w];			} else {				w = 0;			}		}		if (flag > 0){			if (w <= 0) {				w = (c1 << 8) | c;				w &= MBFL_WCSPLANE_MASK;				w |= MBFL_WCSPLANE_UHC;			}			CK((*filter->output_function)(w, filter->data));		} else {			if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */				CK((*filter->output_function)(c, filter->data));			} else {				w = (c1 << 8) | c;				w &= MBFL_WCSGROUP_MASK;				w |= MBFL_WCSGROUP_THROUGH;				CK((*filter->output_function)(w, filter->data));			}		}		break;	default:		filter->status = 0;		break;	}	return c;}
开发者ID:IMSoP,项目名称:php-src,代码行数:77,


示例22: X

R X(float_property)(const float_property p){  const R base = FLT_RADIX;  const R eps = EPSILON;  const R t = MANT_DIG;  const R emin = MIN_EXP;  const R emax = MAX_EXP;  const R prec = eps * base;  static R rmin = K(1.0);  static R rmax = K(1.0);  const R rnd = FLTROUND;  static R sfmin = K(-1.0);  static short first = TRUE;  if (first)  {    /* Compute rmin */    {      const INT n = 1 - MIN_EXP;      INT i;      for (i = 0; i < n; i++)        rmin /= base;    }    /* Compute rmax */    {      INT i;      rmax -= eps;      for (i = 0; i < emax; i++)        rmax *= base;    }    /* Compute sfmin */    {      R small = K(1.0) / rmax;      sfmin = rmin;      if (small >= sfmin)        sfmin = small * (eps + K(1.0));    }    first = FALSE;  }  if (p == NFFT_EPSILON)    return eps;  else if (p == NFFT_SAFE_MIN)    return sfmin;  else if (p == NFFT_BASE)    return base;  else if (p == NFFT_PRECISION)    return prec;  else if (p == NFFT_MANT_DIG)    return t;  else if (p == NFFT_FLTROUND)    return rnd;  else if (p == NFFT_E_MIN)    return  emin;  else if (p == NFFT_R_MIN)    return rmin;  else if (p == NFFT_E_MAX)    return emax;  else if (p == NFFT_R_MAX)    return rmax;  else    CK(0 /* cannot happen */);  return K(-1.0);} /* dlamch_ */
开发者ID:poulson,项目名称:nfft,代码行数:68,


示例23: OPEN_ARRAY

void CSharpFlatCodeGen::writeData(){	/* If there are any transtion functions then output the array. If there	 * are none, don't bother emitting an empty array that won't be used. */	if ( redFsm->anyActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActArrItem), A() );		ACTIONS_ARRAY();		CLOSE_ARRAY() <<		"/n";	}	if ( redFsm->anyConditions() ) {		OPEN_ARRAY( WIDE_ALPH_TYPE(), CK() );		COND_KEYS();		CLOSE_ARRAY() <<		"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCondSpan), CSP() );		COND_KEY_SPANS();		CLOSE_ARRAY() <<		"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCond), C() );		CONDS();		CLOSE_ARRAY() <<		"/n";		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxCondIndexOffset), CO() );		COND_INDEX_OFFSET();		CLOSE_ARRAY() <<		"/n";	}	OPEN_ARRAY( WIDE_ALPH_TYPE(), K() );	KEYS();	CLOSE_ARRAY() <<	"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxSpan), SP() );	KEY_SPANS();	CLOSE_ARRAY() <<	"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxFlatIndexOffset), IO() );	FLAT_INDEX_OFFSET();	CLOSE_ARRAY() <<	"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxIndex), I() );	INDICIES();	CLOSE_ARRAY() <<	"/n";	OPEN_ARRAY( ARRAY_TYPE(redFsm->maxState), TT() );	TRANS_TARGS();	CLOSE_ARRAY() <<	"/n";	if ( redFsm->anyActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), TA() );		TRANS_ACTIONS();		CLOSE_ARRAY() <<		"/n";	}	if ( redFsm->anyToStateActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), TSA() );		TO_STATE_ACTIONS();		CLOSE_ARRAY() <<		"/n";	}	if ( redFsm->anyFromStateActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), FSA() );		FROM_STATE_ACTIONS();		CLOSE_ARRAY() <<		"/n";	}	if ( redFsm->anyEofActions() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxActionLoc), EA() );		EOF_ACTIONS();		CLOSE_ARRAY() <<		"/n";	}	if ( redFsm->anyEofTrans() ) {		OPEN_ARRAY( ARRAY_TYPE(redFsm->maxIndexOffset+1), ET() );		EOF_TRANS();		CLOSE_ARRAY() <<		"/n";	}	STATE_IDS();}
开发者ID:Mirocow,项目名称:balancer,代码行数:95,


示例24: mbfl_filt_conv_euctw_wchar

/* * EUC-TW => wchar */intmbfl_filt_conv_euctw_wchar(int c, mbfl_convert_filter *filter){	int c1, s, w, plane;	switch (filter->status) {	case 0:		if (c >= 0 && c < 0x80) {	/* latin */			CK((*filter->output_function)(c, filter->data));		} else if (c > 0xa0 && c < 0xff) {	/* dbcs first byte */			filter->status = 1;			filter->cache = c;		} else if (c == 0x8e) {	/* mbcs first byte */			filter->status = 2;			filter->cache = c;		} else {			w = c & MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 1:		/* mbcs second byte */		filter->status = 0;		c1 = filter->cache;		if (c > 0xa0 && c < 0xff) {			w = (c1 - 0xa1)*94 + (c - 0xa1);			if (w >= 0 && w < cns11643_1_ucs_table_size) {				w = cns11643_1_ucs_table[w];			} else {				w = 0;			}			if (w <= 0) {				w = (c1 << 8) | c;				w &= MBFL_WCSPLANE_MASK;				w |= MBFL_WCSPLANE_CNS11643;			}			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 2:	/* got 0x8e,  first char */		c1 = filter->cache;		if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));			filter->status = 0;		} else if (c > 0xa0 && c < 0xaf) {			filter->status = 3;			filter->cache = c - 0xa1;		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 3:	/* got 0x8e,  third char */		filter->status = 0;		c1 = filter->cache;		if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));			filter->status = 0;		} else if (c > 0xa0 && c < 0xff) {			filter->status = 4;			filter->cache = (c1 << 8) + c - 0xa1;		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 4:	/* mbcs fourth char */		filter->status = 0;		c1 = filter->cache;		if (c1 >= 0x100 && c1 <= 0xdff && c > 0xa0 && c < 0xff) {			plane = (c1 & 0xf00) >> 8;			s = (c1 & 0xff)*94 + c - 0xa1;			w = 0;			if (s >= 0) {				if (plane == 1 && s < cns11643_2_ucs_table_size) {					w = cns11643_2_ucs_table[s];				}				if (plane == 13 && s < cns11643_14_ucs_table_size) {					w = cns11643_14_ucs_table[s];				}			}			if (w <= 0) {//.........这里部分代码省略.........
开发者ID:0xhacking,项目名称:php-src,代码行数:101,


示例25: mbfl_filt_conv_utf8_wchar

/* * UTF-8 => wchar */int mbfl_filt_conv_utf8_wchar(int c, mbfl_convert_filter *filter){	int s;	if (c < 0x80) {		if (c >= 0) {			CK((*filter->output_function)(c, filter->data));		}		filter->status = 0;	} else if (c < 0xc0) {		int status = filter->status & 0xff;		switch (status) {		case 0x10: /* 2byte code 2nd char */		case 0x21: /* 3byte code 3rd char */		case 0x32: /* 4byte code 4th char */		case 0x43: /* 5byte code 5th char */		case 0x54: /* 6byte code 6th char */			filter->status = 0;			s = filter->cache | (c & 0x3f);			if ((status == 0x10 && s >= 0x80) ||			    (status == 0x21 && s >= 0x800 && (s < 0xd800 || s > 0xdfff)) ||			    (status == 0x32 && s >= 0x10000) ||			    (status == 0x43 && s >= 0x200000) ||			    (status == 0x54 && s >= 0x4000000 && s < MBFL_WCSGROUP_UCS4MAX)) {				CK((*filter->output_function)(s, filter->data));			}			break;		case 0x20: /* 3byte code 2nd char */		case 0x31: /* 4byte code 3rd char */		case 0x42: /* 5byte code 4th char */		case 0x53: /* 6byte code 5th char */			filter->cache |= ((c & 0x3f) << 6);			filter->status++;			break;		case 0x30: /* 4byte code 2nd char */		case 0x41: /* 5byte code 3rd char */		case 0x52: /* 6byte code 4th char */			filter->cache |= ((c & 0x3f) << 12);			filter->status++;			break;		case 0x40: /* 5byte code 2nd char */		case 0x51: /* 6byte code 3rd char */			filter->cache |= ((c & 0x3f) << 18);			filter->status++;			break;		case 0x50: /* 6byte code 2nd char */			filter->cache |= ((c & 0x3f) << 24);			filter->status++;			break;		default:			filter->status = 0;			break;		}	} else if (c < 0xe0) { /* 2byte code first char */		filter->status = 0x10;		filter->cache = (c & 0x1f) << 6;	} else if (c < 0xf0) { /* 3byte code first char */		filter->status = 0x20;		filter->cache = (c & 0xf) << 12;	} else if (c < 0xf8) { /* 4byte code first char */		filter->status = 0x30;		filter->cache = (c & 0x7) << 18;	} else if (c < 0xfc) { /* 5byte code first char */		filter->status = 0x40;		filter->cache = (c & 0x3) << 24;	} else if (c < 0xfe)  { /* 6 byte code first char */		filter->status = 0x50;		filter->cache = (c & 0x1) << 30;	} else {		filter->status = 0;		filter->cache = 0;	}	return c;}
开发者ID:360buyliulei,项目名称:hiphop-php,代码行数:78,


示例26: mbfl_filt_conv_2022jp_mobile_wchar

/* * ISO-2022-JP-Mobile => wchar */intmbfl_filt_conv_2022jp_mobile_wchar(int c, mbfl_convert_filter *filter){	int c1, s, w, snd = 0;retry:	switch (filter->status & 0xf) {/*	case 0x00:	 ASCII *//*	case 0x10:	 X 0201 latin *//*	case 0x20:	 X 0201 kana *//*	case 0x80:	 X 0208 */	case 0:		if (c == 0x1b) {			filter->status += 2;		} else if (filter->status == 0x20 && c > 0x20 && c < 0x60) {		/* kana */			CK((*filter->output_function)(0xff40 + c, filter->data));		} else if (filter->status == 0x80 && c > 0x20 && c < 0x80) {		/* kanji first char */			filter->cache = c;			filter->status += 1;		} else if (c >= 0 && c < 0x80) {		/* latin, CTLs */			CK((*filter->output_function)(c, filter->data));		} else if (c > 0xa0 && c < 0xe0) {	/* GR kana */			CK((*filter->output_function)(0xfec0 + c, filter->data));		} else {			w = c & MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;/*	case 0x81:	 X 0208 second char */	case 1:		w = 0;		filter->status &= ~0xf;		c1 = filter->cache;		if (c > 0x20 && c < 0x7f) {			s = (c1 - 0x21)*94 + c - 0x21;			if (s <= 137) {				if (s == 31) {					w = 0xff3c;			/* FULLWIDTH REVERSE SOLIDUS */				} else if (s == 32) {					w = 0xff5e;			/* FULLWIDTH TILDE */				} else if (s == 33) {					w = 0x2225;			/* PARALLEL TO */				} else if (s == 60) {					w = 0xff0d;			/* FULLWIDTH HYPHEN-MINUS */				} else if (s == 80) {					w = 0xffe0;			/* FULLWIDTH CENT SIGN */				} else if (s == 81) {					w = 0xffe1;			/* FULLWIDTH POUND SIGN */				} else if (s == 137) {					w = 0xffe2;			/* FULLWIDTH NOT SIGN */				}			}						if (w == 0) {				if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) {		/* vendor ext1 (13ku) */					w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min];				} else if (s >= 0 && s < jisx0208_ucs_table_size) {					w = jisx0208_ucs_table[s];				} else {					w = 0;				}			}						if (s >= (84*94) && s < 91*94) {				s += 22*94;				if (filter->from->no_encoding == mbfl_no_encoding_2022jp_kddi) {					w = mbfilter_sjis_emoji_kddi2unicode(s, &snd);				}				if (w > 0  && snd > 0) {					CK((*filter->output_function)(snd, filter->data));				}								}						if (w <= 0) {				w = (c1 << 8) | c;				w &= MBFL_WCSPLANE_MASK;				w |= MBFL_WCSPLANE_JIS0208;				}			CK((*filter->output_function)(w, filter->data));		} else if (c == 0x1b) {			filter->status += 2;		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	/* ESC *//*	case 0x02:	*//*	case 0x12:	*///.........这里部分代码省略.........
开发者ID:Orvid,项目名称:hhvm-third-party,代码行数:101,


示例27: mbfl_filt_conv_eucjpwin_wchar

/* * eucJP-win => wchar */intmbfl_filt_conv_eucjpwin_wchar(int c, mbfl_convert_filter *filter){	int c1, s, w, n;	switch (filter->status) {	case 0:		if (c >= 0 && c < 0x80) {	/* latin */			CK((*filter->output_function)(c, filter->data));		} else if (c > 0xa0 && c < 0xff) {	/* CP932 first char */			filter->status = 1;			filter->cache = c;		} else if (c == 0x8e) {	/* kana first char */			filter->status = 2;		} else if (c == 0x8f) {	/* X 0212 first char */			filter->status = 3;		} else {			w = c & MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 1:	/* got first half */		filter->status = 0;		c1 = filter->cache;		if (c > 0xa0 && c < 0xff) {			w = 0;			s = (c1 - 0xa1)*94 + c - 0xa1;			if (s <= 137) {				if (s == 31) {					w = 0xff3c;			/* FULLWIDTH REVERSE SOLIDUS */				} else if (s == 32) {					w = 0xff5e;			/* FULLWIDTH TILDE */				} else if (s == 33) {					w = 0x2225;			/* PARALLEL TO */				} else if (s == 60) {					w = 0xff0d;			/* FULLWIDTH HYPHEN-MINUS */				} else if (s == 80) {					w = 0xffe0;			/* FULLWIDTH CENT SIGN */				} else if (s == 81) {					w = 0xffe1;			/* FULLWIDTH POUND SIGN */				} else if (s == 137) {					w = 0xffe2;			/* FULLWIDTH NOT SIGN */				}			}			if (w == 0) {				if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) {		/* vendor ext1 (13ku) */					w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min];				} else if (s >= 0 && s < jisx0208_ucs_table_size) {		/* X 0208 */					w = jisx0208_ucs_table[s];				} else if (s >= (84 * 94)) {		/* user (85ku - 94ku) */					w = s - (84 * 94) + 0xe000;				}			}			if (w <= 0) {				w = ((c1 & 0x7f) << 8) | (c & 0x7f);				w &= MBFL_WCSPLANE_MASK;				w |= MBFL_WCSPLANE_WINCP932;			}			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 2:	/* got 0x8e, X0201 kana */		filter->status = 0;		if (c > 0xa0 && c < 0xe0) {			w = 0xfec0 + c;			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = 0x8e00 | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 3:	/* got 0x8f,  X 0212 first char */		if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));			filter->status = 0;		} else {			filter->status++;			filter->cache = c;		}		break;	case 4:	/* got 0x8f,  X 0212 second char */		filter->status = 0;//.........这里部分代码省略.........
开发者ID:AllenJB,项目名称:php-src,代码行数:101,


示例28: mbfl_filt_conv_wchar_2022jp_mobile

/* * wchar => ISO-2022-JP-Mobile */intmbfl_filt_conv_wchar_2022jp_mobile(int c, mbfl_convert_filter *filter){	int c1, c2, s1, s2;	s1 = 0;	s2 = 0;	if (c >= ucs_a1_jis_table_min && c < ucs_a1_jis_table_max) {		s1 = ucs_a1_jis_table[c - ucs_a1_jis_table_min];	} else if (c >= ucs_a2_jis_table_min && c < ucs_a2_jis_table_max) {		s1 = ucs_a2_jis_table[c - ucs_a2_jis_table_min];	} else if (c >= ucs_i_jis_table_min && c < ucs_i_jis_table_max) {		s1 = ucs_i_jis_table[c - ucs_i_jis_table_min];	} else if (c >= ucs_r_jis_table_min && c < ucs_r_jis_table_max) {		s1 = ucs_r_jis_table[c - ucs_r_jis_table_min];	} else if (c >= 0xe000 && c < (0xe000 + 20*94)) {	/* user  (95ku - 114ku) */		s1 = c - 0xe000;		c1 = s1/94 + 0x7f;		c2 = s1%94 + 0x21;		s1 = (c1 << 8) | c2;	}	if (s1 <= 0) {		c1 = c & ~MBFL_WCSPLANE_MASK;		if (c1 == MBFL_WCSPLANE_WINCP932) {			s1 = c & MBFL_WCSPLANE_MASK;			s2 = 1;		} else if (c1 == MBFL_WCSPLANE_JIS0208) {			s1 = c & MBFL_WCSPLANE_MASK;		} else if (c1 == MBFL_WCSPLANE_JIS0212) {			s1 = c & MBFL_WCSPLANE_MASK;			s1 |= 0x8080;		} else if (c == 0xa5) {		/* YEN SIGN */			s1 = 0x216f;	            /* FULLWIDTH YEN SIGN */		} else if (c == 0x203e) {	/* OVER LINE */			s1 = 0x2131;	/* FULLWIDTH MACRON */		} else if (c == 0xff3c) {	/* FULLWIDTH REVERSE SOLIDUS */			s1 = 0x2140;		} else if (c == 0xff5e) {	/* FULLWIDTH TILDE */			s1 = 0x2141;		} else if (c == 0x2225) {	/* PARALLEL TO */			s1 = 0x2142;		} else if (c == 0xff0d) {	/* FULLWIDTH HYPHEN-MINUS */			s1 = 0x215d;		} else if (c == 0xffe0) {	/* FULLWIDTH CENT SIGN */			s1 = 0x2171;		} else if (c == 0xffe1) {	/* FULLWIDTH POUND SIGN */			s1 = 0x2172;		} else if (c == 0xffe2) {	/* FULLWIDTH NOT SIGN */			s1 = 0x224c;		}	}	if ((s1 <= 0) || (s1 >= 0xa1a1 && s2 == 0)) { /* not found or X 0212 */		s1 = -1;		c1 = 0;		c2 = cp932ext1_ucs_table_max - cp932ext1_ucs_table_min;		while (c1 < c2) {		/* CP932 vendor ext1 (13ku) */			if (c == cp932ext1_ucs_table[c1]) {				s1 = ((c1/94 + 0x2d) << 8) + (c1%94 + 0x21);				break;			}			c1++;		}		if (c == 0) {			s1 = 0;		} else if (s1 <= 0) {			s1 = -1;		}	} 	if (filter->to->no_encoding == mbfl_no_encoding_2022jp_kddi &&		mbfilter_unicode2sjis_emoji_kddi(c, &s1, filter) > 0) {		CODE2JIS(c1,c2,s1,s2);		s1 -= 0x1600; 	}	if (filter->status == 1 && filter->cache > 0) {		return c;	}	if (s1 >= 0) {		if (s1 < 0x80) { /* latin */			if ((filter->status & 0xff00) != 0) {				CK((*filter->output_function)(0x1b, filter->data));		/* ESC */				CK((*filter->output_function)(0x28, filter->data));		/* '(' */				CK((*filter->output_function)(0x42, filter->data));		/* 'B' */			}			CK((*filter->output_function)(s1, filter->data));			filter->status = 0;		} else if (s1 > 0xa0 && s1 < 0xe0) { /* kana */			if ((filter->status & 0xff00) != 0x100) {				CK((*filter->output_function)(0x1b, filter->data));		/* ESC */				CK((*filter->output_function)(0x28, filter->data));		/* '(' */				CK((*filter->output_function)(0x49, filter->data));		/* 'I' */			}			filter->status = 0x100;			CK((*filter->output_function)(s1 & 0x7f, filter->data));//.........这里部分代码省略.........
开发者ID:Orvid,项目名称:hhvm-third-party,代码行数:101,


示例29: mbfl_filt_conv_cp51932_wchar

/* * cp51932 => wchar */intmbfl_filt_conv_cp51932_wchar(int c, mbfl_convert_filter *filter){	int c1, s, w;	switch (filter->status) {	case 0:		if (c >= 0 && c < 0x80) {	/* latin */			CK((*filter->output_function)(c, filter->data));		} else if (c > 0xa0 && c < 0xff) {	/* CP932 first char */			filter->status = 1;			filter->cache = c;		} else if (c == 0x8e) {	/* kana first char */			filter->status = 2;		} else {			w = c & MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 1:	/* got first half */		filter->status = 0;		c1 = filter->cache;		if (c > 0xa0 && c < 0xff) {			w = 0;			s = (c1 - 0xa1)*94 + c - 0xa1;			if (s <= 137) {				if (s == 31) {					w = 0xff3c;			/* FULLWIDTH REVERSE SOLIDUS */				} else if (s == 32) {					w = 0xff5e;			/* FULLWIDTH TILDE */				} else if (s == 33) {					w = 0x2225;			/* PARALLEL TO */				} else if (s == 60) {					w = 0xff0d;			/* FULLWIDTH HYPHEN-MINUS */				} else if (s == 80) {					w = 0xffe0;			/* FULLWIDTH CENT SIGN */				} else if (s == 81) {					w = 0xffe1;			/* FULLWIDTH POUND SIGN */				} else if (s == 137) {					w = 0xffe2;			/* FULLWIDTH NOT SIGN */				}			}			if (w == 0) {				if (s >= cp932ext1_ucs_table_min && s < cp932ext1_ucs_table_max) {		/* vendor ext1 (13ku) */					w = cp932ext1_ucs_table[s - cp932ext1_ucs_table_min];				} else if (s >= 0 && s < jisx0208_ucs_table_size) {		/* X 0208 */					w = jisx0208_ucs_table[s];				} else if (s >= cp932ext2_ucs_table_min && s < cp932ext2_ucs_table_max) {		/* vendor ext2 (89ku - 92ku) */					w = cp932ext2_ucs_table[s - cp932ext2_ucs_table_min];				}			}			if (w <= 0) {				w = ((c1 & 0x7f) << 8) | (c & 0x7f);				w &= MBFL_WCSPLANE_MASK;				w |= MBFL_WCSPLANE_WINCP932;			}			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = (c1 << 8) | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	case 2:	/* got 0x8e, X0201 kana */		filter->status = 0;		if (c > 0xa0 && c < 0xe0) {			w = 0xfec0 + c;			CK((*filter->output_function)(w, filter->data));		} else if ((c >= 0 && c < 0x21) || c == 0x7f) {		/* CTLs */			CK((*filter->output_function)(c, filter->data));		} else {			w = 0x8e00 | c;			w &= MBFL_WCSGROUP_MASK;			w |= MBFL_WCSGROUP_THROUGH;			CK((*filter->output_function)(w, filter->data));		}		break;	default:		filter->status = 0;		break;	}	return c;}
开发者ID:AllenJB,项目名称:php-src,代码行数:94,


示例30: mbfl_filt_conv_wchar_jis_ms

//.........这里部分代码省略.........		} else if (c == 0xff5e) {	/* FULLWIDTH TILDE */			s = 0x2141;		} else if (c == 0x2225) {	/* PARALLEL TO */			s = 0x2142;		} else if (c == 0xff0d) {	/* FULLWIDTH HYPHEN-MINUS */			s = 0x215d;		} else if (c == 0xffe0) {	/* FULLWIDTH CENT SIGN */			s = 0x2171;		} else if (c == 0xffe1) {	/* FULLWIDTH POUND SIGN */			s = 0x2172;		} else if (c == 0xffe2) {	/* FULLWIDTH NOT SIGN */			s = 0x224c;		}	}	if (s <= 0 || (s >= 0x8080 && s < 0x10000)) {		int i;		s = -1;		for (i = 0;				i < cp932ext1_ucs_table_max - cp932ext1_ucs_table_min; i++) {			const int oh = cp932ext1_ucs_table_min / 94;			if (c == cp932ext1_ucs_table[i]) {				s = ((i / 94 + oh + 0x21) << 8) + (i % 94 + 0x21);				break;			}		}		if (s < 0) {			const int oh = cp932ext2_ucs_table_min / 94;			const int cp932ext2_ucs_table_size =					cp932ext2_ucs_table_max - cp932ext2_ucs_table_min;			for (i = 0; i < cp932ext2_ucs_table_size; i++) {				if (c == cp932ext2_ucs_table[i]) {					s = ((i / 94 + oh + 0x21) << 8) + (i % 94 + 0x21);					break;				}			}		}		if (s < 0) {			const int cp932ext3_ucs_table_size =					cp932ext3_ucs_table_max - cp932ext3_ucs_table_min;			const int limit = cp932ext3_ucs_table_size >					cp932ext3_eucjp_table_size ?						cp932ext3_eucjp_table_size:						cp932ext3_ucs_table_size;			for (i = 0; i < limit; i++) {				if (c == cp932ext3_ucs_table[i]) {					s = cp932ext3_eucjp_table[i];					break;				}			}		}		if (c == 0) {			s = 0;		} else if (s <= 0) {			s = -1;		}	}	if (s >= 0) {		if (s < 0x80) { /* ASCII */			if ((filter->status & 0xff00) != 0) {				CK((*filter->output_function)(0x1b, filter->data));		/* ESC */				CK((*filter->output_function)(0x28, filter->data));		/* '(' */				CK((*filter->output_function)(0x42, filter->data));		/* 'B' */			}			filter->status = 0;			CK((*filter->output_function)(s, filter->data));		} else if (s < 0x100) { /* kana */			if ((filter->status & 0xff00) != 0x100) {				CK((*filter->output_function)(0x1b, filter->data));		/* ESC */				CK((*filter->output_function)(0x28, filter->data));		/* '(' */				CK((*filter->output_function)(0x49, filter->data));		/* 'I' */			}			filter->status = 0x100;			CK((*filter->output_function)(s & 0x7f, filter->data));		} else if (s < 0x8080) { /* X 0208 */			if ((filter->status & 0xff00) != 0x200) {				CK((*filter->output_function)(0x1b, filter->data));		/* ESC */				CK((*filter->output_function)(0x24, filter->data));		/* '$' */				CK((*filter->output_function)(0x42, filter->data));		/* 'B' */			}			filter->status = 0x200;			CK((*filter->output_function)((s >> 8) & 0x7f, filter->data));			CK((*filter->output_function)(s & 0x7f, filter->data));		} else if (s < 0x10000) { /* X 0212 */			if ((filter->status & 0xff00) != 0x300) {				CK((*filter->output_function)(0x1b, filter->data));		/* ESC */				CK((*filter->output_function)(0x24, filter->data));		/* '$' */				CK((*filter->output_function)(0x28, filter->data));		/* '(' */				CK((*filter->output_function)(0x44, filter->data));		/* 'D' */			}			filter->status = 0x300;			CK((*filter->output_function)((s >> 8) & 0x7f, filter->data));			CK((*filter->output_function)(s & 0x7f, filter->data));		} else { /* X 0201 latin */			if ((filter->status & 0xff00) != 0x400) {
开发者ID:13572293130,项目名称:php-src,代码行数:101,



注:本文中的CK函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ CKSEG1ADDR函数代码示例
C++ CJOSE_ERROR函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。