aboutsummaryrefslogtreecommitdiff
path: root/utf82codenumber.pd
blob: a2a7372a821e57eb58714eb64e50db4472e99aef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#N canvas 14 0 649 526 10;
#X obj 131 172 inlet byte;
#X obj 131 316 outlet byte;
#N canvas 327 0 739 602 shifter 0;
#X obj 166 330 list split 1;
#X obj 166 277 until;
#X obj 166 305 list append;
#X obj 266 330 bang;
#X obj 166 356 +;
#X obj 166 409 t f f;
#X obj 166 254 t b l b;
#X msg 215 375 0;
#X obj 166 380 << 6;
#X obj 166 431 >> 6;
#X obj 134 469 f;
#X obj 134 208 t b l;
#X obj 134 169 inlet multibytelist;
#X obj 134 497 outlet bytestream;
#X text 74 60 converts a correctly-sized multi-byte list into a single
code-point \, by shifting and adding the elements appropriately.;
#X text 77 108 header-bits (e.g. bits not carrying any pay-load) MUST
be stripped off beforehand.;
#X connect 0 0 4 0;
#X connect 0 1 2 1;
#X connect 0 2 3 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 1 1;
#X connect 4 0 8 0;
#X connect 5 0 9 0;
#X connect 5 1 4 1;
#X connect 6 0 1 0;
#X connect 6 1 2 1;
#X connect 6 2 7 0;
#X connect 7 0 4 1;
#X connect 8 0 5 0;
#X connect 9 0 10 1;
#X connect 10 0 13 0;
#X connect 11 0 10 0;
#X connect 11 1 6 0;
#X connect 12 0 11 0;
#X restore 131 283 pd shifter;
#X text 222 316 unicode code number;
#X text 215 170 UTF-8 multibyte;
#N canvas 1194 0 977 874 stream2multibytelist 1;
#X text 259 228 aux;
#X text 323 231 2byte;
#X text 386 233 3byte;
#X text 456 233 4byte;
#X text 180 232 1byte;
#X obj 181 249 & 127;
#X obj 321 249 & 31;
#X obj 251 249 & 63;
#X obj 390 249 & 15;
#X obj 460 249 & 7;
#X obj 251 270 t f b;
#X msg 213 292 1;
#X text 220 404 expectedbytes;
#X obj 181 346 i;
#X msg 238 323 0;
#X obj 204 591 t l l;
#X obj 181 613 list prepend;
#X msg 353 294 2;
#X obj 181 318 t b f;
#X obj 181 271 t f b;
#X obj 321 270 t f b;
#X obj 212 346 + 1;
#X obj 390 273 t f b;
#X msg 422 297 3;
#X obj 460 271 t f b;
#X msg 492 295 4;
#X obj 204 565 list prepend;
#X obj 181 207 moses 128;
#X obj 251 207 moses 192;
#X obj 321 207 moses 224;
#X obj 390 207 moses 240;
#X obj 285 544 t b b;
#X obj 181 689 outlet multibytelist;
#X obj 181 154 inlet bytestream;
#X obj 456 683 outlet error;
#X text 58 35 converts a bytestream into atomic multibyte representations
(aka "list"s) of characters.;
#X text 63 69 header-bits (used for describing the multibyte-nature
in the incoming stream) are stripped of the lists);
#X obj 227 373 t f b b;
#X text 521 479 errors:;
#X text 550 502 a continuation-byte at the beginning;
#X text 550 518 a continuation-byte after the last byte;
#X text 550 542 a start-byte within a sequence;
#X text 555 597 192-193: overlong encoding;
#X text 555 618 245-253: restricted by RFC-3629;
#X text 556 637 254-255: not defined;
#X obj 460 207 moses 245;
#X obj 548 238 t b;
#X text 583 243 5byte \, 6byte;
#X text 583 229 codepoint > 0x10FFFF;
#X text 583 259 undefined;
#X obj 524 614 t b;
#X obj 180 376 t f f;
#X obj 344 383 print current;
#X obj 181 460 select -1;
#X obj 181 181 t f f;
#X obj 353 179 print newbyte;
#X obj 181 643 t l b;
#X connect 5 0 19 0;
#X connect 6 0 20 0;
#X connect 7 0 10 0;
#X connect 8 0 22 0;
#X connect 9 0 24 0;
#X connect 10 0 18 0;
#X connect 11 0 37 0;
#X connect 13 0 21 0;
#X connect 13 0 51 0;
#X connect 14 0 21 0;
#X connect 15 0 16 1;
#X connect 15 1 26 1;
#X connect 16 0 56 0;
#X connect 17 0 37 0;
#X connect 18 0 13 0;
#X connect 18 1 26 0;
#X connect 19 0 18 0;
#X connect 19 1 11 0;
#X connect 20 0 18 0;
#X connect 20 1 17 0;
#X connect 21 0 13 1;
#X connect 22 0 18 0;
#X connect 22 1 23 0;
#X connect 23 0 37 0;
#X connect 24 0 18 0;
#X connect 24 1 25 0;
#X connect 25 0 37 0;
#X connect 26 0 15 0;
#X connect 27 0 5 0;
#X connect 27 1 28 0;
#X connect 28 0 7 0;
#X connect 28 1 29 0;
#X connect 29 0 6 0;
#X connect 29 1 30 0;
#X connect 30 0 8 0;
#X connect 30 1 45 0;
#X connect 31 0 26 1;
#X connect 31 1 16 1;
#X connect 33 0 54 0;
#X connect 37 0 53 1;
#X connect 37 1 14 0;
#X connect 37 2 31 0;
#X connect 45 0 9 0;
#X connect 45 1 46 0;
#X connect 46 0 50 0;
#X connect 50 0 34 0;
#X connect 51 0 53 0;
#X connect 51 1 52 0;
#X connect 53 0 16 0;
#X connect 54 0 27 0;
#X connect 54 1 55 0;
#X connect 56 0 32 0;
#X restore 131 241 pd stream2multibytelist;
#X text 47 43 converts a stream of UTF-8 bytes into a stream of Unicode
code numbers;
#X text 53 95 multibyte characters are not output before the last byte
has been received;
#X obj 400 306 outlet error;
#X text 104 378 if the bytestream is invalid \, a message is sent to
the output;
#X connect 0 0 5 0;
#X connect 2 0 1 0;
#X connect 5 0 2 0;
#X connect 5 1 8 0;