aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2009-07-29 13:30:16 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2009-07-29 13:30:16 +0000
commitfc292139d2d05b7c931ce3dc9c9c7aaace2bb84a (patch)
tree1786c9436474531d4f6e3ecac457e65fe3bf8583
parentfaf5029722c523f8e8c35a97ce3b6a4eee4860a4 (diff)
more inline-documentation; added error-outlet (which currently only catches bytes out-of-range)
svn path=/trunk/externals/iem/unicode/; revision=11885
-rw-r--r--utf82codenumber.pd272
1 files changed, 151 insertions, 121 deletions
diff --git a/utf82codenumber.pd b/utf82codenumber.pd
index 63f690c..a2a7372 100644
--- a/utf82codenumber.pd
+++ b/utf82codenumber.pd
@@ -1,138 +1,168 @@
#N canvas 14 0 649 526 10;
#X obj 131 172 inlet byte;
#X obj 131 316 outlet byte;
-#N canvas 327 0 461 427 shifter 0;
-#X obj 134 59 inlet;
-#X obj 134 387 outlet;
-#X obj 166 220 list split 1;
-#X obj 166 167 until;
-#X obj 166 195 list append;
-#X obj 266 220 bang;
-#X obj 166 246 +;
-#X obj 166 299 t f f;
-#X obj 166 144 t b l b;
-#X msg 215 265 0;
-#X obj 166 270 << 6;
-#X obj 166 321 >> 6;
-#X obj 134 359 f;
-#X obj 134 98 t b l;
-#X connect 0 0 13 0;
-#X connect 2 0 6 0;
-#X connect 2 1 4 1;
-#X connect 2 2 5 0;
-#X connect 3 0 4 0;
-#X connect 4 0 2 0;
-#X connect 5 0 3 1;
-#X connect 6 0 10 0;
-#X connect 7 0 11 0;
-#X connect 7 1 6 1;
-#X connect 8 0 3 0;
-#X connect 8 1 4 1;
-#X connect 8 2 9 0;
-#X connect 9 0 6 1;
-#X connect 10 0 7 0;
-#X connect 11 0 12 1;
-#X connect 12 0 1 0;
-#X connect 13 0 12 0;
-#X connect 13 1 8 0;
+#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 431 13 593 499 stream2multibytelist 1;
-#X text 259 108 aux;
-#X text 323 111 2byte;
-#X text 386 113 3byte;
-#X text 446 113 4byte;
-#X text 180 112 1byte;
-#X obj 181 129 & 127;
-#X obj 321 129 & 31;
-#X obj 251 129 & 63;
-#X obj 390 129 & 15;
-#X obj 450 129 & 7;
-#X obj 251 150 t f b;
-#X msg 207 175 1;
-#X obj 181 268 ==;
-#X text 220 284 expectedbytes;
-#X obj 181 226 i;
-#X obj 226 266 t f b;
-#X msg 238 203 0;
-#X obj 204 371 t l l;
-#X obj 181 310 select 1;
-#X obj 181 393 list prepend;
-#X msg 353 174 2;
-#X obj 181 198 t b f;
-#X obj 181 151 t f b;
-#X obj 321 150 t f b;
-#X obj 212 226 + 1;
-#X obj 390 153 t f b;
-#X msg 422 177 3;
-#X obj 450 151 t f b;
-#X msg 482 175 4;
-#X obj 203 345 list prepend;
-#X obj 181 87 moses 128;
-#X obj 251 87 moses 192;
-#X obj 321 87 moses 224;
-#X obj 390 87 moses 240;
-#X obj 181 61 t f;
-#X obj 181 34 inlet;
-#X obj 181 429 outlet;
-#X obj 283 318 t b b;
-#X obj 340 274 print nuchar;
-#X obj 339 251 print cuchar;
-#X connect 5 0 22 0;
-#X connect 6 0 23 0;
+#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 25 0;
-#X connect 9 0 27 0;
-#X connect 10 0 21 0;
-#X connect 11 0 15 0;
-#X connect 12 0 18 0;
-#X connect 14 0 12 0;
-#X connect 14 0 24 0;
-#X connect 14 0 39 0;
-#X connect 15 0 12 1;
-#X connect 15 0 38 0;
-#X connect 15 1 16 0;
-#X connect 15 1 37 0;
-#X connect 16 0 24 0;
-#X connect 17 0 19 1;
-#X connect 17 1 29 1;
-#X connect 18 0 19 0;
-#X connect 19 0 36 0;
-#X connect 20 0 15 0;
-#X connect 21 0 14 0;
-#X connect 21 1 29 0;
-#X connect 22 0 21 0;
-#X connect 22 1 11 0;
-#X connect 23 0 21 0;
-#X connect 23 1 20 0;
-#X connect 24 0 14 1;
-#X connect 25 0 21 0;
-#X connect 25 1 26 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 21 0;
+#X connect 27 0 5 0;
#X connect 27 1 28 0;
-#X connect 28 0 15 0;
-#X connect 29 0 17 0;
-#X connect 30 0 5 0;
-#X connect 30 1 31 0;
-#X connect 31 0 7 0;
-#X connect 31 1 32 0;
-#X connect 32 0 6 0;
-#X connect 32 1 33 0;
-#X connect 33 0 8 0;
-#X connect 33 1 9 0;
-#X connect 34 0 30 0;
-#X connect 35 0 34 0;
-#X connect 37 0 29 1;
-#X connect 37 1 19 1;
+#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 244 277 print xxx;
+#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 0 8 0;
+#X connect 5 1 8 0;