📄 hangul.c
字号:
/*
Hangul routines
written by Song Jaekyung
*/
//#include "ptyx.h"
//#include "data.h"
#include "hangul.h"
#include <stdio.h>
/* fuzzy baselibe stuff. defined in charproc.c */
extern int englift;
extern int eng_ascent;
extern int eng_descent;
#if !defined(NO_PATCH_FONT_JOHABNZ) /* by hanmaum 1998.2.2 */
extern int font_no_zero_width_char;
extern int font_minus_width_char_byte1;
extern int font_minus_width_char_byte2;
#endif
extern int convert_3_to_johab();
#if !defined(NO_PATCH_UTF8) /* by hanmaum 1998.2.5 */
#include "ksc.h"
extern int convert_3_to_utf8();
unsigned short convert_char_ksc5601_to_ucs2(/*byte1, byte2*/);
unsigned short convert_char_ucs2_to_ksc5601(/*code_ucs2*/);
int convert_wc_to_mb(/*char *s, unsigned long wc*/);
int convert_mb_to_wc(/*unsigned long *p, char *s, unsigned n*/);
#endif
int convert_3_to_jo844();
extern int (*converter)();
extern int (*chat_callback)();
extern int v_write();
code_input(fd, str, len)
int fd;
unsigned char *str;
int len;
{
int code = 0;
char buf[2];
sscanf((char*)str+9, "%x", &code);
if (code >= 0xa1a1 && code <= 0xfefe) {
buf[0] = code >> 8;
buf[1] = code & 0xff;
// jwf v_write(fd, buf, 2);
}
return -1;
}
#if !defined(NO_PATCH_ADJUSTHANGULSTRING) /* by hanmaum 1998.2.6 */
/* str + n - 1 困摹 付瘤阜 臂磊啊 固肯己矫 内靛辨捞甫 逞败霖促. */
adjust_hangul_string(str, n, code)
register unsigned char *str;
register int n; /* length of string */
register int code;
#else
/* str + n - 1 俊 乐绰 某腐磐啊 茄臂狼 霉锅掳 官捞飘搁 1 阑 倒妨凛聪促. */
adjust_hangul_string(str, n)
register unsigned char *str;
register int n; /* length of string */
#endif
{
#if !defined(NO_PATCH_UTF8) /* by hanmaum 1998.2.5 */
if (code == C_UTF8) {
int l = 0;
while (n > 0) {
if (*str < (unsigned char)0xc0) l = 1;
else if (*str < (unsigned char)0xe0) l = 2;
else if (*str < (unsigned char)0xf0) l = 3;
else if (*str < (unsigned char)0xf8) l = 4;
else if (*str < (unsigned char)0xfc) l = 5;
else l = 6;
n -= l;
str += l;
}
return (n == 0) ? 0 : (l + n);
}
else
#endif
{
while (n > 0) {
if (*str & 0x80) {
str += 2;
n -= 2;
} else {
str += 1;
n -= 1;
}
}
return (n != 0);
}
}
#if !defined(NO_PATCH_ADJUSTHANGULSTRING) /* by hanmaum 1998.2.4 */
int get_hangul_coding_length(str, n, maxlen_scr, code)
unsigned char *str;
int n;
int maxlen_scr;
int code;
{
int len_code = 0;
int l = 0;
#if !defined(NO_PATCH_UTF8) /* by hanmaum 1998.2.5 */
if (code == C_UTF8) {
int len_scr = 0;
int len_scr1;
while (n > 0) {
len_scr1 = 2;
if (*str < (unsigned char)0xc0) l = 1, len_scr1 = 1;
else if (*str < (unsigned char)0xe0) l = 2;
else if (*str < (unsigned char)0xf0) l = 3;
else if (*str < (unsigned char)0xf8) l = 4;
else if (*str < (unsigned char)0xfc) l = 5;
else l = 6;
maxlen_scr -= len_scr1;
len_code += l;
if (maxlen_scr <= 0) return len_code;
n -= l;
str += l;
}
return len_code;
}
else
#endif
{
while (n > 0) {
if (*str & 0x80) {
str += 2;
l = 2;
n -= 2;
} else {
str += 1;
l = 1;
n -= 1;
}
maxlen_scr -= l;
len_code += l;
if (maxlen_scr <= 0) return len_code;
}
return len_code;
}
}
int get_hangul_screen_length(str, n, code)
unsigned char *str;
int n;
int code;
{
int len_scr = 0;
int len_scr1;
#if !defined(NO_PATCH_UTF8) /* by hanmaum 1998.2.5 */
if (code == C_UTF8) {
int l = 0;
while (n > 0) {
len_scr1 = 2;
if (*str < (unsigned char)0xc0) l = 1, len_scr1 = 1;
else if (*str < (unsigned char)0xe0) l = 2;
else if (*str < (unsigned char)0xf0) l = 3;
else if (*str < (unsigned char)0xf8) l = 4;
else if (*str < (unsigned char)0xfc) l = 5;
else l = 6;
n -= l;
str += l;
len_scr += len_scr1;
}
return len_scr;
}
else
#endif
{
while (n > 0) {
if (*str & 0x80) {
str += 2;
n -= 2;
len_scr1 = 2;
} else {
str += 1;
n -= 1;
len_scr1 = 1;
}
len_scr += len_scr1;
}
return len_scr;
}
}
#endif
#define ks_table1_index(h, l) (((h)-0xb0)*(0xff-0xa1)+((l)-0xa1))
static unsigned char ks_table1[][3] = {
2, 3, 1, 2, 3, 2, 2, 3, 5, 2, 3, 8,
2, 3, 9, 2, 3, 10, 2, 3, 11, 2, 3, 17,
2, 3, 19, 2, 3, 20, 2, 3, 21, 2, 3, 22,
2, 3, 23, 2, 3, 24, 2, 3, 25, 2, 3, 27,
2, 3, 28, 2, 3, 29, 2, 4, 1, 2, 4, 2,
2, 4, 5, 2, 4, 9, 2, 4, 17, 2, 4, 19,
2, 4, 21, 2, 4, 22, 2, 4, 23, 2, 5, 1,
2, 5, 2, 2, 5, 5, 2, 5, 9, 2, 5, 21,
2, 5, 23, 2, 6, 1, 2, 6, 5, 2, 6, 9,
2, 7, 1, 2, 7, 2, 2, 7, 5, 2, 7, 8,
2, 7, 9, 2, 7, 11, 2, 7, 17, 2, 7, 19,
2, 7, 21, 2, 7, 22, 2, 7, 23, 2, 7, 24,
2, 7, 27, 2, 7, 28, 2, 7, 29, 2, 10, 1,
2, 10, 5, 2, 10, 9, 2, 10, 17, 2, 10, 19,
2, 10, 21, 2, 10, 22, 2, 10, 23, 2, 11, 1,
2, 11, 2, 2, 11, 3, 2, 11, 5, 2, 11, 8,
2, 11, 9, 2, 11, 17, 2, 11, 19, 2, 11, 21,
2, 11, 22, 2, 11, 23, 2, 11, 27, 2, 12, 1,
2, 12, 5, 2, 12, 9, 2, 12, 19, 2, 12, 21,
2, 13, 1, 2, 13, 2, 2, 13, 5, 2, 13, 8,
2, 13, 9, 2, 13, 11, 2, 13, 13, 2, 13, 16,
2, 13, 17, 2, 13, 19, 2, 13, 21, 2, 13, 23,
2, 13, 24, 2, 14, 1, 2, 14, 2, 2, 14, 5,
2, 14, 9, 2, 14, 11, 2, 14, 17, 2, 14, 19,
2, 14, 21, 2, 14, 23, 2, 15, 1, 2, 15, 5,
2, 15, 9, 2, 15, 19, 2, 15, 22, 2, 15, 23,
2, 18, 1, 2, 18, 2, 2, 18, 5, 2, 18, 9,
2, 18, 17, 2, 18, 19, 2, 18, 21, 2, 18, 23,
2, 19, 1, 2, 19, 5, 2, 19, 9, 2, 19, 19,
2, 19, 21, 2, 20, 1, 2, 20, 2, 2, 20, 5,
2, 20, 8, 2, 20, 9, 2, 20, 10, 2, 20, 11,
2, 20, 16, 2, 20, 17, 2, 20, 19, 2, 20, 21,
2, 20, 23, 2, 20, 24, 2, 21, 1, 2, 21, 2,
2, 21, 5, 2, 21, 9, 2, 21, 22, 2, 21, 23,
2, 22, 1, 2, 22, 21, 2, 23, 1, 2, 23, 2,
2, 23, 5, 2, 23, 9, 2, 23, 17, 2, 23, 19,
2, 23, 21, 2, 26, 1, 2, 26, 5, 2, 26, 9,
2, 27, 1, 2, 27, 2, 2, 27, 5, 2, 27, 8,
2, 27, 9, 2, 27, 10, 2, 27, 17, 2, 27, 19,
2, 27, 21, 2, 27, 23, 2, 28, 1, 2, 29, 1,
2, 29, 2, 2, 29, 5, 2, 29, 8, 2, 29, 9,
2, 29, 11, 2, 29, 17, 2, 29, 19, 2, 29, 21,
2, 29, 23, 2, 29, 24, 2, 29, 28, 3, 3, 1,
3, 3, 2, 3, 3, 3, 3, 3, 5, 3, 3, 9,
3, 3, 11, 3, 3, 17, 3, 3, 19, 3, 3, 21,
3, 3, 22, 3, 3, 23, 3, 3, 27, 3, 4, 1,
3, 4, 2, 3, 4, 5, 3, 4, 9, 3, 4, 17,
3, 4, 19, 3, 4, 21, 3, 4, 22, 3, 4, 23,
3, 5, 1, 3, 5, 2, 3, 5, 9, 3, 7, 1,
3, 7, 2, 3, 7, 3, 3, 7, 5, 3, 7, 9,
3, 7, 17, 3, 7, 19, 3, 7, 21, 3, 7, 22,
3, 7, 23, 3, 10, 1, 3, 10, 2, 3, 10, 5,
3, 10, 17, 3, 10, 21, 3, 10, 23, 3, 11, 1,
3, 11, 5, 3, 11, 9, 3, 11, 21, 3, 11, 22,
3, 11, 27, 3, 12, 1, 3, 13, 1, 3, 13, 2,
3, 13, 5, 3, 13, 7, 3, 13, 9, 3, 13, 17,
3, 13, 19, 3, 13, 21, 3, 13, 23, 3, 13, 24,
3, 13, 25, 3, 14, 1, 3, 14, 2, 3, 14, 9,
3, 14, 22, 3, 14, 23, 3, 15, 1, 3, 15, 2,
3, 15, 23, 3, 18, 1, 3, 18, 5, 3, 18, 9,
3, 18, 17, 3, 18, 19, 3, 18, 23, 3, 19, 1,
3, 20, 1, 3, 20, 2, 3, 20, 5, 3, 20, 9,
3, 20, 16, 3, 20, 17, 3, 20, 19, 3, 20, 21,
3, 20, 23, 3, 20, 24, 3, 21, 1, 3, 21, 9,
3, 21, 22, 3, 21, 23, 3, 22, 1, 3, 22, 2,
3, 22, 5, 3, 22, 9, 3, 22, 17, 3, 22, 19,
3, 22, 22, 3, 23, 1, 3, 23, 5, 3, 23, 9,
3, 23, 17, 3, 23, 19, 3, 26, 1, 3, 27, 1,
3, 27, 2, 3, 27, 5, 3, 27, 7, 3, 27, 9,
3, 27, 11, 3, 27, 16, 3, 27, 17, 3, 27, 19,
3, 27, 21, 3, 27, 23, 3, 27, 27, 3, 29, 1,
3, 29, 2, 3, 29, 5, 3, 29, 9, 3, 29, 17,
3, 29, 19, 3, 29, 21, 3, 29, 23, 4, 3, 1,
4, 3, 2, 4, 3, 3, 4, 3, 5, 4, 3, 8,
4, 3, 9, 4, 3, 10, 4, 3, 11, 4, 3, 17,
4, 3, 19, 4, 3, 21, 4, 3, 22, 4, 3, 23,
4, 3, 24, 4, 3, 25, 4, 3, 27, 4, 3, 29,
4, 4, 1, 4, 4, 2, 4, 4, 5, 4, 4, 9,
4, 4, 17, 4, 4, 19, 4, 4, 21, 4, 4, 22,
4, 4, 23, 4, 5, 1, 4, 5, 2, 4, 5, 5,
4, 5, 9, 4, 5, 17, 4, 5, 23, 4, 7, 1,
4, 7, 2, 4, 7, 4, 4, 7, 5, 4, 7, 9,
4, 7, 11, 4, 7, 12, 4, 7, 17, 4, 7, 19,
4, 7, 21, 4, 7, 22, 4, 7, 23, 4, 7, 29,
4, 10, 1, 4, 10, 2, 4, 10, 5, 4, 10, 9,
4, 10, 17, 4, 10, 19, 4, 10, 21, 4, 10, 22,
4, 10, 23, 4, 11, 1, 4, 11, 2, 4, 11, 5,
4, 11, 9, 4, 11, 17, 4, 11, 19, 4, 11, 22,
4, 11, 23, 4, 11, 26, 4, 12, 1, 4, 12, 5,
4, 13, 1, 4, 13, 2, 4, 13, 5, 4, 13, 9,
4, 13, 11, 4, 13, 17, 4, 13, 19, 4, 13, 21,
4, 13, 23, 4, 13, 28, 4, 13, 29, 4, 14, 1,
4, 14, 5, 4, 14, 9, 4, 14, 22, 4, 18, 1,
4, 18, 5, 4, 18, 9, 4, 18, 17, 4, 18, 19,
4, 18, 21, 4, 19, 1, 4, 19, 2, 4, 19, 5,
4, 19, 9, 4, 19, 19, 4, 19, 21, 4, 19, 23,
4, 20, 1, 4, 20, 2, 4, 20, 5, 4, 20, 8,
4, 20, 9, 4, 20, 17, 4, 20, 19, 4, 20, 21,
4, 20, 23, 4, 21, 1, 4, 21, 22, 4, 22, 1,
4, 23, 1, 4, 23, 5, 4, 23, 9, 4, 23, 17,
4, 23, 19, 4, 26, 1, 4, 26, 2, 4, 26, 9,
4, 26, 17, 4, 26, 19, 4, 26, 23, 4, 27, 1,
4, 27, 2, 4, 27, 5, 4, 27, 9, 4, 27, 10,
4, 27, 11, 4, 27, 17, 4, 27, 19, 4, 27, 21,
4, 27, 23, 4, 27, 24, 4, 27, 28, 4, 28, 1,
4, 28, 5, 4, 28, 9, 4, 29, 1, 4, 29, 2,
4, 29, 5, 4, 29, 9, 4, 29, 11, 4, 29, 17,
4, 29, 19, 4, 29, 21, 4, 29, 23, 4, 29, 28,
5, 3, 1, 5, 3, 2, 5, 3, 3, 5, 3, 5,
5, 3, 8, 5, 3, 9, 5, 3, 10, 5, 3, 11,
5, 3, 12, 5, 3, 16, 5, 3, 17, 5, 3, 19,
5, 3, 21, 5, 3, 22, 5, 3, 23, 5, 3, 24,
5, 3, 25, 5, 3, 29, 5, 4, 1, 5, 4, 2,
5, 4, 5, 5, 4, 9, 5, 4, 17, 5, 4, 19,
5, 4, 21, 5, 4, 22, 5, 4, 23, 5, 5, 1,
5, 7, 1, 5, 7, 2, 5, 7, 3, 5, 7, 5,
5, 7, 8, 5, 7, 9, 5, 7, 11, 5, 7, 12,
5, 7, 17, 5, 7, 19, 5, 7, 21, 5, 7, 23,
5, 7, 25, 5, 7, 28, 5, 10, 1, 5, 10, 2,
5, 10, 5, 5, 10, 9, 5, 10, 17, 5, 10, 19,
5, 10, 21, 5, 10, 22, 5, 10, 23, 5, 11, 1,
5, 11, 5, 5, 11, 9, 5, 11, 22, 5, 11, 23,
5, 12, 1, 5, 12, 5, 5, 13, 1, 5, 13, 2,
5, 13, 5, 5, 13, 8, 5, 13, 9, 5, 13, 11,
5, 13, 13, 5, 13, 17, 5, 13, 19, 5, 13, 21,
5, 13, 23, 5, 13, 25, 5, 13, 27, 5, 14, 1,
5, 14, 5, 5, 14, 9, 5, 15, 1, 5, 15, 22,
5, 18, 1, 5, 18, 5, 5, 18, 9, 5, 18, 17,
5, 18, 19, 5, 18, 21, 5, 19, 1, 5, 20, 1,
5, 20, 2, 5, 20, 5, 5, 20, 9, 5, 20, 17,
5, 20, 19, 5, 20, 21, 5, 20, 23, 5, 21, 1,
5, 21, 22, 5, 22, 1, 5, 22, 23, 5, 23, 1,
5, 23, 5, 5, 23, 9, 5, 23, 19, 5, 23, 21,
5, 23, 23, 5, 26, 1, 5, 26, 5, 5, 26, 9,
5, 26, 17, 5, 26, 23, 5, 27, 1, 5, 27, 2,
5, 27, 5, 5, 27, 8, 5, 27, 9, 5, 27, 11,
5, 27, 17, 5, 27, 19, 5, 27, 21, 5, 27, 23,
5, 28, 1, 5, 29, 1, 5, 29, 2, 5, 29, 5,
5, 29, 8, 5, 29, 9, 5, 29, 17, 5, 29, 19,
5, 29, 21, 5, 29, 22, 5, 29, 23, 5, 29, 24,
6, 3, 1, 6, 3, 2, 6, 3, 5, 6, 3, 9,
6, 3, 17, 6, 3, 19, 6, 3, 21, 6, 3, 22,
6, 3, 23, 6, 3, 29, 6, 4, 1, 6, 4, 2,
6, 4, 5, 6, 4, 9, 6, 4, 17, 6, 4, 19,
6, 4, 21, 6, 4, 22, 6, 4, 23, 6, 7, 1,
6, 7, 2, 6, 7, 5, 6, 7, 9, 6, 7, 11,
6, 7, 12, 6, 7, 17, 6, 7, 19, 6, 7, 21,
6, 7, 22, 6, 7, 23, 6, 7, 29, 6, 10, 1,
6, 10, 2, 6, 10, 5, 6, 10, 9, 6, 10, 17,
6, 10, 19, 6, 10, 21, 6, 10, 22, 6, 10, 23,
6, 11, 1, 6, 11, 22, 6, 13, 1, 6, 13, 2,
6, 13, 5, 6, 13, 9, 6, 13, 23, 6, 14, 1,
6, 14, 9, 6, 15, 1, 6, 18, 1, 6, 18, 5,
6, 20, 1, 6, 20, 2, 6, 20, 5, 6, 20, 9,
6, 20, 16, 6, 20, 17, 6, 20, 23, 6, 22, 1,
6, 23, 1, 6, 23, 5, 6, 23, 9, 6, 23, 17,
6, 23, 19, 6, 23, 23, 6, 27, 1, 6, 27, 2,
6, 27, 5, 6, 27, 8, 6, 27, 9, 6, 27, 17,
6, 27, 19, 6, 27, 21, 6, 28, 1, 6, 28, 5,
6, 28, 9, 6, 28, 17, 6, 28, 19, 6, 29, 1,
6, 29, 5, 6, 29, 9, 6, 29, 17, 6, 29, 19,
6, 29, 21, 6, 29, 23, 7, 3, 1, 7, 3, 2,
7, 3, 5, 7, 3, 9, 7, 3, 17, 7, 3, 19,
7, 3, 21, 7, 3, 22, 7, 3, 23, 7, 3, 24,
7, 3, 28, 7, 3, 29, 7, 4, 1, 7, 4, 2,
7, 4, 5, 7, 4, 9, 7, 4, 17, 7, 4, 19,
7, 4, 21, 7, 4, 22, 7, 4, 23, 7, 5, 1,
7, 5, 2, 7, 5, 5, 7, 5, 21, 7, 5, 23,
7, 7, 1, 7, 7, 2, 7, 7, 5, 7, 7, 9,
7, 7, 17, 7, 7, 19, 7, 7, 21, 7, 7, 22,
7, 7, 23, 7, 7, 29, 7, 10, 1, 7, 10, 2,
7, 10, 5, 7, 10, 9, 7, 10, 17, 7, 10, 19,
7, 10, 21, 7, 10, 23, 7, 11, 1, 7, 11, 2,
7, 11, 5, 7, 11, 9, 7, 11, 17, 7, 11, 19,
7, 11, 21, 7, 11, 22, 7, 11, 23, 7, 12, 1,
7, 12, 5, 7, 12, 19, 7, 12, 21, 7, 13, 1,
7, 13, 2, 7, 13, 5, 7, 13, 9, 7, 13, 17,
7, 13, 19, 7, 13, 21, 7, 13, 23, 7, 14, 1,
7, 14, 5, 7, 14, 23, 7, 15, 22, 7, 18, 1,
7, 18, 5, 7, 18, 9, 7, 18, 17, 7, 18, 19,
7, 18, 21, 7, 18, 23, 7, 19, 1, 7, 19, 5,
7, 19, 9, 7, 19, 19, 7, 19, 21, 7, 19, 23,
7, 20, 1, 7, 20, 2, 7, 20, 5, 7, 20, 9,
7, 20, 17, 7, 20, 19, 7, 20, 21, 7, 20, 23,
7, 21, 1, 7, 21, 22, 7, 22, 1, 7, 23, 1,
7, 23, 2, 7, 23, 5, 7, 23, 9, 7, 23, 17,
7, 23, 21, 7, 23, 23, 7, 26, 1, 7, 26, 2,
7, 26, 5, 7, 26, 9, 7, 26, 17, 7, 26, 19,
7, 26, 21, 7, 26, 23, 7, 27, 1, 7, 27, 2,
7, 27, 5, 7, 27, 9, 7, 27, 17, 7, 27, 19,
7, 27, 21, 7, 27, 23, 7, 27, 24, 7, 27, 27,
7, 27, 28, 7, 29, 1, 7, 29, 2, 7, 29, 5,
7, 29, 9, 7, 29, 17, 7, 29, 19, 7, 29, 21,
7, 29, 23, 8, 3, 1, 8, 3, 2, 8, 3, 5,
8, 3, 7, 8, 3, 8, 8, 3, 9, 8, 3, 10,
8, 3, 11, 8, 3, 17, 8, 3, 19, 8, 3, 21,
8, 3, 23, 8, 3, 24, 8, 3, 27, 8, 3, 29,
8, 4, 1, 8, 4, 2, 8, 4, 5, 8, 4, 9,
8, 4, 17, 8, 4, 19, 8, 4, 21, 8, 4, 22,
8, 4, 23, 8, 4, 24, 8, 5, 1, 8, 5, 2,
8, 5, 9, 8, 5, 23, 8, 7, 1, 8, 7, 2,
8, 7, 5, 8, 7, 9, 8, 7, 11, 8, 7, 17,
8, 7, 19, 8, 7, 21, 8, 7, 23, 8, 7, 24,
8, 7, 29, 8, 10, 1, 8, 10, 2, 8, 10, 5,
8, 10, 9, 8, 10, 17, 8, 10, 19, 8, 10, 21,
8, 10, 22, 8, 10, 23, 8, 11, 1, 8, 11, 2,
8, 11, 5, 8, 11, 9, 8, 11, 21, 8, 11, 22,
8, 11, 23, 8, 11, 25, 8, 12, 1, 8, 13, 1,
8, 13, 2, 8, 13, 4, 8, 13, 5, 8, 13, 9,
8, 13, 11, 8, 13, 17, 8, 13, 19, 8, 13, 21,
8, 13, 23, 8, 14, 1, 8, 14, 5, 8, 14, 22,
8, 14, 23, 8, 18, 1, 8, 18, 5, 8, 18, 9,
8, 18, 19, 8, 18, 21, 8, 18, 23, 8, 19, 1,
8, 19, 5, 8, 19, 9, 8, 19, 19, 8, 19, 21,
8, 20, 1, 8, 20, 2, 8, 20, 3, 8, 20, 5,
8, 20, 8, 8, 20, 9, 8, 20, 10, 8, 20, 11,
8, 20, 17, 8, 20, 19, 8, 20, 21, 8, 20, 23,
8, 20, 27, 8, 20, 29, 8, 21, 1, 8, 21, 5,
8, 21, 9, 8, 21, 19, 8, 21, 21, 8, 22, 1,
8, 23, 1, 8, 23, 5, 8, 23, 9, 8, 26, 1,
8, 26, 5, 8, 26, 9, 8, 26, 17, 8, 26, 21,
8, 27, 1, 8, 27, 5, 8, 27, 9, 8, 27, 17,
8, 27, 21, 8, 29, 1, 8, 29, 2, 8, 29, 5,
8, 29, 8, 8, 29, 9, 8, 29, 11, 8, 29, 17,
8, 29, 19, 8, 29, 21, 8, 29, 22, 8, 29, 23,
8, 29, 25, 8, 29, 27, 9, 3, 1, 9, 3, 2,
9, 3, 3, 9, 3, 4, 9, 3, 5, 9, 3, 8,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -