📄 charset.c
字号:
case 'U': c = letter_w_diacritic[n][15]; break;
case 'W': c = letter_w_diacritic[n][16]; break;
case 'Y': c = letter_w_diacritic[n][17]; break;
case 'Z': c = letter_w_diacritic[n][18]; break;
case 'a': c = letter_w_diacritic[n][19]; break;
case 'c': c = letter_w_diacritic[n][20]; break;
case 'd': c = letter_w_diacritic[n][21]; break;
case 'e': c = letter_w_diacritic[n][22]; break;
case 'g': c = letter_w_diacritic[n][23]; break;
case 'h': c = letter_w_diacritic[n][24]; break;
case 'i': c = letter_w_diacritic[n][25]; break;
case 'j': c = letter_w_diacritic[n][26]; break;
case 'k': c = letter_w_diacritic[n][27]; break;
case 'l': c = letter_w_diacritic[n][28]; break;
case 'n': c = letter_w_diacritic[n][29]; break;
case 'o': c = letter_w_diacritic[n][30]; break;
case 'r': c = letter_w_diacritic[n][31]; break;
case 's': c = letter_w_diacritic[n][32]; break;
case 't': c = letter_w_diacritic[n][33]; break;
case 'u': c = letter_w_diacritic[n][34]; break;
case 'w': c = letter_w_diacritic[n][35]; break;
case 'y': c = letter_w_diacritic[n][36]; break;
case 'z': c = letter_w_diacritic[n][37]; break;
case ALONE: c = (( !diacritic[n].b ) ? diacritic[n].a : -1);
break;
default: c = 0;
}
if ( c > 0 ) {
*o++ = c; s++;
} else {
*o++ = '{';
if ( c == -1 ) {
*o++ = ( ( *s == ALONE ) ? ' ' : *s );
s++;
} else {
*o++ = '"';
}
*o++ = diacritic[n].a;
*o++ = '}';
}
break;
#if (ISO_8859 == 0)
case 0x8: case 0x9:
*o++ = 0x1B; /* <ESC> */
*o++ = *s++ - 0x40;
break;
#endif
default:
*o++ = *s++;
}
}
len = o - oo;
o = oo;
if ( (oo = (Byte *)realloc( o, len )) == NULL ) {
free( o );
return( 1 );
}
if ( free_input ) {
free( *bufp );
}
*bufp = (char *) oo;
*buflenp = len;
return( 0 );
}
static int
hh_to_c( Byte *h )
{
Byte c;
if ( (*h >= '0') && (*h <= '9') ) c = *h++ - '0';
else if ( (*h >= 'A') && (*h <= 'F') ) c = *h++ - 'A' + 10;
else if ( (*h >= 'a') && (*h <= 'f') ) c = *h++ - 'a' + 10;
else return -1;
c <<= 4;
if ( (*h >= '0') && (*h <= '9') ) c |= *h - '0';
else if ( (*h >= 'A') && (*h <= 'F') ) c |= *h - 'A' + 10;
else if ( (*h >= 'a') && (*h <= 'f') ) c |= *h - 'a' + 10;
else return -1;
return c;
}
static Byte *
cc_to_t61( Byte *o, Byte *s )
{
int n, c = 0;
switch ( *(s + 1) ) {
case '`': c = -1; break; /* <grave-accent> */
case '!':
switch ( *s ) {
case '!': c = 0x7C; break; /* <vertical-line> */
case '(': c = 0x7B; break; /* <left-curly-bracket> */
case '-': c = 0xAD; break; /* <upwards-arrow> */
default: c = -1; /* <grave-accent> */
}
break;
#if (ISO_8859 == 1) || (ISO_8859 == 2) || (ISO_8859 == 3) || \
(ISO_8859 == 4) || (ISO_8859 == 9)
case 0xB4:
#endif
case '\'': c = -2; break; /* <acute-accent> */
case '^': c = -3; break; /* <circumflex-acent> */
case '>':
switch ( *s ) {
case ')': c = 0x5D; break; /* <right-square-bracket> */
case '>': c = 0xBB; break; /* <right-angle-quotation> */
case '-': c = 0xAE; break; /* <rightwards-arrow> */
default: c = -3; /* <circumflex-acent> */
}
break;
case '~':
case '?': c = -4; break; /* <tilde> */
#if (ISO_8859 == 1) || (ISO_8859 == 4) || (ISO_8859 == 9)
case 0xAF: c = -5; break; /* <macron> */
#endif
case '-':
switch ( *s ) {
case '-': c = 0xFF; break; /* <soft-hyphen> */
case '<': c = 0xAC; break; /* <leftwards arrow> */
case '+': c = 0xB1; break; /* <plus-minus> */
case 'd': c = 0xF3; break; /* <eth> */
default: c = -5; /* <macron> */
}
break;
#if (ISO_8859 == 2) || (ISO_8859 == 3)
case 0xA2: c = -6; break; /* <breve> */
#endif
case '(':
if ( *s == '<' ) c = 0x5B; /* <left-square-bracket> */
else c = -6; /* <breve> */
break;
#if (ISO_8859 == 2) || (ISO_8859 == 3) || (ISO_8859 == 4)
case 0xFF: c = -7; break; /* <dot-accent> */
#endif
case '.':
switch ( *s ) {
case 'i': c = 0xF5; break; /* <dotless-i> */
case 'L': c = 0xE7; break; /* <L-middle-dot> */
case 'l': c = 0xF7; break; /* <l-middle-dot> */
default: c = -7; /* <dot-accent> */
}
break;
#if (ISO_8859 == 1) || (ISO_8859 == 2) || (ISO_8859 == 3) || \
(ISO_8859 == 4) || (ISO_8859 == 9)
case 0xA8: c = -8; break; /* <diaeresis> */
#endif
case ':':
if ( *s == '-') c = 0xB8; /* <division-sign> */
else c = -8; /* <diaeresis> */
break;
#if (ISO_8859 == 1) || (ISO_8859 == 2) || (ISO_8859 == 3) || \
(ISO_8859 == 4) || (ISO_8859 == 9) || (ISO_8859 == 10)
case 0xB0:
#endif
case '0': c = -10; break; /* <ring-above> */
#if (ISO_8859 == 1) || (ISO_8859 == 2) || (ISO_8859 == 3) || \
(ISO_8859 == 4) || (ISO_8859 == 9)
case 0xB8:
#endif
case ',': c = -11; break; /* <cedilla> */
#if (ISO_8859 == 2)
case 0xBD:
#endif
case '"': c = -13; break; /* <double-acute-accent> */
#if (ISO_8859 == 2) || (ISO_8859 == 4)
case 0xB2:
#endif
case ';': c = -14; break; /* <ogonek> */
#if (ISO_8859 == 2) || (ISO_8859 == 4)
case 0xB7: c = -15; break; /* <caron> */
#endif
case ')':
if ( *s == '!' ) c = 0x7D; /* <left-curly-bracket> */
break;
case '<':
if ( *s == '<' ) c = 0xAB; /* <left-angle-quotation> */
else c = -15; /* <caron> */
break;
case '/':
switch ( *s ) {
case '/': c = 0x5C; break; /* <reverse-solidus> */
case 'D': c = 0xE2; break; /* <D-stroke> */
case 'd': c = 0xF2; break; /* <d-stroke> */
case 'H': c = 0xE4; break; /* <H-stroke> */
case 'h': c = 0xF4; break; /* <h-stroke> */
case 'L': c = 0xE8; break; /* <L-stroke> */
case 'l': c = 0xF8; break; /* <l-stroke> */
case 'O': c = 0xE9; break; /* <O-stroke> */
case 'o': c = 0xF9; break; /* <o-stroke> */
case 'T': c = 0xED; break; /* <T-stroke> */
case 't': c = 0xFD; break; /* <t-stroke> */
}
break;
case '2':
if ( *s == '1' ) c = 0xBD; /* <one-half> */
break;
case '4':
switch ( *s ) {
case '1': c = 0xBC; break; /* <one-quarter> */
case '3': c = 0xBE; break; /* <three-quarters> */
}
break;
case '6':
switch ( *s ) {
case '\'': c = 0xA9; break; /* <left-single-quotation> */
case '"': c = 0xAA; break; /* <left-double-quotation> */
}
break;
case '8':
switch ( *s ) {
case '1': c = 0xDC; break; /* <one-eighth> */
case '3': c = 0xDD; break; /* <three-eighths> */
case '5': c = 0xDE; break; /* <five-eighths> */
case '7': c = 0xDF; break; /* <seven-eighths> */
case 'M': c = 0xD5; break; /* <eighth-note> */
}
break;
case '9':
switch ( *s ) {
case '\'': c = 0xB9; break; /* <right-single-quotation> */
case '"': c = 0xBA; break; /* <right-double-quotation> */
}
break;
case 'A':
if ( *s == 'A' ) c = -10; /* <ring-above> + <A> */
break;
case 'a':
switch ( *s ) {
case '-': c = 0xE3; break; /* <femenine-ordinal-a> */
case 'a': c = -10; break; /* <ring-above> + <a> */
}
break;
case 'B':
if ( *s == 'B' ) c = 0xD7; /* <broken-bar> */
break;
case 'b':
if ( *s == 'N' ) c = 0xA6; /* <number-sign> */
break;
case 'd':
if ( *s == 'P' ) c = 0xA3; /* <pound-sign> */
break;
case 'E':
switch ( *s ) {
case 'S': c = 0xA7; break; /* <section-sign> */
case 'A': c = 0xE1; break; /* <AE> */
case 'O': c = 0xEA; break; /* <OE> */
}
break;
case 'e':
switch ( *s ) {
case 'a': c = 0xF1; break; /* <ae> */
case 'o': c = 0xFA; break; /* <oe> */
case 'Y': c = 0xA5; break; /* <yen-sign> */
}
break;
case 'G':
switch ( *s ) {
case 'D': c = 0xB0; break; /* <degree-sign> */
case 'N': c = 0xEE; break; /* <Eng> */
}
break;
case 'g':
switch ( *s ) {
case 'R': c = 0xD2; break; /* <registered-sign> */
case 'n': c = 0xFE; break; /* <eng> */
}
break;
case 'H':
if ( *s == 'T' ) c = 0xEC; /* <Thorn> */
break;
case 'h':
if ( *s == 't' ) c = 0xFC; /* <thorn> */
break;
case 'I':
switch ( *s ) {
case 'P': c = 0xB6; break; /* <pilcrow-sign> */
case '!': c = 0xA1; break; /* <inverted-exclamation> */
case '?': c = 0xBF; break; /* <inverted-question> */
}
break;
case 'J':
if ( *s == 'I' ) c = 0xE6; /* <IJ> */
break;
case 'j':
if ( *s == 'i' ) c = 0xF6; /* <ij> */
break;
case 'k':
if ( *s == 'k' ) c = 0xF0; /* <kra> */
break;
case 'M':
switch ( *s ) {
case '.': c = 0xB7; break; /* <middle-dot> */
case '-': c = 0xD0; break; /* <em-dash> */
case 'T': c = 0xD4; break; /* <trade-mark-sign> */
}
break;
case 'm':
switch ( *s ) {
case '\'': /* <macron> RFC 1345 */
case ' ': c = -5; break; /* <macron> */
case 'O': c = 0xE0; break; /* <Ohm sign> */
}
break;
case 'n':
if ( *s == '\'' ) c = 0xEF; /* <n-preceded-by-apostrophe> */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -