diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | decomp.c | 1284 | ||||
-rw-r--r-- | refresh.c | 31 | ||||
-rw-r--r-- | uuterm.h | 1 |
4 files changed, 1303 insertions, 15 deletions
@@ -1,7 +1,7 @@ # uuterm, Copyright (C) 2006 Rich Felker; licensed under GNU GPL v2 only -SRCS = main.c term.c comb.c tty.c alloc.c refresh.c ascii.c ucf.c font_load.c fbcon.c dblbuf.c +SRCS = main.c term.c comb.c decomp.c tty.c alloc.c refresh.c ascii.c ucf.c font_load.c fbcon.c dblbuf.c OBJS = $(SRCS:.c=.o) CFLAGS = -O2 -s #-g diff --git a/decomp.c b/decomp.c new file mode 100644 index 0000000..99865dc --- /dev/null +++ b/decomp.c @@ -0,0 +1,1284 @@ +/* uuterm, Copyright (C) 2006 Rich Felker; licensed under GNU GPL v2 only */ + +#include <stddef.h> +#include <stdint.h> + +static const unsigned short decomp[] = { + 0xc0,0x41,0x300, + 0xc1,0x41,0x301, + 0xc2,0x41,0x302, + 0xc3,0x41,0x303, + 0xc4,0x41,0x308, + 0xc5,0x41,0x30a, + 0xc7,0x43,0x327, + 0xc8,0x45,0x300, + 0xc9,0x45,0x301, + 0xca,0x45,0x302, + 0xcb,0x45,0x308, + 0xcc,0x49,0x300, + 0xcd,0x49,0x301, + 0xce,0x49,0x302, + 0xcf,0x49,0x308, + 0xd1,0x4e,0x303, + 0xd2,0x4f,0x300, + 0xd3,0x4f,0x301, + 0xd4,0x4f,0x302, + 0xd5,0x4f,0x303, + 0xd6,0x4f,0x308, + 0xd9,0x55,0x300, + 0xda,0x55,0x301, + 0xdb,0x55,0x302, + 0xdc,0x55,0x308, + 0xdd,0x59,0x301, + 0xe0,0x61,0x300, + 0xe1,0x61,0x301, + 0xe2,0x61,0x302, + 0xe3,0x61,0x303, + 0xe4,0x61,0x308, + 0xe5,0x61,0x30a, + 0xe7,0x63,0x327, + 0xe8,0x65,0x300, + 0xe9,0x65,0x301, + 0xea,0x65,0x302, + 0xeb,0x65,0x308, + 0xec,0x69,0x300, + 0xed,0x69,0x301, + 0xee,0x69,0x302, + 0xef,0x69,0x308, + 0xf1,0x6e,0x303, + 0xf2,0x6f,0x300, + 0xf3,0x6f,0x301, + 0xf4,0x6f,0x302, + 0xf5,0x6f,0x303, + 0xf6,0x6f,0x308, + 0xf9,0x75,0x300, + 0xfa,0x75,0x301, + 0xfb,0x75,0x302, + 0xfc,0x75,0x308, + 0xfd,0x79,0x301, + 0xff,0x79,0x308, + 0x100,0x41,0x304, + 0x101,0x61,0x304, + 0x102,0x41,0x306, + 0x103,0x61,0x306, + 0x104,0x41,0x328, + 0x105,0x61,0x328, + 0x106,0x43,0x301, + 0x107,0x63,0x301, + 0x108,0x43,0x302, + 0x109,0x63,0x302, + 0x10a,0x43,0x307, + 0x10b,0x63,0x307, + 0x10c,0x43,0x30c, + 0x10d,0x63,0x30c, + 0x10e,0x44,0x30c, + 0x10f,0x64,0x30c, + 0x112,0x45,0x304, + 0x113,0x65,0x304, + 0x114,0x45,0x306, + 0x115,0x65,0x306, + 0x116,0x45,0x307, + 0x117,0x65,0x307, + 0x118,0x45,0x328, + 0x119,0x65,0x328, + 0x11a,0x45,0x30c, + 0x11b,0x65,0x30c, + 0x11c,0x47,0x302, + 0x11d,0x67,0x302, + 0x11e,0x47,0x306, + 0x11f,0x67,0x306, + 0x120,0x47,0x307, + 0x121,0x67,0x307, + 0x122,0x47,0x327, + 0x123,0x67,0x327, + 0x124,0x48,0x302, + 0x125,0x68,0x302, + 0x128,0x49,0x303, + 0x129,0x69,0x303, + 0x12a,0x49,0x304, + 0x12b,0x69,0x304, + 0x12c,0x49,0x306, + 0x12d,0x69,0x306, + 0x12e,0x49,0x328, + 0x12f,0x69,0x328, + 0x130,0x49,0x307, + 0x134,0x4a,0x302, + 0x135,0x6a,0x302, + 0x136,0x4b,0x327, + 0x137,0x6b,0x327, + 0x139,0x4c,0x301, + 0x13a,0x6c,0x301, + 0x13b,0x4c,0x327, + 0x13c,0x6c,0x327, + 0x13d,0x4c,0x30c, + 0x13e,0x6c,0x30c, + 0x143,0x4e,0x301, + 0x144,0x6e,0x301, + 0x145,0x4e,0x327, + 0x146,0x6e,0x327, + 0x147,0x4e,0x30c, + 0x148,0x6e,0x30c, + 0x14c,0x4f,0x304, + 0x14d,0x6f,0x304, + 0x14e,0x4f,0x306, + 0x14f,0x6f,0x306, + 0x150,0x4f,0x30b, + 0x151,0x6f,0x30b, + 0x154,0x52,0x301, + 0x155,0x72,0x301, + 0x156,0x52,0x327, + 0x157,0x72,0x327, + 0x158,0x52,0x30c, + 0x159,0x72,0x30c, + 0x15a,0x53,0x301, + 0x15b,0x73,0x301, + 0x15c,0x53,0x302, + 0x15d,0x73,0x302, + 0x15e,0x53,0x327, + 0x15f,0x73,0x327, + 0x160,0x53,0x30c, + 0x161,0x73,0x30c, + 0x162,0x54,0x327, + 0x163,0x74,0x327, + 0x164,0x54,0x30c, + 0x165,0x74,0x30c, + 0x168,0x55,0x303, + 0x169,0x75,0x303, + 0x16a,0x55,0x304, + 0x16b,0x75,0x304, + 0x16c,0x55,0x306, + 0x16d,0x75,0x306, + 0x16e,0x55,0x30a, + 0x16f,0x75,0x30a, + 0x170,0x55,0x30b, + 0x171,0x75,0x30b, + 0x172,0x55,0x328, + 0x173,0x75,0x328, + 0x174,0x57,0x302, + 0x175,0x77,0x302, + 0x176,0x59,0x302, + 0x177,0x79,0x302, + 0x178,0x59,0x308, + 0x179,0x5a,0x301, + 0x17a,0x7a,0x301, + 0x17b,0x5a,0x307, + 0x17c,0x7a,0x307, + 0x17d,0x5a,0x30c, + 0x17e,0x7a,0x30c, + 0x1a0,0x4f,0x31b, + 0x1a1,0x6f,0x31b, + 0x1af,0x55,0x31b, + 0x1b0,0x75,0x31b, + 0x1cd,0x41,0x30c, + 0x1ce,0x61,0x30c, + 0x1cf,0x49,0x30c, + 0x1d0,0x69,0x30c, + 0x1d1,0x4f,0x30c, + 0x1d2,0x6f,0x30c, + 0x1d3,0x55,0x30c, + 0x1d4,0x75,0x30c, + 0x1d5,0xdc,0x304, + 0x1d6,0xfc,0x304, + 0x1d7,0xdc,0x301, + 0x1d8,0xfc,0x301, + 0x1d9,0xdc,0x30c, + 0x1da,0xfc,0x30c, + 0x1db,0xdc,0x300, + 0x1dc,0xfc,0x300, + 0x1de,0xc4,0x304, + 0x1df,0xe4,0x304, + 0x1e0,0x226,0x304, + 0x1e1,0x227,0x304, + 0x1e2,0xc6,0x304, + 0x1e3,0xe6,0x304, + 0x1e6,0x47,0x30c, + 0x1e7,0x67,0x30c, + 0x1e8,0x4b,0x30c, + 0x1e9,0x6b,0x30c, + 0x1ea,0x4f,0x328, + 0x1eb,0x6f,0x328, + 0x1ec,0x1ea,0x304, + 0x1ed,0x1eb,0x304, + 0x1ee,0x1b7,0x30c, + 0x1ef,0x292,0x30c, + 0x1f0,0x6a,0x30c, + 0x1f4,0x47,0x301, + 0x1f5,0x67,0x301, + 0x1f8,0x4e,0x300, + 0x1f9,0x6e,0x300, + 0x1fa,0xc5,0x301, + 0x1fb,0xe5,0x301, + 0x1fc,0xc6,0x301, + 0x1fd,0xe6,0x301, + 0x1fe,0xd8,0x301, + 0x1ff,0xf8,0x301, + 0x200,0x41,0x30f, + 0x201,0x61,0x30f, + 0x202,0x41,0x311, + 0x203,0x61,0x311, + 0x204,0x45,0x30f, + 0x205,0x65,0x30f, + 0x206,0x45,0x311, + 0x207,0x65,0x311, + 0x208,0x49,0x30f, + 0x209,0x69,0x30f, + 0x20a,0x49,0x311, + 0x20b,0x69,0x311, + 0x20c,0x4f,0x30f, + 0x20d,0x6f,0x30f, + 0x20e,0x4f,0x311, + 0x20f,0x6f,0x311, + 0x210,0x52,0x30f, + 0x211,0x72,0x30f, + 0x212,0x52,0x311, + 0x213,0x72,0x311, + 0x214,0x55,0x30f, + 0x215,0x75,0x30f, + 0x216,0x55,0x311, + 0x217,0x75,0x311, + 0x218,0x53,0x326, + 0x219,0x73,0x326, + 0x21a,0x54,0x326, + 0x21b,0x74,0x326, + 0x21e,0x48,0x30c, + 0x21f,0x68,0x30c, + 0x226,0x41,0x307, + 0x227,0x61,0x307, + 0x228,0x45,0x327, + 0x229,0x65,0x327, + 0x22a,0xd6,0x304, + 0x22b,0xf6,0x304, + 0x22c,0xd5,0x304, + 0x22d,0xf5,0x304, + 0x22e,0x4f,0x307, + 0x22f,0x6f,0x307, + 0x230,0x22e,0x304, + 0x231,0x22f,0x304, + 0x232,0x59,0x304, + 0x233,0x79,0x304, + 0x344,0x308,0x301, + 0x385,0xa8,0x301, + 0x386,0x391,0x301, + 0x388,0x395,0x301, + 0x389,0x397,0x301, + 0x38a,0x399,0x301, + 0x38c,0x39f,0x301, + 0x38e,0x3a5,0x301, + 0x38f,0x3a9,0x301, + 0x390,0x3ca,0x301, + 0x3aa,0x399,0x308, + 0x3ab,0x3a5,0x308, + 0x3ac,0x3b1,0x301, + 0x3ad,0x3b5,0x301, + 0x3ae,0x3b7,0x301, + 0x3af,0x3b9,0x301, + 0x3b0,0x3cb,0x301, + 0x3ca,0x3b9,0x308, + 0x3cb,0x3c5,0x308, + 0x3cc,0x3bf,0x301, + 0x3cd,0x3c5,0x301, + 0x3ce,0x3c9,0x301, + 0x3d3,0x3d2,0x301, + 0x3d4,0x3d2,0x308, + 0x400,0x415,0x300, + 0x401,0x415,0x308, + 0x403,0x413,0x301, + 0x407,0x406,0x308, + 0x40c,0x41a,0x301, + 0x40d,0x418,0x300, + 0x40e,0x423,0x306, + 0x419,0x418,0x306, + 0x439,0x438,0x306, + 0x450,0x435,0x300, + 0x451,0x435,0x308, + 0x453,0x433,0x301, + 0x457,0x456,0x308, + 0x45c,0x43a,0x301, + 0x45d,0x438,0x300, + 0x45e,0x443,0x306, + 0x476,0x474,0x30f, + 0x477,0x475,0x30f, + 0x4c1,0x416,0x306, + 0x4c2,0x436,0x306, + 0x4d0,0x410,0x306, + 0x4d1,0x430,0x306, + 0x4d2,0x410,0x308, + 0x4d3,0x430,0x308, + 0x4d6,0x415,0x306, + 0x4d7,0x435,0x306, + 0x4da,0x4d8,0x308, + 0x4db,0x4d9,0x308, + 0x4dc,0x416,0x308, + 0x4dd,0x436,0x308, + 0x4de,0x417,0x308, + 0x4df,0x437,0x308, + 0x4e2,0x418,0x304, + 0x4e3,0x438,0x304, + 0x4e4,0x418,0x308, + 0x4e5,0x438,0x308, + 0x4e6,0x41e,0x308, + 0x4e7,0x43e,0x308, + 0x4ea,0x4e8,0x308, + 0x4eb,0x4e9,0x308, + 0x4ec,0x42d,0x308, + 0x4ed,0x44d,0x308, + 0x4ee,0x423,0x304, + 0x4ef,0x443,0x304, + 0x4f0,0x423,0x308, + 0x4f1,0x443,0x308, + 0x4f2,0x423,0x30b, + 0x4f3,0x443,0x30b, + 0x4f4,0x427,0x308, + 0x4f5,0x447,0x308, + 0x4f8,0x42b,0x308, + 0x4f9,0x44b,0x308, + 0x622,0x627,0x653, + 0x623,0x627,0x654, + 0x624,0x648,0x654, + 0x625,0x627,0x655, + 0x626,0x64a,0x654, + 0x6c0,0x6d5,0x654, + 0x6c2,0x6c1,0x654, + 0x6d3,0x6d2,0x654, + 0x929,0x928,0x93c, + 0x931,0x930,0x93c, + 0x934,0x933,0x93c, + 0x958,0x915,0x93c, + 0x959,0x916,0x93c, + 0x95a,0x917,0x93c, + 0x95b,0x91c,0x93c, + 0x95c,0x921,0x93c, + 0x95d,0x922,0x93c, + 0x95e,0x92b,0x93c, + 0x95f,0x92f,0x93c, + 0x9cb,0x9c7,0x9be, + 0x9cc,0x9c7,0x9d7, + 0x9dc,0x9a1,0x9bc, + 0x9dd,0x9a2,0x9bc, + 0x9df,0x9af,0x9bc, + 0xa33,0xa32,0xa3c, + 0xa36,0xa38,0xa3c, + 0xa59,0xa16,0xa3c, + 0xa5a,0xa17,0xa3c, + 0xa5b,0xa1c,0xa3c, + 0xa5e,0xa2b,0xa3c, + 0xb48,0xb47,0xb56, + 0xb4b,0xb47,0xb3e, + 0xb4c,0xb47,0xb57, + 0xb5c,0xb21,0xb3c, + 0xb5d,0xb22,0xb3c, + 0xb94,0xb92,0xbd7, + 0xbca,0xbc6,0xbbe, + 0xbcb,0xbc7,0xbbe, + 0xbcc,0xbc6,0xbd7, + 0xc48,0xc46,0xc56, + 0xcc0,0xcbf,0xcd5, + 0xcc7,0xcc6,0xcd5, + 0xcc8,0xcc6,0xcd6, + 0xcca,0xcc6,0xcc2, + 0xccb,0xcca,0xcd5, + 0xd4a,0xd46,0xd3e, + 0xd4b,0xd47,0xd3e, + 0xd4c,0xd46,0xd57, + 0xdda,0xdd9,0xdca, + 0xddc,0xdd9,0xdcf, + 0xddd,0xddc,0xdca, + 0xdde,0xdd9,0xddf, + 0xf43,0xf42,0xfb7, + 0xf4d,0xf4c,0xfb7, + 0xf52,0xf51,0xfb7, + 0xf57,0xf56,0xfb7, + 0xf5c,0xf5b,0xfb7, + 0xf69,0xf40,0xfb5, + 0xf73,0xf71,0xf72, + 0xf75,0xf71,0xf74, + 0xf76,0xfb2,0xf80, + 0xf78,0xfb3,0xf80, + 0xf81,0xf71,0xf80, + 0xf93,0xf92,0xfb7, + 0xf9d,0xf9c,0xfb7, + 0xfa2,0xfa1,0xfb7, + 0xfa7,0xfa6,0xfb7, + 0xfac,0xfab,0xfb7, + 0xfb9,0xf90,0xfb5, + 0x1026,0x1025,0x102e, + 0x1e00,0x41,0x325, + 0x1e01,0x61,0x325, + 0x1e02,0x42,0x307, + 0x1e03,0x62,0x307, + 0x1e04,0x42,0x323, + 0x1e05,0x62,0x323, + 0x1e06,0x42,0x331, + 0x1e07,0x62,0x331, + 0x1e08,0xc7,0x301, + 0x1e09,0xe7,0x301, + 0x1e0a,0x44,0x307, + 0x1e0b,0x64,0x307, + 0x1e0c,0x44,0x323, + 0x1e0d,0x64,0x323, + 0x1e0e,0x44,0x331, + 0x1e0f,0x64,0x331, + 0x1e10,0x44,0x327, + 0x1e11,0x64,0x327, + 0x1e12,0x44,0x32d, + 0x1e13,0x64,0x32d, + 0x1e14,0x112,0x300, + 0x1e15,0x113,0x300, + 0x1e16,0x112,0x301, + 0x1e17,0x113,0x301, + 0x1e18,0x45,0x32d, + 0x1e19,0x65,0x32d, + 0x1e1a,0x45,0x330, + 0x1e1b,0x65,0x330, + 0x1e1c,0x228,0x306, + 0x1e1d,0x229,0x306, + 0x1e1e,0x46,0x307, + 0x1e1f,0x66,0x307, + 0x1e20,0x47,0x304, + 0x1e21,0x67,0x304, + 0x1e22,0x48,0x307, + 0x1e23,0x68,0x307, + 0x1e24,0x48,0x323, + 0x1e25,0x68,0x323, + 0x1e26,0x48,0x308, + 0x1e27,0x68,0x308, + 0x1e28,0x48,0x327, + 0x1e29,0x68,0x327, + 0x1e2a,0x48,0x32e, + 0x1e2b,0x68,0x32e, + 0x1e2c,0x49,0x330, + 0x1e2d,0x69,0x330, + 0x1e2e,0xcf,0x301, + 0x1e2f,0xef,0x301, + 0x1e30,0x4b,0x301, + 0x1e31,0x6b,0x301, + 0x1e32,0x4b,0x323, + 0x1e33,0x6b,0x323, + 0x1e34,0x4b,0x331, + 0x1e35,0x6b,0x331, + 0x1e36,0x4c,0x323, + 0x1e37,0x6c,0x323, + 0x1e38,0x1e36,0x304, + 0x1e39,0x1e37,0x304, + 0x1e3a,0x4c,0x331, + 0x1e3b,0x6c,0x331, + 0x1e3c,0x4c,0x32d, + 0x1e3d,0x6c,0x32d, + 0x1e3e,0x4d,0x301, + 0x1e3f,0x6d,0x301, + 0x1e40,0x4d,0x307, + 0x1e41,0x6d,0x307, + 0x1e42,0x4d,0x323, + 0x1e43,0x6d,0x323, + 0x1e44,0x4e,0x307, + 0x1e45,0x6e,0x307, + 0x1e46,0x4e,0x323, + 0x1e47,0x6e,0x323, + 0x1e48,0x4e,0x331, + 0x1e49,0x6e,0x331, + 0x1e4a,0x4e,0x32d, + 0x1e4b,0x6e,0x32d, + 0x1e4c,0xd5,0x301, + 0x1e4d,0xf5,0x301, + 0x1e4e,0xd5,0x308, + 0x1e4f,0xf5,0x308, + 0x1e50,0x14c,0x300, + 0x1e51,0x14d,0x300, + 0x1e52,0x14c,0x301, + 0x1e53,0x14d,0x301, + 0x1e54,0x50,0x301, + 0x1e55,0x70,0x301, + 0x1e56,0x50,0x307, + 0x1e57,0x70,0x307, + 0x1e58,0x52,0x307, + 0x1e59,0x72,0x307, + 0x1e5a,0x52,0x323, + 0x1e5b,0x72,0x323, + 0x1e5c,0x1e5a,0x304, + 0x1e5d,0x1e5b,0x304, + 0x1e5e,0x52,0x331, + 0x1e5f,0x72,0x331, + 0x1e60,0x53,0x307, + 0x1e61,0x73,0x307, + 0x1e62,0x53,0x323, + 0x1e63,0x73,0x323, + 0x1e64,0x15a,0x307, + 0x1e65,0x15b,0x307, + 0x1e66,0x160,0x307, + 0x1e67,0x161,0x307, + 0x1e68,0x1e62,0x307, + 0x1e69,0x1e63,0x307, + 0x1e6a,0x54,0x307, + 0x1e6b,0x74,0x307, + 0x1e6c,0x54,0x323, + 0x1e6d,0x74,0x323, + 0x1e6e,0x54,0x331, + 0x1e6f,0x74,0x331, + 0x1e70,0x54,0x32d, + 0x1e71,0x74,0x32d, + 0x1e72,0x55,0x324, + 0x1e73,0x75,0x324, + 0x1e74,0x55,0x330, + 0x1e75,0x75,0x330, + 0x1e76,0x55,0x32d, + 0x1e77,0x75,0x32d, + 0x1e78,0x168,0x301, + 0x1e79,0x169,0x301, + 0x1e7a,0x16a,0x308, + 0x1e7b,0x16b,0x308, + 0x1e7c,0x56,0x303, + 0x1e7d,0x76,0x303, + 0x1e7e,0x56,0x323, + 0x1e7f,0x76,0x323, + 0x1e80,0x57,0x300, + 0x1e81,0x77,0x300, + 0x1e82,0x57,0x301, + 0x1e83,0x77,0x301, + 0x1e84,0x57,0x308, + 0x1e85,0x77,0x308, + 0x1e86,0x57,0x307, + 0x1e87,0x77,0x307, + 0x1e88,0x57,0x323, + 0x1e89,0x77,0x323, + 0x1e8a,0x58,0x307, + 0x1e8b,0x78,0x307, + 0x1e8c,0x58,0x308, + 0x1e8d,0x78,0x308, + 0x1e8e,0x59,0x307, + 0x1e8f,0x79,0x307, + 0x1e90,0x5a,0x302, + 0x1e91,0x7a,0x302, + 0x1e92,0x5a,0x323, + 0x1e93,0x7a,0x323, + 0x1e94,0x5a,0x331, + 0x1e95,0x7a,0x331, + 0x1e96,0x68,0x331, + 0x1e97,0x74,0x308, + 0x1e98,0x77,0x30a, + 0x1e99,0x79,0x30a, + 0x1e9b,0x17f,0x307, + 0x1ea0,0x41,0x323, + 0x1ea1,0x61,0x323, + 0x1ea2,0x41,0x309, + 0x1ea3,0x61,0x309, + 0x1ea4,0xc2,0x301, + 0x1ea5,0xe2,0x301, + 0x1ea6,0xc2,0x300, + 0x1ea7,0xe2,0x300, + 0x1ea8,0xc2,0x309, + 0x1ea9,0xe2,0x309, + 0x1eaa,0xc2,0x303, + 0x1eab,0xe2,0x303, + 0x1eac,0x1ea0,0x302, + 0x1ead,0x1ea1,0x302, + 0x1eae,0x102,0x301, + 0x1eaf,0x103,0x301, + 0x1eb0,0x102,0x300, + 0x1eb1,0x103,0x300, + 0x1eb2,0x102,0x309, + 0x1eb3,0x103,0x309, + 0x1eb4,0x102,0x303, + 0x1eb5,0x103,0x303, + 0x1eb6,0x1ea0,0x306, + 0x1eb7,0x1ea1,0x306, + 0x1eb8,0x45,0x323, + 0x1eb9,0x65,0x323, + 0x1eba,0x45,0x309, + 0x1ebb,0x65,0x309, + 0x1ebc,0x45,0x303, + 0x1ebd,0x65,0x303, + 0x1ebe,0xca,0x301, + 0x1ebf,0xea,0x301, + 0x1ec0,0xca,0x300, + 0x1ec1,0xea,0x300, + 0x1ec2,0xca,0x309, + 0x1ec3,0xea,0x309, + 0x1ec4,0xca,0x303, + 0x1ec5,0xea,0x303, + 0x1ec6,0x1eb8,0x302, + 0x1ec7,0x1eb9,0x302, + 0x1ec8,0x49,0x309, + 0x1ec9,0x69,0x309, + 0x1eca,0x49,0x323, + 0x1ecb,0x69,0x323, + 0x1ecc,0x4f,0x323, + 0x1ecd,0x6f,0x323, + 0x1ece,0x4f,0x309, + 0x1ecf,0x6f,0x309, + 0x1ed0,0xd4,0x301, + 0x1ed1,0xf4,0x301, + 0x1ed2,0xd4,0x300, + 0x1ed3,0xf4,0x300, + 0x1ed4,0xd4,0x309, + 0x1ed5,0xf4,0x309, + 0x1ed6,0xd4,0x303, + 0x1ed7,0xf4,0x303, + 0x1ed8,0x1ecc,0x302, + 0x1ed9,0x1ecd,0x302, + 0x1eda,0x1a0,0x301, + 0x1edb,0x1a1,0x301, + 0x1edc,0x1a0,0x300, + 0x1edd,0x1a1,0x300, + 0x1ede,0x1a0,0x309, + 0x1edf,0x1a1,0x309, + 0x1ee0,0x1a0,0x303, + 0x1ee1,0x1a1,0x303, + 0x1ee2,0x1a0,0x323, + 0x1ee3,0x1a1,0x323, + 0x1ee4,0x55,0x323, + 0x1ee5,0x75,0x323, + 0x1ee6,0x55,0x309, + 0x1ee7,0x75,0x309, + 0x1ee8,0x1af,0x301, + 0x1ee9,0x1b0,0x301, + 0x1eea,0x1af,0x300, + 0x1eeb,0x1b0,0x300, + 0x1eec,0x1af,0x309, + 0x1eed,0x1b0,0x309, + 0x1eee,0x1af,0x303, + 0x1eef,0x1b0,0x303, + 0x1ef0,0x1af,0x323, + 0x1ef1,0x1b0,0x323, + 0x1ef2,0x59,0x300, + 0x1ef3,0x79,0x300, + 0x1ef4,0x59,0x323, + 0x1ef5,0x79,0x323, + 0x1ef6,0x59,0x309, + 0x1ef7,0x79,0x309, + 0x1ef8,0x59,0x303, + 0x1ef9,0x79,0x303, + 0x1f00,0x3b1,0x313, + 0x1f01,0x3b1,0x314, + 0x1f02,0x1f00,0x300, + 0x1f03,0x1f01,0x300, + 0x1f04,0x1f00,0x301, + 0x1f05,0x1f01,0x301, + 0x1f06,0x1f00,0x342, + 0x1f07,0x1f01,0x342, + 0x1f08,0x391,0x313, + 0x1f09,0x391,0x314, + 0x1f0a,0x1f08,0x300, + 0x1f0b,0x1f09,0x300, + 0x1f0c,0x1f08,0x301, + 0x1f0d,0x1f09,0x301, + 0x1f0e,0x1f08,0x342, + 0x1f0f,0x1f09,0x342, + 0x1f10,0x3b5,0x313, + 0x1f11,0x3b5,0x314, + 0x1f12,0x1f10,0x300, + 0x1f13,0x1f11,0x300, + 0x1f14,0x1f10,0x301, + 0x1f15,0x1f11,0x301, + 0x1f18,0x395,0x313, + 0x1f19,0x395,0x314, + 0x1f1a,0x1f18,0x300, + 0x1f1b,0x1f19,0x300, + 0x1f1c,0x1f18,0x301, + 0x1f1d,0x1f19,0x301, + 0x1f20,0x3b7,0x313, + 0x1f21,0x3b7,0x314, + 0x1f22,0x1f20,0x300, + 0x1f23,0x1f21,0x300, + 0x1f24,0x1f20,0x301, + 0x1f25,0x1f21,0x301, + 0x1f26,0x1f20,0x342, + 0x1f27,0x1f21,0x342, + 0x1f28,0x397,0x313, + 0x1f29,0x397,0x314, + 0x1f2a,0x1f28,0x300, + 0x1f2b,0x1f29,0x300, + 0x1f2c,0x1f28,0x301, + 0x1f2d,0x1f29,0x301, + 0x1f2e,0x1f28,0x342, + 0x1f2f,0x1f29,0x342, + 0x1f30,0x3b9,0x313, + 0x1f31,0x3b9,0x314, + 0x1f32,0x1f30,0x300, + 0x1f33,0x1f31,0x300, + 0x1f34,0x1f30,0x301, + 0x1f35,0x1f31,0x301, + 0x1f36,0x1f30,0x342, + 0x1f37,0x1f31,0x342, + 0x1f38,0x399,0x313, + 0x1f39,0x399,0x314, + 0x1f3a,0x1f38,0x300, + 0x1f3b,0x1f39,0x300, + 0x1f3c,0x1f38,0x301, + 0x1f3d,0x1f39,0x301, + 0x1f3e,0x1f38,0x342, + 0x1f3f,0x1f39,0x342, + 0x1f40,0x3bf,0x313, + 0x1f41,0x3bf,0x314, + 0x1f42,0x1f40,0x300, + 0x1f43,0x1f41,0x300, + 0x1f44,0x1f40,0x301, + 0x1f45,0x1f41,0x301, + 0x1f48,0x39f,0x313, + 0x1f49,0x39f,0x314, + 0x1f4a,0x1f48,0x300, + 0x1f4b,0x1f49,0x300, + 0x1f4c,0x1f48,0x301, + 0x1f4d,0x1f49,0x301, + 0x1f50,0x3c5,0x313, + 0x1f51,0x3c5,0x314, + 0x1f52,0x1f50,0x300, + 0x1f53,0x1f51,0x300, + 0x1f54,0x1f50,0x301, + 0x1f55,0x1f51,0x301, + 0x1f56,0x1f50,0x342, + 0x1f57,0x1f51,0x342, + 0x1f59,0x3a5,0x314, + 0x1f5b,0x1f59,0x300, + 0x1f5d,0x1f59,0x301, + 0x1f5f,0x1f59,0x342, + 0x1f60,0x3c9,0x313, + 0x1f61,0x3c9,0x314, + 0x1f62,0x1f60,0x300, + 0x1f63,0x1f61,0x300, + 0x1f64,0x1f60,0x301, + 0x1f65,0x1f61,0x301, + 0x1f66,0x1f60,0x342, + 0x1f67,0x1f61,0x342, + 0x1f68,0x3a9,0x313, + 0x1f69,0x3a9,0x314, + 0x1f6a,0x1f68,0x300, + 0x1f6b,0x1f69,0x300, + 0x1f6c,0x1f68,0x301, + 0x1f6d,0x1f69,0x301, + 0x1f6e,0x1f68,0x342, + 0x1f6f,0x1f69,0x342, + 0x1f70,0x3b1,0x300, + 0x1f72,0x3b5,0x300, + 0x1f74,0x3b7,0x300, + 0x1f76,0x3b9,0x300, + 0x1f78,0x3bf,0x300, + 0x1f7a,0x3c5,0x300, + 0x1f7c,0x3c9,0x300, + 0x1f80,0x1f00,0x345, + 0x1f81,0x1f01,0x345, + 0x1f82,0x1f02,0x345, + 0x1f83,0x1f03,0x345, + 0x1f84,0x1f04,0x345, + 0x1f85,0x1f05,0x345, + 0x1f86,0x1f06,0x345, + 0x1f87,0x1f07,0x345, + 0x1f88,0x1f08,0x345, + 0x1f89,0x1f09,0x345, + 0x1f8a,0x1f0a,0x345, + 0x1f8b,0x1f0b,0x345, + 0x1f8c,0x1f0c,0x345, + 0x1f8d,0x1f0d,0x345, + 0x1f8e,0x1f0e,0x345, + 0x1f8f,0x1f0f,0x345, + 0x1f90,0x1f20,0x345, + 0x1f91,0x1f21,0x345, + 0x1f92,0x1f22,0x345, + 0x1f93,0x1f23,0x345, + 0x1f94,0x1f24,0x345, + 0x1f95,0x1f25,0x345, + 0x1f96,0x1f26,0x345, + 0x1f97,0x1f27,0x345, + 0x1f98,0x1f28,0x345, + 0x1f99,0x1f29,0x345, + 0x1f9a,0x1f2a,0x345, + 0x1f9b,0x1f2b,0x345, + 0x1f9c,0x1f2c,0x345, + 0x1f9d,0x1f2d,0x345, + 0x1f9e,0x1f2e,0x345, + 0x1f9f,0x1f2f,0x345, + 0x1fa0,0x1f60,0x345, + 0x1fa1,0x1f61,0x345, + 0x1fa2,0x1f62,0x345, + 0x1fa3,0x1f63,0x345, + 0x1fa4,0x1f64,0x345, + 0x1fa5,0x1f65,0x345, + 0x1fa6,0x1f66,0x345, + 0x1fa7,0x1f67,0x345, + 0x1fa8,0x1f68,0x345, + 0x1fa9,0x1f69,0x345, + 0x1faa,0x1f6a,0x345, + 0x1fab,0x1f6b,0x345, + 0x1fac,0x1f6c,0x345, + 0x1fad,0x1f6d,0x345, + 0x1fae,0x1f6e,0x345, + 0x1faf,0x1f6f,0x345, + 0x1fb0,0x3b1,0x306, + 0x1fb1,0x3b1,0x304, + 0x1fb2,0x1f70,0x345, + 0x1fb3,0x3b1,0x345, + 0x1fb4,0x3ac,0x345, + 0x1fb6,0x3b1,0x342, + 0x1fb7,0x1fb6,0x345, + 0x1fb8,0x391,0x306, + 0x1fb9,0x391,0x304, + 0x1fba,0x391,0x300, + 0x1fbc,0x391,0x345, + 0x1fc1,0xa8,0x342, + 0x1fc2,0x1f74,0x345, + 0x1fc3,0x3b7,0x345, + 0x1fc4,0x3ae,0x345, + 0x1fc6,0x3b7,0x342, + 0x1fc7,0x1fc6,0x345, + 0x1fc8,0x395,0x300, + 0x1fca,0x397,0x300, + 0x1fcc,0x397,0x345, + 0x1fcd,0x1fbf,0x300, + 0x1fce,0x1fbf,0x301, + 0x1fcf,0x1fbf,0x342, + 0x1fd0,0x3b9,0x306, + 0x1fd1,0x3b9,0x304, + 0x1fd2,0x3ca,0x300, + 0x1fd6,0x3b9,0x342, + 0x1fd7,0x3ca,0x342, + 0x1fd8,0x399,0x306, + 0x1fd9,0x399,0x304, + 0x1fda,0x399,0x300, + 0x1fdd,0x1ffe,0x300, + 0x1fde,0x1ffe,0x301, + 0x1fdf,0x1ffe,0x342, + 0x1fe0,0x3c5,0x306, + 0x1fe1,0x3c5,0x304, + 0x1fe2,0x3cb,0x300, + 0x1fe4,0x3c1,0x313, + 0x1fe5,0x3c1,0x314, + 0x1fe6,0x3c5,0x342, + 0x1fe7,0x3cb,0x342, + 0x1fe8,0x3a5,0x306, + 0x1fe9,0x3a5,0x304, + 0x1fea,0x3a5,0x300, + 0x1fec,0x3a1,0x314, + 0x1fed,0xa8,0x300, + 0x1ff2,0x1f7c,0x345, + 0x1ff3,0x3c9,0x345, + 0x1ff4,0x3ce,0x345, + 0x1ff6,0x3c9,0x342, + 0x1ff7,0x1ff6,0x345, + 0x1ff8,0x39f,0x300, + 0x1ffa,0x3a9,0x300, + 0x1ffc,0x3a9,0x345, + 0x219a,0x2190,0x338, + 0x219b,0x2192,0x338, + 0x21ae,0x2194,0x338, + 0x21cd,0x21d0,0x338, + 0x21ce,0x21d4,0x338, + 0x21cf,0x21d2,0x338, + 0x2204,0x2203,0x338, + 0x2209,0x2208,0x338, + 0x220c,0x220b,0x338, + 0x2224,0x2223,0x338, + 0x2226,0x2225,0x338, + 0x2241,0x223c,0x338, + 0x2244,0x2243,0x338, + 0x2247,0x2245,0x338, + 0x2249,0x2248,0x338, + 0x2260,0x3d,0x338, + 0x2262,0x2261,0x338, + 0x226d,0x224d,0x338, + 0x226e,0x3c,0x338, + 0x226f,0x3e,0x338, + 0x2270,0x2264,0x338, + 0x2271,0x2265,0x338, + 0x2274,0x2272,0x338, + 0x2275,0x2273,0x338, + 0x2278,0x2276,0x338, + 0x2279,0x2277,0x338, + 0x2280,0x227a,0x338, + 0x2281,0x227b,0x338, + 0x2284,0x2282,0x338, + 0x2285,0x2283,0x338, + 0x2288,0x2286,0x338, + 0x2289,0x2287,0x338, + 0x22ac,0x22a2,0x338, + 0x22ad,0x22a8,0x338, + 0x22ae,0x22a9,0x338, + 0x22af,0x22ab,0x338, + 0x22e0,0x227c,0x338, + 0x22e1,0x227d,0x338, + 0x22e2,0x2291,0x338, + 0x22e3,0x2292,0x338, + 0x22ea,0x22b2,0x338, + 0x22eb,0x22b3,0x338, + 0x22ec,0x22b4,0x338, + 0x22ed,0x22b5,0x338, + 0x2adc,0x2add,0x338, + 0x304c,0x304b,0x3099, + 0x304e,0x304d,0x3099, + 0x3050,0x304f,0x3099, + 0x3052,0x3051,0x3099, + 0x3054,0x3053,0x3099, + 0x3056,0x3055,0x3099, + 0x3058,0x3057,0x3099, + 0x305a,0x3059,0x3099, + 0x305c,0x305b,0x3099, + 0x305e,0x305d,0x3099, + 0x3060,0x305f,0x3099, + 0x3062,0x3061,0x3099, + 0x3065,0x3064,0x3099, + 0x3067,0x3066,0x3099, + 0x3069,0x3068,0x3099, + 0x3070,0x306f,0x3099, + 0x3071,0x306f,0x309a, + 0x3073,0x3072,0x3099, + 0x3074,0x3072,0x309a, + 0x3076,0x3075,0x3099, + 0x3077,0x3075,0x309a, + 0x3079,0x3078,0x3099, + 0x307a,0x3078,0x309a, + 0x307c,0x307b,0x3099, + 0x307d,0x307b,0x309a, + 0x3094,0x3046,0x3099, + 0x309e,0x309d,0x3099, + 0x30ac,0x30ab,0x3099, + 0x30ae,0x30ad,0x3099, + 0x30b0,0x30af,0x3099, + 0x30b2,0x30b1,0x3099, + 0x30b4,0x30b3,0x3099, + 0x30b6,0x30b5,0x3099, + 0x30b8,0x30b7,0x3099, + 0x30ba,0x30b9,0x3099, + 0x30bc,0x30bb,0x3099, + 0x30be,0x30bd,0x3099, + 0x30c0,0x30bf,0x3099, + 0x30c2,0x30c1,0x3099, + 0x30c5,0x30c4,0x3099, + 0x30c7,0x30c6,0x3099, + 0x30c9,0x30c8,0x3099, + 0x30d0,0x30cf,0x3099, + 0x30d1,0x30cf,0x309a, + 0x30d3,0x30d2,0x3099, + 0x30d4,0x30d2,0x309a, + 0x30d6,0x30d5,0x3099, + 0x30d7,0x30d5,0x309a, + 0x30d9,0x30d8,0x3099, + 0x30da,0x30d8,0x309a, + 0x30dc,0x30db,0x3099, + 0x30dd,0x30db,0x309a, + 0x30f4,0x30a6,0x3099, + 0x30f7,0x30ef,0x3099, + 0x30f8,0x30f0,0x3099, + 0x30f9,0x30f1,0x3099, + 0x30fa,0x30f2,0x3099, + 0x30fe,0x30fd,0x3099, + 0xfb1d,0x5d9,0x5b4, + 0xfb1f,0x5f2,0x5b7, + 0xfb2a,0x5e9,0x5c1, + 0xfb2b,0x5e9,0x5c2, + 0xfb2c,0xfb49,0x5c1, + 0xfb2d,0xfb49,0x5c2, + 0xfb2e,0x5d0,0x5b7, + 0xfb2f,0x5d0,0x5b8, + 0xfb30,0x5d0,0x5bc, + 0xfb31,0x5d1,0x5bc, + 0xfb32,0x5d2,0x5bc, + 0xfb33,0x5d3,0x5bc, + 0xfb34,0x5d4,0x5bc, + 0xfb35,0x5d5,0x5bc, + 0xfb36,0x5d6,0x5bc, + 0xfb38,0x5d8,0x5bc, + 0xfb39,0x5d9,0x5bc, + 0xfb3a,0x5da,0x5bc, + 0xfb3b,0x5db,0x5bc, + 0xfb3c,0x5dc,0x5bc, + 0xfb3e,0x5de,0x5bc, + 0xfb40,0x5e0,0x5bc, + 0xfb41,0x5e1,0x5bc, + 0xfb43,0x5e3,0x5bc, + 0xfb44,0x5e4,0x5bc, + 0xfb46,0x5e6,0x5bc, + 0xfb47,0x5e7,0x5bc, + 0xfb48,0x5e8,0x5bc, + 0xfb49,0x5e9,0x5bc, + 0xfb4a,0x5ea,0x5bc, + 0xfb4b,0x5d5,0x5b9, + 0xfb4c,0x5d1,0x5bf, + 0xfb4d,0x5db,0x5bf, + 0xfb4e,0x5e4,0x5bf, + 0 +}; +static const uint32_t page_000[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0x3e7effbf, + 0xbe7effbf, +}; +static const uint32_t page_001[] = { + 0xfffcffff, + 0x7ef1ff3f, + 0xfff3f1f8, + 0x7fffff3f, + 0, + 0x18003, + 0xdfffe000, + 0xff31ffcf, +}; +static const uint32_t page_002[] = { + 0xcfffffff, + 0xfffc0, + 0, + 0, + 0, + 0, + 0, + 0, +}; +static const uint32_t page_003[] = { + 0, + 0, + 0x10, + 0, + 0x1d760, + 0x1fc00, + 0x187c00, + 0, +}; +static const uint32_t page_004[] = { + 0x200708b, + 0x2000000, + 0x708b0000, + 0xc00000, + 0, + 0, + 0xfccf0006, + 0x33ffcfc, +}; +static const uint32_t page_006[] = { + 0, + 0x7c, + 0, + 0, + 0, + 0, + 0x80005, + 0, +}; +static const uint32_t page_009[] = { + 0, + 0x120200, + 0xff000000, + 0, + 0, + 0, + 0xb0001800, + 0, +}; +static const uint32_t page_00a[] = { + 0, + 0x480000, + 0x4e000000, + 0, + 0, + 0, + 0, + 0, +}; +static const uint32_t page_00b[] = { + 0, + 0, + 0x30001900, + 0, + 0x100000, + 0, + 0x1c00, + 0, +}; +static const uint32_t page_00c[] = { + 0, + 0, + 0x100, + 0, + 0, + 0, + 0xd81, + 0, +}; +static const uint32_t page_00d[] = { + 0, + 0, + 0x1c00, + 0, + 0, + 0, + 0x74000000, + 0, +}; +static const uint32_t page_00f[] = { + 0, + 0, + 0x10842008, + 0x1680200, + 0x20080002, + 0x2001084, + 0, + 0, +}; +static const uint32_t page_010[] = { + 0, + 0x40, + 0, + 0, + 0, + 0, + 0, + 0, +}; +static const uint32_t page_01e[] = { + 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xffffffff, + 0xbffffff, + 0xffffffff, + 0xffffffff, + 0x3ffffff, +}; +static const uint32_t page_01f[] = { + 0x3f3fffff, + 0xffffffff, + 0xaaff3f3f, + 0x1555ffff, + 0xffffffff, + 0x17dfffff, + 0xe7c7f5de, + 0x15dc37f7, +}; +static const uint32_t page_021[] = { + 0, + 0, + 0, + 0, + 0xc000000, + 0x4000, + 0xe000, + 0, +}; +static const uint32_t page_022[] = { + 0x1210, + 0x50, + 0x292, + 0x333e005, + 0x333, + 0xf000, + 0, + 0x3c0f, +}; +static const uint32_t page_02a[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0x10000000, + 0, +}; +static const uint32_t page_030[] = { + 0, + 0, + 0x55555000, + 0x36db02a5, + 0x40100000, + 0x55555000, + 0x36db02a5, + 0x47900000, +}; +static const uint32_t page_0fb[] = { + 0xa0000000, + 0x5f7ffc00, + 0x7fdb, + 0, + 0, + 0, + 0, + 0, +}; +static const uint32_t *pages[] = { + page_000, + page_001, + page_002, + page_003, + page_004, + NULL, + page_006, + NULL, + NULL, + page_009, + page_00a, + page_00b, + page_00c, + page_00d, + NULL, + page_00f, + page_010, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + page_01e, + page_01f, + NULL, + page_021, + page_022, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + page_02a, + NULL, + NULL, + NULL, + NULL, + NULL, + page_030, +}; + + +int uu_decompose_char(unsigned c, unsigned *d, unsigned max) +{ + unsigned p; + const uint32_t *page; + + if (!max) return 0; + + if (c-0xac00 <= 0xd7a3-0xac00) { /* hangul */ + int i = 1; + c -= 0xac00; + d[0] = 0x1100 + c/588; + if (--max) d[i++] = 0x1161 + (c%588)/28; + if (c % 28 && --max) d[i++] = 0x11a7 + (c%28); + return i; + } + + p = c>>8; + if (p == 0xfb) page = page_0fb; + else if (p <= 0x30) page = pages[p]; + else page = NULL; + + if (page && (page[c>>5 & 7] & 1<<(c&31))) { + /* fixme: do binary search instead of linear.. */ + const unsigned short *tab; + for (tab=decomp; *tab && *tab != c; tab+=3); + if (*tab++) { + int len = uu_decompose_char(*tab++, d, max); + d += len; max -= len; + return len + uu_decompose_char(*tab, d, max); + } + } + *d = c; + return 1; +} @@ -3,19 +3,21 @@ #include "uuterm.h" #include "ucf.h" -static void extract_cell(unsigned *ch, struct uucell *cell) +static void extract_cell(unsigned *ch, size_t max, struct uucell *cell) { - int i; + int i, l; unsigned b; for (b=i=0; i<3; i++) b |= cell->c[i] << 8*i; - ch[0] = b; - ch -= 2; - for (; i<sizeof(cell->c)+1 && cell->c[i]; i++) - ch[i] = uu_combine_involution(b, cell->c[i]); - if (cell->a & UU_ATTR_UL) - ch[i++] = '_'; //0x0332; - for (; i<sizeof(cell->c)+1; i++) - ch[i] = 0; + l = uu_decompose_char(b, ch, max); + ch += l; max -= l; + for (; i<sizeof(cell->c) && cell->c[i]; i++) { + l = uu_decompose_char(uu_combine_involution(b, cell->c[i]), ch, max); + ch += l; max -= l; + } + if ((cell->a & UU_ATTR_UL) && max) + max--, *ch++ = '_'; //0x0332; + for (; max; max--) *ch++ = 0; + ch[-1] = 0; } const void *ascii_get_glyph(unsigned); @@ -30,18 +32,19 @@ static const void *lookup_glyph(struct ucf *f, int i, unsigned *this, unsigned * return 0; } +#define CH_LEN 16 void uuterm_refresh_row(struct uudisp *d, struct uurow *row, int x1, int x2) { - unsigned ch[4][sizeof(row->cells[0].c)+1], *chp; + unsigned ch[4][CH_LEN], *chp; int x, i; int width, part; - if (x1) extract_cell(ch[(x1-1)&3], &row->cells[x1-1]); + if (x1) extract_cell(ch[(x1-1)&3], CH_LEN, &row->cells[x1-1]); else memset(ch[3], 0, sizeof(ch[3])); - extract_cell(ch[x1&3], &row->cells[x1]); + extract_cell(ch[x1&3], CH_LEN, &row->cells[x1]); for (x=x1; x<=x2; x++) { - extract_cell(ch[(x+1)&3], &row->cells[x+1]); + extract_cell(ch[(x+1)&3], CH_LEN, &row->cells[x+1]); if (ch[x&3][0] == UU_FULLWIDTH) { width = 2; part = 0; chp = ch[(x+1)&3]; } else if (ch[(x+3)&3][0] == UU_FULLWIDTH) { @@ -85,6 +85,7 @@ void uuterm_stuff_byte(struct uuterm *, unsigned char); void uuterm_refresh_row(struct uudisp *, struct uurow *, int, int); int uu_combine_involution(unsigned, unsigned); +int uu_decompose_char(unsigned, unsigned *, unsigned); int uudisp_open(struct uudisp *); int uudisp_fd_set(struct uudisp *, int, void *); |