GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: lib/libcurses/unctrl.c Lines: 0 16 0.0 %
Date: 2017-11-07 Branches: 0 16 0.0 %

Line Branch Exec Source
1
/* generated by MKunctrl.awk */
2
3
#include <curses.priv.h>
4
#include <ctype.h>
5
6
#if USE_WIDEC_SUPPORT
7
#if HAVE_WCTYPE_H
8
#include <wctype.h>
9
#endif
10
#endif
11
12
#undef unctrl
13
14
NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *sp, chtype ch)
15
{
16
static const short unctrl_table[] = {
17
       0,   3,   6,   9,  12,  15,  18,  21,
18
      24,  27,  30,  33,  36,  39,  42,  45,
19
      48,  51,  54,  57,  60,  63,  66,  69,
20
      72,  75,  78,  81,  84,  87,  90,  93,
21
      96,  98, 100, 102, 104, 106, 108, 110,
22
     112, 114, 116, 118, 120, 122, 124, 126,
23
     128, 130, 132, 134, 136, 138, 140, 142,
24
     144, 146, 148, 150, 152, 154, 156, 158,
25
     160, 162, 164, 166, 168, 170, 172, 174,
26
     176, 178, 180, 182, 184, 186, 188, 190,
27
     192, 194, 196, 198, 200, 202, 204, 206,
28
     208, 210, 212, 214, 216, 218, 220, 222,
29
     224, 226, 228, 230, 232, 234, 236, 238,
30
     240, 242, 244, 246, 248, 250, 252, 254,
31
     256, 258, 260, 262, 264, 266, 268, 270,
32
     272, 274, 276, 278, 280, 282, 284, 286,
33
     289, 292, 295, 298, 301, 304, 307, 310,
34
     313, 316, 319, 322, 325, 328, 331, 334,
35
     337, 340, 343, 346, 349, 352, 355, 358,
36
     361, 364, 367, 370, 373, 376, 379, 382,
37
     385, 389, 393, 397, 401, 405, 409, 413,
38
     417, 421, 425, 429, 433, 437, 441, 445,
39
     449, 453, 457, 461, 465, 469, 473, 477,
40
     481, 485, 489, 493, 497, 501, 505, 509,
41
     513, 517, 521, 525, 529, 533, 537, 541,
42
     545, 549, 553, 557, 561, 565, 569, 573,
43
     577, 581, 585, 589, 593, 597, 601, 605,
44
     609, 613, 617, 621, 625, 629, 633, 637,
45
     641, 645, 649, 653, 657, 661, 665, 669,
46
     673, 677, 681, 685, 689, 693, 697, 701,
47
     705, 709, 713, 717, 721, 725, 729, 733,
48
     737, 741, 745, 749, 753, 757, 761, 765,};
49
50
#if NCURSES_EXT_FUNCS
51
static const short unctrl_c1[] = {
52
     768, 770, 772, 774, 776, 778, 780, 782,
53
     784, 786, 788, 790, 792, 794, 796, 798,
54
     800, 802, 804, 806, 808, 810, 812, 814,
55
     816, 818, 820, 822, 824, 826, 828, 830,
56
     832, 834, 836, 838, 840, 842, 844, 846,
57
     848, 850, 852, 854, 856, 858, 860, 862,
58
     864, 866, 868, 870, 872, 874, 876, 878,
59
     880, 882, 884, 886, 888, 890, 892, 894,
60
     896, 898, 900, 902, 904, 906, 908, 910,
61
     912, 914, 916, 918, 920, 922, 924, 926,
62
     928, 930, 932, 934, 936, 938, 940, 942,
63
     944, 946, 948, 950, 952, 954, 956, 958,
64
     960, 962, 964, 966, 968, 970, 972, 974,
65
     976, 978, 980, 982, 984, 986, 988, 990,
66
     992, 994, 996, 998,1000,1002,1004,1006,
67
    1008,1010,1012,1014,1016,1018,1020,1022,};
68
#endif /* NCURSES_EXT_FUNCS */
69
70
static const char unctrl_blob[] =
71
    "^\100\0^\101\0^\102\0^\103\0^\104\0^\105\0^\106\0^\107\0"
72
    "^\110\0^\111\0^\112\0^\113\0^\114\0^\115\0^\116\0^\117\0"
73
    "^\120\0^\121\0^\122\0^\123\0^\124\0^\125\0^\126\0^\127\0"
74
    "^\130\0^\131\0^\132\0^\133\0^\134\0^\135\0^\136\0^\137\0"
75
    "\040\0\041\0\042\0\043\0\044\0\045\0\046\0\047\0"
76
    "\050\0\051\0\052\0\053\0\054\0\055\0\056\0\057\0"
77
    "\060\0\061\0\062\0\063\0\064\0\065\0\066\0\067\0"
78
    "\070\0\071\0\072\0\073\0\074\0\075\0\076\0\077\0"
79
    "\100\0\101\0\102\0\103\0\104\0\105\0\106\0\107\0"
80
    "\110\0\111\0\112\0\113\0\114\0\115\0\116\0\117\0"
81
    "\120\0\121\0\122\0\123\0\124\0\125\0\126\0\127\0"
82
    "\130\0\131\0\132\0\133\0\134\0\135\0\136\0\137\0"
83
    "\140\0\141\0\142\0\143\0\144\0\145\0\146\0\147\0"
84
    "\150\0\151\0\152\0\153\0\154\0\155\0\156\0\157\0"
85
    "\160\0\161\0\162\0\163\0\164\0\165\0\166\0\167\0"
86
    "\170\0\171\0\172\0\173\0\174\0\175\0\176\0^?\0"
87
    "~\100\0~\101\0~\102\0~\103\0~\104\0~\105\0~\106\0~\107\0"
88
    "~\110\0~\111\0~\112\0~\113\0~\114\0~\115\0~\116\0~\117\0"
89
    "~\120\0~\121\0~\122\0~\123\0~\124\0~\125\0~\126\0~\127\0"
90
    "~\130\0~\131\0~\132\0~\133\0~\134\0~\135\0~\136\0~\137\0"
91
    "M-\040\0M-\041\0M-\042\0M-\043\0M-\044\0M-\045\0M-\046\0M-\047\0"
92
    "M-\050\0M-\051\0M-\052\0M-\053\0M-\054\0M-\055\0M-\056\0M-\057\0"
93
    "M-\060\0M-\061\0M-\062\0M-\063\0M-\064\0M-\065\0M-\066\0M-\067\0"
94
    "M-\070\0M-\071\0M-\072\0M-\073\0M-\074\0M-\075\0M-\076\0M-\077\0"
95
    "M-\100\0M-\101\0M-\102\0M-\103\0M-\104\0M-\105\0M-\106\0M-\107\0"
96
    "M-\110\0M-\111\0M-\112\0M-\113\0M-\114\0M-\115\0M-\116\0M-\117\0"
97
    "M-\120\0M-\121\0M-\122\0M-\123\0M-\124\0M-\125\0M-\126\0M-\127\0"
98
    "M-\130\0M-\131\0M-\132\0M-\133\0M-\134\0M-\135\0M-\136\0M-\137\0"
99
    "M-\140\0M-\141\0M-\142\0M-\143\0M-\144\0M-\145\0M-\146\0M-\147\0"
100
    "M-\150\0M-\151\0M-\152\0M-\153\0M-\154\0M-\155\0M-\156\0M-\157\0"
101
    "M-\160\0M-\161\0M-\162\0M-\163\0M-\164\0M-\165\0M-\166\0M-\167\0"
102
    "M-\170\0M-\171\0M-\172\0M-\173\0M-\174\0M-\175\0M-\176\0~?\0"
103
/* printable values in 128-255 range */
104
    "\200\0\201\0\202\0\203\0\204\0\205\0\206\0\207\0"
105
    "\210\0\211\0\212\0\213\0\214\0\215\0\216\0\217\0"
106
    "\220\0\221\0\222\0\223\0\224\0\225\0\226\0\227\0"
107
    "\230\0\231\0\232\0\233\0\234\0\235\0\236\0\237\0"
108
    "\240\0\241\0\242\0\243\0\244\0\245\0\246\0\247\0"
109
    "\250\0\251\0\252\0\253\0\254\0\255\0\256\0\257\0"
110
    "\260\0\261\0\262\0\263\0\264\0\265\0\266\0\267\0"
111
    "\270\0\271\0\272\0\273\0\274\0\275\0\276\0\277\0"
112
    "\300\0\301\0\302\0\303\0\304\0\305\0\306\0\307\0"
113
    "\310\0\311\0\312\0\313\0\314\0\315\0\316\0\317\0"
114
    "\320\0\321\0\322\0\323\0\324\0\325\0\326\0\327\0"
115
    "\330\0\331\0\332\0\333\0\334\0\335\0\336\0\337\0"
116
    "\340\0\341\0\342\0\343\0\344\0\345\0\346\0\347\0"
117
    "\350\0\351\0\352\0\353\0\354\0\355\0\356\0\357\0"
118
    "\360\0\361\0\362\0\363\0\364\0\365\0\366\0\367\0"
119
    "\370\0\371\0\372\0\373\0\374\0\375\0\376\0\377\0"
120
;
121
122
	int check = ChCharOf(ch);
123
	const char *result;
124
125
	if (check >= 0 && check < (int)SIZEOF(unctrl_table)) {
126
#if NCURSES_EXT_FUNCS
127
		if ((sp != 0)
128
		 && (sp->_legacy_coding > 1)
129
		 && (check >= 128)
130
		 && (check < 160))
131
			result = unctrl_blob + unctrl_c1[check - 128];
132
		else
133
#if USE_WIDEC_SUPPORT
134
		if ((check >= 160)
135
		 && (check < 256)
136
		 && ((sp != 0)
137
		  && ((sp->_legacy_coding > 0)
138
		   || (sp->_legacy_coding == 0
139
		       && (isprint(check) || iswprint(check))))))
140
			result = unctrl_blob + unctrl_c1[check - 128];
141
		else
142
#else
143
		if ((check >= 160)
144
		 && (check < 256)
145
		 && ((sp != 0)
146
		  && ((sp->_legacy_coding > 0)
147
		   || (sp->_legacy_coding == 0
148
		       && isprint(check)))))
149
			result = unctrl_blob + unctrl_c1[check - 128];
150
		else
151
#endif /* USE_WIDEC_SUPPORT */
152
#endif /* NCURSES_EXT_FUNCS */
153
			result = unctrl_blob + unctrl_table[check];
154
	} else {
155
		result = 0;
156
	}
157
	return (NCURSES_CONST char *)result;
158
}
159
160
NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype ch)
161
{
162
	return _nc_unctrl(SP, ch);
163
}