这篇教程C++ BYTE_TO_ASCII函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中BYTE_TO_ASCII函数的典型用法代码示例。如果您正苦于以下问题:C++ BYTE_TO_ASCII函数的具体用法?C++ BYTE_TO_ASCII怎么用?C++ BYTE_TO_ASCII使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了BYTE_TO_ASCII函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: PREFIXstatic int PTRCALLPREFIX(predefinedEntityName)(const ENCODING *enc, const char *ptr, const char *end){ UNUSED(enc); switch ((end - ptr)/MINBPC(enc)) { case 2: if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_t)) { switch (BYTE_TO_ASCII(enc, ptr)) { case ASCII_l: return ASCII_LT; case ASCII_g: return ASCII_GT; } } break; case 3: if (CHAR_MATCHES(enc, ptr, ASCII_a)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_m)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_p)) return ASCII_AMP; } } break; case 4: switch (BYTE_TO_ASCII(enc, ptr)) { case ASCII_q: ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_u)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_o)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_t)) return ASCII_QUOT; } } break; case ASCII_a: ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_p)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_o)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_s)) return ASCII_APOS; } } break; } } return 0;}
开发者ID:dreamzor,项目名称:xsde-cmake,代码行数:55,
示例2: PREFIXstatic int PTRCALLPREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end, const char **badPtr){ ptr += MINBPC(enc); end -= MINBPC(enc); for (; HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { switch (BYTE_TYPE(enc, ptr)) { case BT_DIGIT: case BT_HEX: case BT_MINUS: case BT_APOS: case BT_LPAR: case BT_RPAR: case BT_PLUS: case BT_COMMA: case BT_SOL: case BT_EQUALS: case BT_QUEST: case BT_CR: case BT_LF: case BT_SEMI: case BT_EXCL: case BT_AST: case BT_PERCNT: case BT_NUM:#ifdef XML_NS case BT_COLON:#endif break; case BT_S: if (CHAR_MATCHES(enc, ptr, ASCII_TAB)) { *badPtr = ptr; return 0; } break; case BT_NAME: case BT_NMSTRT: if (!(BYTE_TO_ASCII(enc, ptr) & ~0x7f)) break; /* fall through */ default: switch (BYTE_TO_ASCII(enc, ptr)) { case 0x24: /* $ */ case 0x40: /* @ */ break; default: *badPtr = ptr; return 0; } break; } } return 1;}
开发者ID:RTEMS,项目名称:rtems-libbsd,代码行数:55,
示例3: PREFIXstaticint PREFIX(predefinedEntityName)(const ENCODING *enc, const char *ptr, const char *end){ (void)enc; switch (end - ptr) { case 2 * MINBPC: if (CHAR_MATCHES(enc, ptr + MINBPC, 't')) { switch (BYTE_TO_ASCII(enc, ptr)) { case 'l': return '<'; case 'g': return '>'; } } break; case 3 * MINBPC: if (CHAR_MATCHES(enc, ptr, 'a')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'm')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'p')) return '&'; } } break; case 4 * MINBPC: switch (BYTE_TO_ASCII(enc, ptr)) { case 'q': ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'u')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'o')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 't')) return '"'; } } break; case 'a': ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'p')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'o')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 's')) return '/''; } } break; } } return 0;}
开发者ID:ChakaZulu,项目名称:my_tuxbox_apps,代码行数:53,
示例4: PREFIXstatic int PTRFASTCALLPREFIX(charRefNumber)(const ENCODING *enc, const char *ptr){ int result = 0; /* skip &# */ ptr += 2*MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_x)) { for (ptr += MINBPC(enc); !CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { int c = BYTE_TO_ASCII(enc, ptr); switch (c) { case ASCII_0: case ASCII_1: case ASCII_2: case ASCII_3: case ASCII_4: case ASCII_5: case ASCII_6: case ASCII_7: case ASCII_8: case ASCII_9: result <<= 4; result |= (c - ASCII_0); break; case ASCII_A: case ASCII_B: case ASCII_C: case ASCII_D: case ASCII_E: case ASCII_F: result <<= 4; result += 10 + (c - ASCII_A); break; case ASCII_a: case ASCII_b: case ASCII_c: case ASCII_d: case ASCII_e: case ASCII_f: result <<= 4; result += 10 + (c - ASCII_a); break; } if (result >= 0x110000) return -1; } } else { for (; !CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { int c = BYTE_TO_ASCII(enc, ptr); result *= 10; result += (c - ASCII_0); if (result >= 0x110000) return -1; } } // Some faggots compose mails with ancient control symbols in headers.// Libexpat tokenizer breaks on them (so far 'Form Feed' and 'DC2' were found). if (result == 0x0C) { result = 0x0A; } else if (result == 0x12) { result = ' '; } return checkCharRefNumber(result);}
开发者ID:serjepatoff,项目名称:libexpat,代码行数:53,
示例5: PREFIXstatic int PTRCALLPREFIX (getAtts) (const ENCODING * enc, const char *ptr, int attsMax, ATTRIBUTE * atts) { enum { other, inName, inValue } state = inName; int nAtts = 0; int open = 0; /* defined when state == inValue; initialization just to shut up compilers */ for (ptr += MINBPC (enc);; ptr += MINBPC (enc)) { switch (BYTE_TYPE (enc, ptr)) {#define START_NAME / if (state == other) { / if (nAtts < attsMax) { / atts[nAtts].name = ptr; / atts[nAtts].normalized = 1; / } / state = inName; / }#define LEAD_CASE(n) / case BT_LEAD ## n: START_NAME ptr += (n - MINBPC(enc)); break; LEAD_CASE (2) LEAD_CASE (3) LEAD_CASE (4)#undef LEAD_CASE case BT_NONASCII: case BT_NMSTRT: case BT_HEX: START_NAME break;#undef START_NAME case BT_QUOT: if (state != inValue) { if (nAtts < attsMax) atts[nAtts].valuePtr = ptr + MINBPC (enc); state = inValue; open = BT_QUOT; } else if (open == BT_QUOT) { state = other; if (nAtts < attsMax) atts[nAtts].valueEnd = ptr; nAtts++; } break; case BT_APOS: if (state != inValue) { if (nAtts < attsMax) atts[nAtts].valuePtr = ptr + MINBPC (enc); state = inValue; open = BT_APOS; } else if (open == BT_APOS) { state = other; if (nAtts < attsMax) atts[nAtts].valueEnd = ptr; nAtts++; } break; case BT_AMP: if (nAtts < attsMax) atts[nAtts].normalized = 0; break; case BT_S: if (state == inName) state = other; else if (state == inValue && nAtts < attsMax && atts[nAtts].normalized && (ptr == atts[nAtts].valuePtr || BYTE_TO_ASCII (enc, ptr) != ASCII_SPACE || BYTE_TO_ASCII (enc, ptr + MINBPC (enc)) == ASCII_SPACE || BYTE_TYPE (enc, ptr + MINBPC (enc)) == open)) atts[nAtts].normalized = 0; break; case BT_CR: case BT_LF: /* This case ensures that the first attribute name is counted Apart from that we could just change state on the quote. */ if (state == inName) state = other; else if (state == inValue && nAtts < attsMax) atts[nAtts].normalized = 0; break; case BT_GT: case BT_SOL: if (state != inValue) return nAtts; break; default: break; } } /* not reached */}
开发者ID:kinglulu,项目名称:librsvg,代码行数:90,
注:本文中的BYTE_TO_ASCII函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ BYTE_TYPE函数代码示例 C++ BYTES函数代码示例 |